> Tech > La suite …

La suite …

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

5 - Entrer des estimations de comptage

Quand on construit une dimension pour la première fois, Analysis Services stocke le comptage des membres pour chaque niveau comme une propriété du niveau. Ce comptage n'est mis à  jour que si vous le faites explicitement (manuellement ou à  l'aide de la commande

La suite …

Tools, Count Dimension Members).
En outre, il est courant que les
cubes soient initialement construits
par rapport à  un sous-ensemble de
data warehouse. Dans ce cas, le cube
ira probablement en production avec
les propriétés de comptage largement
sous-estimées. C’est là  qu’est le piège : le Storage Design Wizard utilise ces
comptages dans son algorithme quand
vous concevez les agrégations. Quand
les comptages sont incorrects, le
Storage Design Wizard est moins efficace
pour créer un ensemble d’agrégations
optimal. La solution est simple :
quand vous construisez la dimension,
entrez manuellement les comptages
estimés pour chaque niveau.

6 – Créer les niveaux de groupage manuellement

Aucun membre de dimension ne peut
avoir plus de 64 000 enfants, y compris
le membre All. Cette limite n’est pas
aussi onéreuse qu’il y paraît ; l’utilisabilité
vous coincera probablement avant
la limite pure et dure. Un membre avec même 10 000 enfants présente généralement
un problème d’utilisabilité –
c’est beaucoup de lignes à  transférer
sur un utilisateur forant dans la dimension.
Que vous luttiez contre la limite ou
que vous vous efforciez simplement de
concevoir votre dimension de telle
sorte qu’elle fournisse des drilldowns
de taille acceptable, la solution
consiste à  bâtir des hiérarchies profondes
et significatives. Mais quand il
n’y a pas de matière brute à  partir de laquelle
bâtir une hiérarchie significative,
il faut recourir à  un niveau de
groupage, appelé aussi niveau Rolodex,
comme la première lettre du nom
pour une dimension client. Analysis
Services a une fonction (create member
group dans le Dimension Wizard)
qui peut créer un niveau de groupage
automatiquement. Ne l’utilisez surtout
pas ! Vous ne pourriez pas contrôler les
limites du groupage. Construisez plutôt
le niveau manuellement. Il faut
pour cela ajouter un nouveau niveau à 
la dimension, puis modifier les propriétés
Member Name Column et
Member Key Column. Par exemple,
vous pourriez définir la colonne clé
membre et la colonne nom membre
pour le niveau de groupage de la manière
suivante :
LEFT(« CustomerDimTable ». »
CustomerName », 1)

Cette expression fonde le niveau
sur la première lettre du nom du client,
offrant une navigation de style
Rolodex. Tenez compte toutefois qu’il
s’agit d’un pass-through SQL ; l’expression
est passée au SGBDR, donc celuici
dicte la syntaxe. Autrement dit, TSQL
a une fonction LEFT() mais un
autre SGBDR pourrait ne pas l’avoir.

7 – Utiliser les propriétés de membres judicieusement

Quand on démarre le serveur OLAP, le
serveur charge chaque dimension – y
compris les clés membres, noms, et
propriétés membres – dans la mémoire
du serveur. Comme Analysis Services est limité à  3 Go de RAM, c’est
l’un des principaux goulets d’étranglement
pour les déploiements à  l’échelle
de l’entreprise. Pour cette raison, limitez
les propriétés de membres au strict
minimum, particulièrement quand le
niveau comporte beaucoup de
membres.

8 – Comprendre le rôle de MDX

Avez-vous déjà  essayé de nager sans
vous mouiller ? Pour toutes les bases de
données à  l’exception des plus simples,
c’est un peu ce qui se passe
quand vous essayez de concevoir une
solution OLAP sans utiliser MDX.
Comme le logiciel client standard nie
souvent le besoin d’écrire des instructions
MDX SELECT, beaucoup de développeurs
pensent qu’ils peuvent parfaitement
éviter MDX. C’est folie pure.
Bien sûr, tous les projets n’ont pas besoin
d’instructions MDX SELECT ; le logiciel
commercial convient à  de nombreuses
situations. Mais les calculs
MDX devraient jouer un rôle important
dans la plupart des solutions
Analysis Services, même celles qui, à 
première vue, ne pratiquent pas de calculs
intenses.
Peut-être l’exemple le plus courant
est-il un cube virtuel basé sur deux
cubes source ou plus. Des membres
calculés sont généralement nécessaires
pour « coller » le cube virtuel
dans un ensemble sans couture. Bien
que le MDX ne soit pas forcément
complexe, les développeurs ignorants
de son rôle finissent pas commettre
des fautes coûteuses. Soit ils évitent
complètement les cubes virtuels, soit
ils s’en remettent à  une logique facilement
implémentée dans MDX pour le
processus ETL (extraction-transformation-
load), où elle est plus compliquées
et rigidement définie.

9 – Faire preuve de prudence

Faites attention avec les dimensions.
Réfléchissez avant d’adopter la fonction
very large dimension d’Analysis Services, qui place les grandes dimensions
dans un espace mémoire séparé.
Cette fonction comporte de nombreux
bogues, donc évitez-la. Méfiez-vous
aussi des dimensions ROLAP, que le
serveur lit dans la mémoire en fonction
des besoins à  l’exécution. Comme vous ne pouvez placer une dimension
ROLAP que dans un cube ROLAP, la
performance en souffrira grandement.
En théorie, le mode ROLAP supporte
de plus grandes dimensions, mais cela
ne fonctionne pas d’après mon expérience.
Comme Analysis Services est un
produit relativement nouveau et plutôt
pauvre en documentation, nous
sommes tous dans le même bateau –
nous devons apprendre par la pratique.
J’espère que ces conseils enrichiront
votre prochain projet.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010