La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Mdx Franco Perduca Factory Software francop@factorysw.com.

Presentazioni simili


Presentazione sul tema: "Mdx Franco Perduca Factory Software francop@factorysw.com."— Transcript della presentazione:

1 Mdx Franco Perduca Factory Software

2 Mdx Multi-Dimensional eXpression Parte della specifica OLEDB for OLAP
Ora parte anche delle specifiche XML/A Nasce per reporting e analisi

3 SQL vs MDX SQL Relazionale MDX Multidimensionale
Joins devono essere specificati Non è “Posizionale” Data dynamically aggregated MDX Multidimensionale Relazioni sono definite nei metadati Posizionale Data referenced

4 Mdx Lo usiamo per Query Statements
Per costruire reports (“simile” a SQL) Formule Membri calcolati (simile a Excel) Named Sets Subcube expression Management (limitato rispetto a Sql) Alter Cube, Update Cube, etc.

5 Mdx ogni cella ha un nome
([All Product], [All State], Dollars) All State Canada Mexico USA Dollars All Product Units Bread (Bread, USA, Units) Dairy (Meat, Mexico, Dollars) Meat

6 Mdx Tupla Coordinate multidimensionali di una cella
1 membro da ogni dimensione Se piu’ dimensioni separo con , Va messa tra () e nome tra [] (non obblig.) Se una dimensione non è specificata usa membro corrente ([Measures].[Order Count],[Date].[Calendar Year].&[2004])

7 ([All State], [All Time], [Dairy], [Sales Dollars])
3/27/2017 2:26 AM Mdx A tuple is a cell address. ([All State], [All Time], [Dairy], [Sales Dollars]) Tuple da Row, Column, and Filter © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

8 Mdx Set Insieme di tuple della stessa “dimensionalità” {
([Measures].[Order Count],[Date].[Calendar Year].&[2004]), ([Measures].[Order Count],[Date].[Calendar Year].&[2003]) }

9 Mdx Mdx formule Nuove misure Nuovi membri Tuple based Average Price =
[Sales Amount] / [Order Quantity] come riferimento Excel: =B5/B4 Set based Year To Date = Sum( PeriodsToDate([Order Date].[Calendar Quarter]),[Order Quantity]) Come Excel ranges: =Sum(B2:B10) ([Unit Sales],ancestor(Product,[Product].[(All)]))

10 Mdx Autoexist Non ritorna attributi della stessa dimensione che non esistono altri attributi Es Provincia , Comune Se scelgo MI vedo solo i comuni della provincia di MI Non ha niente che fare con i fact table Posso creare tupla che non ritorna nulla MI -> Rimini

11 Mdx Forms e Script Mode MDX Designer Nuovo ambiente centralizzato
Intellisense Color coding Debugger !!!! Forms e Script Mode Forms piu’ semplice creare mdx Script Mode per utenti piu’ avanzati

12 Mdx Primo mdx script Calculated Member Es:
3/27/2017 2:26 AM Mdx Primo mdx script Calculated Member Possibilità di organizzarli in folders Es: [Measures].[Totale]/[Measures].[Qta] avg(topcount([Dim Clienti].[Dim Clienti].[Dim Clienti].members,5,[Measures].[Totale]),[Measures].[Totale]) (attenzione a specificare oggetti corretti) [Measures].[Totale]/[Measures].[Qta] su supermarket © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

13 Mdx “Lavorare” con il tempo
Importante la funzione CurrentMember [dim tempo].[Year - Quarter - Month - Date].currentmember.name (o . Uniquename) E la PrevMember ([dim tempo].[Year - Quarter - Month - Date].currentmember.prevmember,[Measures].[Totale]) O meglio ([dim tempo].[Year - Quarter - Month - Date].prevmember,[Measures].[Totale]) Crescita pp ([dim tempo].[Year - Quarter - Month - Date],[Measures].[Totale])-

14 Mdx “Lavorare” con il tempo
ParallelPeriod Si potrebbe usare la funzione lag Es lag(12) per anno Meglio parallelperiod Parallelperiod(Livello,quanto,Membro) es (parallelperiod([dim tempo].[Year - Quarter - Month - Date].[Year],1,[dim tempo].[Year - Quarter - Month - Date]),[Measures].[Totale])

15 Mdx “Lavorare” con il tempo
Aggregazione YTD Funzione YTD, ritorna membri ad un livello da inizio anno Es YTD([dim tempo].[Year - Quarter - Month - Date].[Month].&[ T00:00:00]) /* Marzo 2003*/ Torna Gennaio 2003 Febbraio 2003 Marzo 2003 Funzione QTD stessa cosa su quarter Funzione PeriodsToDate specifico data inizio

16 Mdx altri esempi Percentuale rispetto al totale
Funzione Root, ritorna All di una dimensione Es root([Dim Clienti]) ([Measures].[Totale]) / (root([Dim Clienti]),[Measures].[Totale]) Percentuale rispetto al padre Parent ritorna il membro padre [Dim Clienti].[Provincia - Comune].CurrentMember.Parent ( [Dim Clienti].[Provincia - Comune],[Measures].[Qta] ) / ( [Dim Clienti].[Provincia - Comune].Parent,[Measures].[Qta] )

17 Mdx non solo misure Media di una gerarchia La associo ad una gerarchia
Avg(avg([Dim Clienti].[Comune].[Comune].members) La associo ad una gerarchia Ed ad un Parent Member

18 Mdx NamedSet Set già pronto al interno del udm Es top n
topcount([Dim Clienti].[Comune].[comune].members,5,[Measures].[Totale])

19 Mdx MDX query È composta da 3 parti
Dicers: assi (normalmente Column e Row) Data Grid – riempita dalla risoluzione degli assi Slicers: Filtro SELECT <Set> On Columns, <Set> On Rows FROM <Cube> WHERE <Slicers>

20 Set SELECT [Sales Amount] ON 0,
<x>.Members Descendants or Children se sono in una gerarchia Membri espliciti in {} {[Sales Amount],[Order Quantity]} Membro singolo {} non obbligatorio SELECT [Sales Amount] ON 0, [Category].Members ON Rows FROM [Adventure Works];

21 Assi SELECT NON EMPTY [Measures].Members ON 0,
<Set> ON <Axis> Columns 0 Rows 1 NON EMPTY rimuove celle vuote SELECT NON EMPTY [Measures].Members ON 0, NON EMPTY [Category].Members ON Rows FROM [Adventure Works];

22 Mdx Funzioni (tra le piu’ usate) Order Head/Tail TopCount Filter
Crossjoin (*) Except (-) Generate

23 Mdx Attributi aggiuntivi Hierarchize (ordina dimensione)
NON EMPTY (toglie righe vuote) CELL PROPERTIES Formatted_Value;

24 ADOMD.Net Nuova versione .Net of ADOMD ADOMD.Net in AS2005
.Net wrapper for XML/A SOAP calls Non fa parte di Sql 2005 Già rilasciato in AS2K, XML/A “parla” con PivotTable Service (PTS) in Sql 2005, XML/A diretto al server

25 3/27/2017 2:26 AM ADOMD.Net © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

26 3/27/2017 2:26 AM ADOMD.Net © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

27 Client Metadata Struttura del cubo. CubeDef Class
Dimension  Hierarchy  Level  Member

28 Query Execution Invia MDX via AdomdCommand Standard MDX Torna CellSet
Griglia multidimensionale

29 CellSet Structure Axes  Sets  Tuples
Terminologia cambiata da adomd per essere piu’ aderente a MDX Data Values (array multidimensionale) Index è (n,m) array element

30 CellSet metadata Metadati sono disponibile dal CellSet OlapInfo
AxesInfo CellsInfo CubesInfo

31 3/27/2017 2:26 AM Domande? © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

32 © 2004 Microsoft Corporation. All rights reserved.
3/27/2017 2:26 AM © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Scaricare ppt "Mdx Franco Perduca Factory Software francop@factorysw.com."

Presentazioni simili


Annunci Google