• Partagez
  • E-mail
  • Intégrer
  • J'aime
  • Télécharger
  • Contenu privé
DAX for dummies / DAX pour les NULS !
 

DAX for dummies / DAX pour les NULS !

on

  • 585 vues

DAX DAX DAX ! Rien que du dax = Mise en œuvre des fonctions clés et avancées du langage DAX supportées par SSAS 2012 en mode tabulaire à partir de problématiques métiers classiques. Cas ...

DAX DAX DAX ! Rien que du dax = Mise en œuvre des fonctions clés et avancées du langage DAX supportées par SSAS 2012 en mode tabulaire à partir de problématiques métiers classiques. Cas d'école et exemples concrets : le DAX par la pratique. Découvrez et maitrisez la puissance du langage DAX. Couplez le DAX avec PowerView pour explorer de façon interactive les données des modèles sémantiques BI Tabulaires et Multidimentionnels des cubes SSAS. Session coanimée par Julien Vidal et Pascal Rouzé (speakers aux techdays 2012).

Statistiques

Vues

Total des vues
585
Vues sur SlideShare
585
Vues externes
0

Actions

J'aime
0
Téléchargements
17
Commentaires
0

0 Ajouts 0

No embeds

Accessibilité

Catégories

Détails de l'import

Uploaded via as Microsoft PowerPoint

Droits d'utilisation

© Tous droits réservés

Report content

Signalé comme inapproprié Signaler comme inapproprié
Signaler comme inapproprié

Indiquez la raison pour laquelle vous avez signalé cette présentation comme n'étant pas appropriée.

Annuler
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Votre message apparaîtra ici
    Processing...
Poster un commentaire
Modifier votre commentaire
  • Intro Office / B2B / LOB / entreprise
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Exemple de page image
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • SSAS en mode tabulaire : nouveau besoin, gestion complémentaire des accès aux données via les rôlesSSRS comme outil de restitution (pas de sharepoint, Office en version ancienne)
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Exemple de page image
  • Les actuaires sont chargés d’effectuer les calculs de PM (provisions mathématiques) qui entrent en jeu notamment pour les ratios de solvabilité imposés par les contraintes législatives,
  • SSAS en mode tabulaire : nouveau besoin, gestion complémentaire des accès aux données via les rôlesSSRS comme outil de restitution (pas de sharepoint, Office en version ancienne)
  • SSAS en mode tabulaire : nouveau besoin, gestion complémentaire des accès aux données via les rôlesSSRS comme outil de restitution (pas de sharepoint, Office en version ancienne)
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Exemple de page image
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • Exemple de page image
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • SSAS en mode tabulaire : nouveau besoin, gestion complémentaire des accès aux données via les rôlesSSRS comme outil de restitution (pas de sharepoint, Office en version ancienne)
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • Define measure : ne dure que le temps de la requêteCalculate : permet le changement de contexte pour filtrer les donnéesIl existe d’autres fonctions pour arriver au même but (sameperiodlastyear)
  • Exemple de page de code pour le secteur dev
  • A titre indicatif
  • A titre indicatif
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • Les blocs de couleurssontéditables et peuventreprendre la couleur du type de session qui estdonnée.
  • Notation

DAX for dummies / DAX pour les NULS ! DAX for dummies / DAX pour les NULS ! Presentation Transcript

  • DAX For Dummies Pascal Rouzé & Julien Vidal Consultants décisionnels MCNEXT www.mcnext.comOffice / B2B / LOB / Entreprise
  • PRÉSENTATIONDAX For Dummies
  • 100 % 180 collaborateurs Depuis 2007 à Paris - Lyon - Genève Dot Share NET Point Business Intelligence Biz Microsoft Talk Stand 97 – Zone bleu foncéDAX For Dummies
  • DAX • Le DAX (Data Analysis eXpression) est le langage utilisé par :  PowerPivot  le modèle tabulaire dans Analysis Services  Power View • Il est utilisé pour créer des mesures et colonnes calculées et pour interroger des modèles tabulaires.DAX For Dummies
  • Colonnes et mesures calculées Colonne calculée Mesure calculéeDAX For Dummies
  • BISM (BI Semantic Model) Third-party Reporting SharePoint Excel PowerPivot applications Services Power View Support des MDX modèles MD MDX DAX/MDX DAX prochainement Multi- Data Model dimensional Tabular Business logic and queries MDX DAX MOLA Direct Data Access ROLAP VertiPaq P Query Databases LOB Applications Files OData Feeds Cloud ServicesDAX For Dummies
  • Prérequis pour utiliser PowerPivot • Système d’exploitation 32 ou 64 bits • 1 GB de RAM, 2 GB recommandés • Windows XP SP3, Vista SP1, Windows 7 & 8 • .NET Framework 3.5 SP1 • Microsoft Office 2010, 2013DAX For Dummies
  • Type de données Type Description Whole Number Valeur entière Decimal Number Nombre réel Currency Devise TRUE/FALSE Booléen Text Chaîne de caractères Date Date/Heure commençant en 1900 Binary Donnée binaire importée depuis une source de données (une image par exemple)DAX For Dummies
  • Fonctions DAX • Plus de 170 fonctions avec SQL Server 2012 Fonctions d’information ISBLANK(…), ISERROR(…), etc. Fonctions de date MONTH(…), DATESYTD(…), PARALLELPERIOD(…), etc. Fonctions de chaîne TRIM(…), CONCATENATE(…), FORMAT(…), etc. Fonctions statistiques SUM(…), SUMX(…), COUNTROWS(…), MIN(…), etc. Fonction de filtres ALL(…), FILTER(…), etc. Fonctions logiques IF(…), SWITCH(…), AND, OR, etc. Fonctions mathématiques ABS(…), EXP(…), LOG(…), etc.DAX For Dummies
  • CAS D’UTILISATIONDAX For Dummies
  • Démonstration Scénario 1 : Table PériodeDAX For Dummies
  • Scénario 1 : Table Période • Les utilisateurs veulent pouvoir effectuer rapidement des comparaisons à partir de n’importe quelle date (par rapport à l’année dernière, Year-To-Date, etc.). Pour cela, on va créer une dimension « Période » spécifique.DAX For Dummies
  • Scénario 1 : Table Période • Solution proposée adaptée  PowerPivot  DAXDAX For Dummies
  • Scénario 1 : Table Période • Le modèle dans PowerPivot Dimensions Dimension Mesure calculée Colonne Hiérarchie FaitDAX For Dummies
  • Scénario 1 : Table Période DEMODAX For Dummies
  • Scénario 1 : Table Période • Mesures DAX  Mesures intermédiaires : – [YTD Montant des commandes]:=TOTALYTD([Montant des commandes]; Date Commande[Date]) – [Montant des commandes A-1]:=CALCULATE([Montant des commandes]; SAMEPERIODLASTYEAR(Date Commande[Date])) …  Mesure finale : – [Commandes]:=IF( HASONEVALUE(Période[Période]); SWITCH(VALUES(Période[Période]); "Courant"; [Montant des commandes]; "YTD"; [YTD Montant des commandes]; "Courant A-1"; [Montant des commandes A-1]; … BLANK() ); BLANK() )DAX For Dummies
  • Démonstration Scénario 2 : AssuranceDAX For Dummies
  • Scénario 2 : Assurance • Le service actuariat désire connaître le dernier montant des rentes versées à chaque bénéficiaire à une date spécifique.DAX For Dummies
  • Scénario 2 : Assurance • Solution proposée adaptée  PowerPivot  DAXDAX For Dummies
  • Scénario 2 : Assurance • Le modèle de données dans Powerpivot Dimension Mesure calculée Colonne Dimension FaitDAX For Dummies
  • Scénario 2 : Assurance DEMODAX For Dummies
  • Scénario 2 : Assurance • Mesures DAX  Mesures intermédiaires : – [TotalRente]:=SUM(FaitRente[MontantRente])  Mesure finale : – [DerniereRente]=CALCULATE([TotalRente]; LASTNONBLANK(Date[PK_Date];[TotalRente])) – [DateDerniereRente]=LASTNONBLANK(FaitRente[DateRenteValeur]; [TotalRente])DAX For Dummies
  • Démonstration Scénario 3 : Grande distributionDAX For Dummies
  • Scénario 3 : Grande distribution • Le directeur financier d’une société de grande distribution veut pouvoir déterminer la moyenne du nombre d’articles vendus par magasin depuis le début du mois.DAX For Dummies
  • Scénario 3 : Grande distribution • Solution proposée adaptée  PowerPivot  DAXDAX For Dummies
  • Scénario 3 : Grande distribution • Le modèle dans PowerPivot Fait Mesure calculée Dimensions Dimension Colonne HiérarchieDAX For Dummies
  • Scénario 3 : Grande distribution DEMODAX For Dummies
  • Scénario 3 : Grande distribution • Mesures DAX  Mesures intermédiaires : – [Qte MTD]:=TOTALMTD(SUMX(Vente; Vente[Quantite]); Date Vente[Date]) – [Nb Magasins]:=CALCULATE(COUNTROWS(DISTINCT(Magasin[Code Magasin])); Magasin[Code Magasin] <> ""; FILTER(Vente; [Qte MTD] > 0))  Mesure finale : – [Moyenne Par Magasin]:=IF(ISBLANK([Nb Magasins]); BLANK(); [Qte MTD] / [Nb Magasins])DAX For Dummies
  • Démonstration Scénario 4 : AssuranceDAX For Dummies
  • Scénario 4 : Assurance • Le service de la gestion souhaite suivre le montant des cotisations reçues :  Évolution annuelle  Répartition par institutionDAX For Dummies
  • Scénario 4 : Assurance • Solution proposée adaptée  SSAS en mode tabulaire  DAX  Rapport SQL Server Reporting ServicesDAX For Dummies
  • Scénario 4 : Assurance • Le modèle de données dans SSAS en mode tabulaire Dimension Dimension FaitDAX For Dummies
  • Scénario 4 : Assurance DEMODAX For Dummies
  • Requête en DAX (1/2) DEFINE – Définition des mesures calculées MEASURE FaitCotisation[TotalCotisation] = SUM(FaitCotisation[MontantCotisation]) MEASURE FaitCotisation[TotalCotisationPrevYear] = CALCULATE(FaitCotisation[TotalCotisation],PREVIOUSYEAR(Date[PK_Date])) MEASURE InstitutionPrevoyance[RangIpN] = IF(ISBLANK(FaitCotisation[TotalCotisation]),BLANK(), RANKX(ALL(InstitutionPrevoyance[InstitutionPrevoyance]),FaitCotisation[TotalCotisation])) MEASURE InstitutionPrevoyance[RangIpN-1] = IF(ISBLANK(FaitCotisation[TotalCotisationPrevYear]),BLANK(), CALCULATE([RangIpN],PREVIOUSYEAR(Date[PK_Date]))) MEASURE InstitutionPrevoyance[CategorieClassementIP] = IF(InstitutionPrevoyance[RangIpN]<6,"Sous-Total Top 5",IF(InstitutionPrevoyance[RangIpN]<11,"Sous- Total Top 10","Autres IP")) MEASURE InstitutionPrevoyance[PourcentageTotalCotisation] =FaitCotisation[TotalCotisation]/ CALCULATE(FaitCotisation[TotalCotisation],ALL(InstitutionPrevoyance[InstitutionPrevoyance]))DAX For Dummies
  • Requête en DAX (2/2) -- Suite de la requête EVALUATE TOPN (10, FILTER ( ADDCOLUMNS ( SUMMARIZE(FaitCotisation,Date[Année_Nom],InstitutionPrevoyance[InstitutionPrevoyance]), "Cotisation N", FaitCotisation[TotalCotisation], "Cotisation N-1",FaitCotisation[TotalCotisationPrevYear], "Rang N",InstitutionPrevoyance[RangIpN], "Rang N-1",InstitutionPrevoyance[RangIpN-1], "ClassementCategorieIP",InstitutionPrevoyance[CategorieClassementIP], "PourcentageTotalCotisation",InstitutionPrevoyance[PourcentageTotalCotisation] ) ,Date[Année_Nom]=2012 -- pour SSRS remplacer 2012 par VALUE(@Annee) nous permet davoir un paramètre année )-- Fin FILTER ,InstitutionPrevoyance[RangIpN],1 )-- Fin TOPN ORDER BY Date[Année_Nom] DESC,FaitCotisation[TotalCotisation] DESC;--Fin EVALUATEDAX For Dummies
  • Requête en MDX (1/2) – Définition des jeux et des mesures calculées WITH SET JeuCodeIPAnneeNTrieCotisationDesc AS HEAD(EXTRACT(NONEMPTY(ORDER((EXCEPT([Institution Prevoyance].[Code Institution Prevoyance].[Code Institution Prevoyance].MEMBERS,[Institution Prevoyance].[Code Institution Prevoyance].&[Inconnu])-[Institution Prevoyance].[Code Institution Prevoyance].&)*(STRTOMEMBER(@Annee)),[Measures].[MontantCotisation] , BDESC )), [Institution Prevoyance].[Code Institution Prevoyance]),10) SET JeuCodeIPAnneeNMoins1TrieCotisationDesc AS EXTRACT(ORDER((EXCEPT([Institution Prevoyance].[Code Institution Prevoyance].[Code Institution Prevoyance].MEMBERS,[Institution Prevoyance].[Code Institution Prevoyance].&[Inconnu])-[Institution Prevoyance].[Code Institution Prevoyance].&)*(STRTOMEMBER(@AnneePrecedent)),[Measures].[Montant Cotisation] , BDESC ),[Institution Prevoyance].[Code Institution Prevoyance]) MEMBER [Measures].[RangIpAnneeN] AS Rank([Institution Prevoyance].[Code Institution Prevoyance].CurrentMember, JeuCodeIPAnneeNTrieCotisationDesc) MEMBER [Measures].[RangIpAnneeNMoins1] AS Rank([Institution Prevoyance].[Code Institution Prevoyance].CurrentMember, JeuCodeIPAnneeNMoins1TrieCotisationDesc)DAX For Dummies
  • Requête en MDX (2/2) -- Suite de la requête MEMBER [Measures].[PourcentageTotalCotisation] AS ([Measures].[Montant Cotisation],STRTOMEMBER(@Annee))/SUM(ROOT([Institution Prevoyance]),([Measures].[Montant Cotisation],STRTOMEMBER(@Annee))) MEMBER [Measures].[CategorieClassementIP] AS CASE WHEN ([Measures].[RangIpAnneeN] <6) THEN "Sous-Total Top 5" WHEN ([Measures].[RangIpAnneeN] <11) THEN "Sous-Total Top 10" ELSE "Autres IP" END MEMBER [Measures].[MontantCotisation] AS ([Measures].[Montant Cotisation],STRTOMEMBER(@Annee)) SELECT {[Measures].[MontantCotisation],[Measures].[PourcentageTotalCotisation],[Measures].[RangIpAnneeN],[Measures].[RangIpAnneeNMoins1] ,[Measures].[CategorieClassementIP]} ON 0, JeuCodeIPAnneeNTrieCotisationDesc*[Institution Prevoyance].[Institution Prevoyance].[Institution Prevoyance].MEMBERS ON 1 FROM [Cube]DAX For Dummies
  • RÉFÉRENCESDAX For Dummies
  • Références • DAX Resource Center Wiki  http://social.technet.microsoft.com/wiki/contents/articles/dax-resource- center.aspx • MSDN Library – Data Analysis Expressions Reference  http://msdn.microsoft.com/en-us/library/gg413422%28v=sql.110%29.aspx • Paul Te Braak – Blog  http://paultebraak.wordpress.com/category/dax/ • Chris Webb – Blog  http://cwebbbi.wordpress.com/category/dax/ • Marco Russo – Blog  http://sqlblog.com/blogs/marco_russo/DAX For Dummies
  • Quiz 1. Comment faire des regroupements de données en DAX ? 2. Peut-on joindre des jeux de données en DAX ? 3. Comment afficher la liste de mes produits en DAX ? 4. Sur une dimension historisée (par exemple produits), comment puis-je calculer le nombre de mes produits ?DAX For Dummies
  • Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDayshttp://notes.mstechdays.fr