Le Post Infeeny

Les articles des consultants et experts Infeeny

[JSS2013] Session : SSAS Tabular : Modélisation

Speaker : Aurélien Koppel et Benoit Girard
Level: 300

Petit rappel :

SSAS 2012 C’est 2 moteurs :

  • Moteur Multi dimensionnel => MOLAP et ROLAP
  • Moteur Tabular => X Velocity et Direct Query

Dans cette session nous allons analyser le moteur XVelocity

But de ce nouveau moteur :

  • Moteur plus performant
  • Prioriser les perf. Requetage : Perf requetage > Perf Process
  • Many to Many plus performant
  • Modèle plus Agile – ex. ajout nouvel attribut => Multi Dim : il faut tout reprocess!
    Tabular : reprocess de la table de l’attribut uniquement
  • Minimum de config – ex. pas d’agrégation

STOCKAGE

Mode stockage en colonne, en mémoire et compressé.

Compression en moyenne X10 vs. BI Traditionnel principalement grâce à l’encoding qui peut se faire de 2 façons :

  • Value encoding – pour valeur arithmétique dense
  • Hash encoding – pour les strings

Que stock le moteur en mémoire ?

  • Dictionnaire de donnée – ex. pour l’encoding
  • Colonne par segment – segment de 8M de lignes
  • Colonne calculée – mais non compressé !
  • Hiérarchie
  • Liaison entre les tables

Les DMV

Ils existent plusieurs DMV qui permettent entre autre de voir le type d’encoding utilisé et si celui-ci a déjà été modifié :

  • $SYSTEM.Discover_Storage_table
  • $SYSTEM.Discover_Storage_table_column
  • $SYSTEM.Discover_Storage_table_column_segment

INFRA

Le plus important :

  1. RAM – Stockage des données
  2. Processeur – Compréssion / decompression
  3. Disque – Seulement au process et restart

Pour la RAM besoin de 2 fois la taille du modèle car lors du process l’instance crée un 2eme modèle en parallèle et remplace le 1er à la fin du process (comme en multidim.)

MODELISATION

Supporte le modèle étoile et flocon mais mieux vaux utiliser le modèle en étoile

  • Meilleur Lisibilité
  • Profiter de l’auto-Exist
  • Meilleur perf sur les Cross Join complexe
  • Hiérarchie plus simple (dans la même table donc pas besoin de calcul complexe en DAX)

*Astuce dans Excel – on peut afficher les attributs des ‘dimensions’ vide.  Clique droit => Pivot table Options => Displays => Show Item with no data on rows

Hierarchie parent – enfant

Pas d’UI comme en Multidim mais possible de le faire dans les mesures en DAX

2 cas possibles :

  • Fonction PATH => recrée toute l’arborescence de la hiérarchie
  • Fonction PATHITEM => récupère 1 niveau de la hiérarchie au choix

Many to Many

Pas d’UI comme en Multidim mais possible de le faire dans les mesures en DAX, c’est performant par contre la logique est à implémenter pour chaque mesure donc contraignant.

PROCESSING STEPS

  1. Connections + exécution de la requête => Minimiser les connections, 1 connection pour plusieurs table si même source (attention à l’utilisation du wizard donc !)
  2. Encodage => utiliser les DMV pour voir le type d’encoding
  3. Compression => lit le 1er segment, puis lit le 2eme et compresse le 1er en parallèle, puis lit le 3eme et compresse le 2eme en parallèle, …
    Défaut setting de 10 s. pour compression de 1M de lignes
  4. Recalc => Recalcul les colonnes calculées, attention les colonnes calculées sont stockées en mémoire mais non compressé.

STRATEGIE DE PROCESSING

Process Défaut : seulement la 1ere fois pour que le modèle soit disponible

Process Full : Process Data + Process Recalc

Process Data : requête base de données, encoding et compression

Process Recalc : toute la base est recalculée! + Attention aux colonnes calculées, recalcule par ligne donc beaucoup plus lent

Process Add : ajout des nouvelles lignes. A la fin du process Add il y a un process Recal automatiquement

OUTILS TIERS

Ces outils gratuits permettent l’ajout de fonctionnalités non présentes dans SSDT ou Excel par défaut

BIHELPER

Permet l’ajout d’action :

  • Tabular Action Editor
  • Tabular Display folder
  • Tabular Hidemember
  • Tabular Sync description
  • Tabular Translation Editor

BISM Normalizor

Permet de comparer et fusionner des modèles, ex. Excel PowerPivot VS. Tabular modèle sur instance SSAS donc pratique après import d’un modèle PowerPivot sur server ou SharePoint

DAX Studio

Excel Add-in. Plus pratique pour écrire du DAX et permet de lancer les requêtes DAX puis voir le détail des perf. Permet également d’analyser les traces du profiler.

BISM ServerMemoryReport

Fichier PowerPivot qui requête les DMVs de la base SSAS pour visualiser la mémoire utilisée.

Ludovic – Consultant décisionnel MCNEXT

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 :