mdx franco perduca factory software francop@factorysw.com

Post on 01-May-2015

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mdx

Franco Perduca Factory Software

francop@factorysw.com

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.

top related