PowerPivot e Dax

  • View
    1.468

  • Download
    1

Embed Size (px)

Text of PowerPivot e Dax

  • 1. PowerPivot e DAXMarco PozzanBI Analyst , 1NN0VAinfo@marcopozzan.itwww.marcopozzan.itSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931

2. Agenda: Che cosa PowerPivot? Installazione PowerPivot Demo su powerpivot Che cosa DAX? Colonne calcolate Evaluation Context Esempio pratico in DAXSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 3. PowerPivot per lutente Free AddIn per Microsoft Excel 2010 Diverse versioni per 32/64 bit Non servono SQL Server o altri prerequisiti Scaricabile dal www.powerpivot.com Versione corrente: 1.0Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 4. PowerPivot per il tecnico Client: SSAS Engine gira in-process conExcel Server: Integrato su SharePoint e SQLServer 2008 R2 e Sql Server 2012 Interrogabile in MDX/DAX eprogrammabile in DAX Potente motore di analisi basato suSSAS 2012Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 5. Nuovo engine SSAS 2012 PowerPivot = DB colonnare Vertipaq Database colonnare alta compressione Lavora completamente in memoria Niente I/O, aggregazioni o altro Ottimizzazioni su cache L2 single core IMBI = Nuovo modo di pensare aglialgoritmiSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 6. Installazione Si scarica da www.powerpivot.com Si esegue il setup Compare un nuovo tab nel ribbon diexcel 2010: PowerPivotSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 7. CLIPBOARD DATI ESTERNICREA PIVOT TABLEORGANIZZAABILITAAPRERELAZIONIMETADATI COLONNE RICALCOLO CONESSIONETRA TABELLEAUTOMATICOSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 8. Demo 0Demo Importare i dati Relazioni tra tabelle Slicer Colonne calcolate Misure Linked TableSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 9. Vantaggi PowerPivot Rapidit No ETL Modello metadati Integrazione sorgenti eterogenee Condivisione Soprattutto con sharepoint Espressivit Relazioni e DaxSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 10. Svantaggi PowerPivot Non ci sono Etl per pulire i dati Qualit del dato? Volume di datiAttenzione che questi non sonoproblemi!!! Come potrebbero sembrare.Cari i miei consulenti rimarrete senzalavoro? Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 11. Che cosa DAX? Progettato per lavorare allinterno diuna PivotTable PowerPivot si programma in DAX Simile ad Excel (Dicono ) Nessun concetto di riga e colonna Diverso sistema di tipiSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 12. Tipi di dato in DAX 2/2 Operator Overloading (pericoloso ) Gli operatori non sono strongly typed Il risultato dipende dallinput Esempio di conversioni 1 & 2 = "12" "1" + "2" = 3Sede Legale: Via Monte Coglians, 8 PORCIA (PN) www.1nn0va.netCodice fiscale: 91068510931info@1nn0va.net 13. Tipi di dato in DAX 2/2 Currency Integer Real String Date (DateTime) TRUE / FALSE (Boolean)Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 14. Colonne in DAX 1/2 TableName[ColumnName] Gli apici possono essere omessi solo sela TableName non contiene spazi (Nonlo fate )Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 15. Colonne in DAX 2/2 TableName pu essere omesso equindi cercher nella tabella correnteMeglio non farlo in quanto si fatica a capirele formule Le parentesi quadre sono obbligatorieSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 16. Colonne calcolate 1/2 Usano altre colonne Lavorano sempre nella riga corrente In SSAS sono viste locali (DSV) su rigacorrente, in PowerPoint ho laccesso totaleal modello dati.Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 17. Colonne calcolate 2/2 Se scriviamo la seguente espressione: intendiamo: Il valore della colonna SalesAmount Nella tabella FactInternetSales Vale sulla riga corrente Ha un valore diverso per ogni rigaSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 18. Misure Si scrivono con DAX Non sono memorizzate sul database Non lavorano riga per riga Usano tabelle ed aggregatori Non hanno il concetto di rigacorrenteSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 19. Problema Supponiamo di voler calcolare ilmargine con una colonna calcolata:Per poi voler calcolare la % delmargine rispetto al fatturatocon una colonna calcolata:Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 20. Demo 1Applicazione nella Pivot Usiamo la colonna delmargine in percentualenella tabella pivot (errore)Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 21. Proviamo con una misura ?Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 22. modiche alla formula Il valore del SalesAmount non puessere calcolato nel contesto correnteperch non sono in una tabella manella tabella pivot e quindi non c: Concetto di Riga Concetto di Riga corrente Non c il valore in quel momentoSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 23. Demo 1Soluzione con le misure Devo usare una funzione pertrasformare il riferimento di colonna inun valore!!!Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 24. Conclusioni colonne calcolate puntano a colonne ele misure necessitano di aggregazioni le colonne usano spazio le misure CPU Vengono calcolate in momenti diversi Hanno scopi diversi Hanno strutture diverse Vengono gestite in modi diversiSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 25. Quando usare colonne omisure ? C:Il valore deve rimanere scritto nellatabella (filtrare o fare slicing) C:Lespressione deve essere calcolatariga per riga M: Servono aggregazioni un postrane (Last Child .) M:Calcolare rapporti, percentuali..Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 26. Funzioni conteggio Funzioni per contare i valori: COUNTROWS: conta le righe in tabella COUNTBLANK: conta i bianchi COUNTA: conta tutto anche gli spazi COUNT : conta solo le colonne numericheSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 27. Funzioni sulle date DATE, DATEVALUE, DAY, EDATE, EOMONTH, HOUR, MINUTE, MONTH, NOW, SECOND, TIME, TIMEVALUE, TODAY, WEEKDAY, WEEKNUM, YEAR, YEARFRACFunzioni statistiche Lavorano solo su colonne numeriche Per aggregare valori: SUM,AVERANGESede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 28. Demo 1Problema con le funzioni Non posso aggregare su espressioni tipo: SUM([SalesAmount] * [Quantity]) Motivo: In DAX tutto ci che non ottimizzato non nel sistema => colpa vostra se non va Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 29. Soluzione (SUMX,MINX,) sono le funzioni X Scorrono la tabella e calcolanolespressione di ogni riga aggregando hanno sempre due parametri latabella su cui ciclare e la formula davalutare SUMX(FactInternetSales,[SalesAmount] * [Quantity])Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 30. Considerazioni funzioni X Le colonne devono essere tutte sullastessa tabella oppure uso related (sec una relazione) Sono molto lente ma non uso spazio In alternativa alle funzioni x devocreare una colonna calcolata e poiaggregare su quella molto veloce ma uso spazioSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 31. Evaluation context 1/3 Caratterizza DAX da qualsiasi altrolinguaggio. Sono simili alle clausole where dellequery MDX in SSAS. Contesto in cui viene valutata unaformula. Filter Context , RowContextSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 32. Evaluation context 2/3 Filter Context: Set di righe attive per il calcolo che poivengono aggregate Uno per ogni cella della PivotTable Definito da filtri, righe ,colonne e slicersSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 33. Demo 2 Filter context per ottenere 46 e 13: Filtra i dati per anno 2010 e 2011 e prendi la squadra locale bari e nella prima riga filtra per pareggio (0) e nella seconda riga per vittoria dei locali (1).Filter context per totale: Filtra i dati per anno2010 e 2011 e prendi la squadra locale barie nella prima riga filtra per pareggio (0) e nellaseconda riga per vittoria dei locali (1).Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 34. Evaluation context 3/3 Row Context: Contiene una sola riga Riga corrente durante i loop Definito dalle formule x non dalla tabellaPivot Questo concetto nuovo rispetto MDXperch non siamo abituati a lavorarefoglia per foglia ma solo sul contesto.Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 35. Demo 2 Creiamo una misura Finalizzazione Rappresenta la media tra la differenza deitiri in porta e dei gol per la squadra locale Utilizziamo la AVERAGEXSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 36. Demo Filter context per 11: Filtra i dati perAVERAGEX 20 5 = 15 anno 2010 e 2011 e prendi la squadra 15 8 = 7 locale bari e filtra per vittoria dei locali (15 +7) / 2 = 11 (1). =AVERAGEX(vw_fact_per_powerpivot,vw_ fact_per_powerpivot[T squadra locale]- vw_fact_per_powerpivot[T in porta locale])Sede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 37. I due esistono sempre Filter context: Filtra le tabelle Pu essere vuoto: si vede solo il totale Row context: Naviga le righe attive nel filter context Pu essere vuoto: non ci sono interazioniSede Legale: Via Monte Coglians, 8 PORCIA (PN)Codice fiscale: 91068510931 38. E con pi tabelle? Filter context: Il filtro segue le relazioni Esempio (Ordini > Prodotti) si applica una volta sola (+ performance) Row context: Se ne frega delle relazioni - performance (r