[DAX] Enriching your BI Semantic Models with DAX

Speaker : Kasper de Jonge – Niveau : 300 – Duréer : 75 mn

Objectif de la session

Présentation de DAX

DAX comme langage de requête

Quelque nouvelles features avec Excel 2013

Introduction

Le DAX mais qu’est-ce que c’est ?

Sur Excel 2013 (integration PowerPivot, Power View, le Data Model utilise le In-Memory engine (peu importe les données que vous importez)

Bon pas trop de blabla on part direct sur les démos (that’s a good point).

Démos  DAX in Excel 2013 (PowerPivot v2)

On manipule PowerPivot sous Excel 2013, introduction à quelques concepts (pour l’assistance non initiée) colonne calculée, mesure calculée, filter context.

On monte un TCD basique qui nous retourne les ventes par regions avec un slicers par année.

Création d’une mesures calculées pour avoir le total par région => [total regions] := CALCULATE([Sum of SalesAmount],ALL(Region))

On monte un nouvelle mesure pour calculer le %  =>  [pct of total] := [Sum of SalesAmount] / [total regions]

Mise en place dun distinct count => [nb products] := DISTINCTCOUNT(Sales[ProductKey]) => le résultat est instantané

Mise en place d’un ranking sur le montant des ventes=>    RANKX(All(Regions),[Sum Of SalesAmount])

On vire ensuite les lignes qui n’ont pas de données de ventes  : NOT ISBLANK

On continue la démo par la mise en place d’un autre TCD. On lie les données au slicer par année => les slicers peuvent être partagés par plusieurs TCD.

Mise en place d’un TOP 10  : SUMX(TOPN(….),[Sales Amount])

Mise en place d’une dimension DateType permettant d’avoir les ventes par Current year, Previous year, Yoy growth  on la remonte dans PowerPivot puis dans le TCD. On marque la table Date comme une dimension Temps.

Mise en place sur notre dimension DateType de quelques mesures qui permette d’implémenter la time intelligence (very good trick, un peu comme on faisait avant les scopes avec des cubes Multidim)

Simulation d’une role-playing dimension utiliser la fonction USERELATIONSHIP

Mise en place d’une relation Parent/Child :

  • Création d’une colonne calculée Path := PATH(Employe[EmployeKey],Employee[ParentEmployeeKey
  • Création manuellement des différents niveaux :   Level 1 := LOOKUPVALUE(Employee(LastName],[EmployeeKey],PATHITEM(Path,1,1))  … Level 5 := LOOKUPVALUE(Employee(LastName],[EmployeeKey],PATHITEM(Path,5,1))
  • Création d’un hiérarchie sur les différents niveaux créés

Many To Many résolution : pour remonter les ventes sur nos employés car on a une m2m Employee – Region – Sales ex :

Sum of Salesamount per Employee = CALCULATE(Sum of SalesAmoun,SUMMARIZE(Employee,Region[SalesTerritoryKey])

Et le tour est joué.

Démos DAX dans SSMS

Comme vu lors de la session d’Alberto Ferrari, depuis SQL Server 2012 on peut utiliser le DAX comme langage de requêtage.

Dans les démos utilisées on retrouve les mêmes fonctions qu’utiliser dans celle d’Alberto.

DAX dans Excel 2013

DAX peut être utilisé dans PowerPivot (colonne calculée, mesures calculées)

  • Table Queries
  • Dans des macros

Conclusion

Des démos super riches en tips & tricks thanks to Kasper !

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