Upload
raul-simonetti
View
218
Download
0
Tags:
Embed Size (px)
Citation preview
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 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
Bread
Dairy
Meat
UnitsDollars
(Bread, USA, Units)(Bread, USA, Units)
([All Product], ([All Product], [All State],[All State],Dollars)Dollars)
(Meat, (Meat, Mexico,Mexico,Dollars)Dollars)
USA
Cana
da
Mexico
All S
tate
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
Mdx
Tuple da Row, Column, and Filter
([All State], [All Time], [Dairy],
[Sales Dollars])
([All State], [All Time], [Dairy],
[Sales Dollars])
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
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
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)
13
Mdx “Lavorare” con il tempo
“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])-
([dim tempo].[Year - Quarter - Month - Date].prevmember,[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].&[2003-03-01T00: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 Es
[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 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
<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 RowsFROM [Adventure Works];
21
Assi
<Set> ON <Axis> Columns 0 Rows 1
NON EMPTY rimuove celle vuote
SELECT NON EMPTY [Measures].Members ON 0, NON EMPTY [Category].Members ON RowsFROM [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
ADOMD.Net
Cubes Cube
Dimensions Dimension
Hierarchies Hierarchy
Levels Level
Members Member
Properties
Measures
Measure
26
ADOMD.Net
CellSet
Axes Axis
Cells Cell
Set
Tuples Tuple
Members Member
Connection
Command
Set
CellSet is instantiated byExecuting on Command object
Tuple
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
Domande?
© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.