Le Post Infeeny

Les articles des consultants et experts Infeeny

[SAS] Secrets Of SSAS Storage

Speaker: Stacia Misner – Niveau : 300 – Durée : 3h

Objectif de la session

Comprendre le moteur de stockage de SSAS afin d’optimiser vos solutions

Storage Engine

On commence par l’architecture SSAS Mulidim, on voit les différentes briques du Formula Engine et du Storage Engine.

Dimension Storage

On voit le dimension Storage avec ses 3 catalogues de bases (le key store, le property store, le relationship store)  + le hierachy store (qui ne s’applique que sur les hiérachies naturelles)

On continue avec une démo pour nous montrer les différents fichiers de données générés par SSAS lors du process d’une dimension et de comprendre

Les points clés :

  • les perfs sont meilleures si vous utiliser des type integer sur vos key columns
  • si vous avez des clés composites, il est préférable de les remplacer par une surrogate key de type entier
  • utiliser les hierachies naturelles au maximum  pour profiter du hierachy store et des données pré-agrégées

Bon y a plein de question à la noix sur les options du null processing et les unknown members. blabla. Mais bon, c’est plutôt un problématique de modélisation et mon conseil est de gérer çà au niveau de l’ETL !!!

Et jusqu’ici rien de bien nouveau …

Measure Group Storage

On passe désormais du côté des groupes de mesures avec le Storage Engine Cache, Aggregation Data, Fact Data

Les Partitions

Stratégie de partition

Il est important de décrire une stratégie de partitionnement.

Chaque partition peut être stockée sur des groupes différents et dans des modes de stockage différents (MOLAP, HOLAP, ROLAP) et des design d’aggreation différents.

Attention aux aggrégations : elles ralentissent le process du cube, prennent de la place supplémentaire sur les disques  mais améliorent les requêtes.

On voit un exemple de combinaison avec 3 partitions :

  • 1 MOLAP sur l’année courante avec 20% d’aggreg
  • 1 HOLAP sur l’année passée avec 30% d’aggreg
  • 1 ROLAP sur l’histo avec 15% d’aggreg

Partition Storage

On passe sur les différents mode : MOLAP (data et aggregations stockées dans le cache), HOLAP (seules les aggregation sont stockées dans le cache, les données sont en base relationnelle), ROLAP (data et aggrégation stockées dans la base relationelle)

Partition Design

On y voit les différentes façon de mettre en place des partitions

  • Utiliser une table de fait par partition
  • Utiliser plusieurs vues sur une seule table et faire vos filtres
  • Faire du Query Binding (ma solution préférée)

Merge de partition

On passe rapidement sur la fonctionnalité de Merge de partition.

Cela peut-être scripté et donc est géré de façon dynamique adns l’ETL.

Aggregation

Petit laïus sur les partitions …

Scripting de partition

La création de partition peut bien sur être scripté en XMLA.

Ce qui vous permet de pouvoir planifier et automatiser votre stratégie de partitionnement comme par exemple via SSIS.

Queying Optimizing

D’abord il faut vider le chache, puis exécuter la requête MDX. On analyse les traces avec le SQL Profiler.

On peut voir les partition lues, les agrégations utilisées à travers les évenements

Le query subcube, vous savez la séquence de 0 et de 1 illisible s.

Sélectionner le Query Subcube Verbose pour avoir une interpretation de cette belle suite.

Pour info :

  • Les 0 sont les default members retournées
  • * : all members
  • + selected members
  • – : slice below granularity
  • 4 : single member

Agregation

On analyse ensuite la durée d’exécution, on ajoute une aggregation et lors de la trace, on veille à sélectionner les Get Aggregation events.

Puis vérifie sur les traces que la requête utilise les aggrégations définies.

La démo permet ensuite voir comment on peut utiliser les slices de partition puis les concepts d’agrégations (les agrégations par défaut, par usage ….)

Les bonnes pratiques

Supprimer les attributs dont vous n’avez pas beosin

Préferer les hiérarchies naturelles

Assurez-vous d’avoir boen déclarer vos relations d’attributs

Set AttributeHierarchyEnabled à faux pour les propriétés de membres

Utiliser les design d’aggregation par usage

paritionner correctement vos groupes de mesures

Conclusion

Bien déçu, je pensai apprendre de nouvelles choses, qu’on allait parler de tabular, mais il n’en est rien.

La session est plutôt destiné à des newbies SSAS.

Frédéric

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :