anderson chaves carniel profa. dra. cristina dutra de...

34
Anderson Chaves Carniel Profa. Dra. Cristina Dutra de Aguiar Ciferri 1

Upload: dophuc

Post on 27-Sep-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Anderson Chaves CarnielProfa. Dra. Cristina Dutra de Aguiar Ciferri

1

Page 2: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Introduçãoy Linguagem de consulta à base de dados

multidimensionais criada pela Microsoft® em 1998

y Parte de um padrão industrial, o OLE DB for OLAP

y Permite a especificação de até 128 eixos de consultas, sendo porém incomum a utilização de mais de 3 eixos

2

Page 3: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Introduçãoy Não é igual a linguagem SQL

y Apesar do nome, a linguagem SQL também possui comandos CREATE, INSERT e ALTER

y Tem sintaxe parecida com a linguagem SQL na forma SELECT-FROM-WHERE

y Linguagem extensível, permitindo criação de funções para manipular dados multidimensionais

3

Page 4: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Introduçãoy Conceitos importantes:

y Cube (CUBO) é o elemento mais básico em consultas OLAP

y Dimensions (DIMENSÕES) descreve o cubo de dadosy Levels (NÍVEIS DA HIERARQUIA) detalha uma

dimensãoy Members (MEMBROS) corresponde aos itens/valores

de um nível de uma hierarquiay Measures (MEDIDAS) corresponde também a uma

dimensão

4

Page 5: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Conceitos

5

74858484 5482 7452 8124

800120 152142741

Date

BRAZIL

USA

FRANCE

GERMAN

JAPAN

KOREA

AMERICA

EUROPE

ASIA

Supplier

Part

5850 6514

1575

2015

125

1204

8841

6541

5148

2154

15481024

26503254

9990

7000

215 6000

5480

70028000

4583

3201

1024

1001

revenuesupplycost

Measures

854564

8484

1848474

230541214566800

234

5608446541241284

1234 584 458 654

844 848 484 854781

y Seja a seguinte visão multidimensional de um esquema estrela

Page 6: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Conceitos - Cube

6

y Engloba todo o DW ou as visões multidimensionais de interesse

74858484 5482 7452 8124

800120 152142741

Date

BRAZIL

USA

FRANCE

GERMAN

JAPAN

KOREA

AMERICA

EUROPE

ASIA

Supplier

Part

5850 6514

1575

2015

125

1204

8841

6541

5148

2154

15481024

26503254

9990

7000

215 6000

5480

70028000

4583

3201

1024

1001

revenuesupplycost

Measures

854564

8484

1848474

230541214566800

234

5608446541241284

1234 584 458 654

844 848 484 854781

Legenda:

TABELA DE FATOS

CUBO

Page 7: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Conceitos –Dimensions

7

y Características do cubo de dados

74858484 5482 7452 8124

800120 152142741

Date

BRAZIL

USA

FRANCE

GERMAN

JAPAN

KOREA

AMERICA

EUROPE

ASIA

Supplier

Part

5850 6514

1575

2015

125

1204

8841

6541

5148

2154

15481024

26503254

9990

7000

215 6000

5480

70028000

4583

3201

1024

1001

revenuesupplycost

Measures

854564

8484

1848474

230541214566800

234

5608446541241284

1234 584 458 654

844 848 484 854781

Legenda:

TABELA DE DIMENSÃO

DIMENSÃO

Page 8: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Conceitos –Levels

8

y Níveis de hierarquias de atributos

y Existe também o All(all) % (region) % (nation) % (city) % (address) 74858484 5482 7452 8124

800120 152142741

Date

BRAZIL

USA

FRANCE

GERMAN

JAPAN

KOREA

AMERICA

EUROPE

ASIA

Supplier

Part

5850 6514

1575

2015

125

1204

8841

6541

5148

2154

15481024

26503254

9990

7000

215 6000

5480

70028000

4583

3201

1024

1001

revenuesupplycost

Measures

854564

8484

1848474

230541214566800

234

5608446541241284

1234 584 458 654

844 848 484 854781

Legenda:

HIERARQUIA

NÍVEL

Page 9: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Conceitos –Members

9

y São os valores de cada nível da hierarquia

74858484 5482 7452 8124

800120 152142741

Date

BRAZIL

USA

FRANCE

GERMAN

JAPAN

KOREA

AMERICA

EUROPE

ASIA

Supplier

Part

5850 6514

1575

2015

125

1204

8841

6541

5148

2154

15481024

26503254

9990

7000

215 6000

5480

70028000

4583

3201

1024

1001

revenuesupplycost

Measures

854564

8484

1848474

230541214566800

234

5608446541241284

1234 584 458 654

844 848 484 854781

Legenda:

HIERARQUIA

MEMBROS

Page 10: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Conceitos –Measures

10

y São as medidas numéricas

y Tratadas como uma dimensão: Measure

74858484 5482 7452 8124

800120 152142741

Date

BRAZIL

USA

FRANCE

GERMAN

JAPAN

KOREA

AMERICA

EUROPE

ASIA

Supplier

Part

5850 6514

1575

2015

125

1204

8841

6541

5148

2154

15481024

26503254

9990

7000

215 6000

5480

70028000

4583

3201

1024

1001

revenuesupplycost

Measures

854564

8484

1848474

230541214566800

234

5608446541241284

1234 584 458 654

844 848 484 854781

Legenda: MEDIDAS

Page 11: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

MDX – Conceitos da Linguagemy A MDX utiliza três conceitos principais em sua sintaxe

de consultay Cells - Célulasy Tuples - Tuplasy Sets - Conjuntos

11

Page 12: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

CellszCriadas a partir de intersecções de membros,

onde se obtém os dados

12

74858484 5482 7452 8124

800120 152142741

Date

BRAZIL

USA

FRANCE

GERMAN

JAPAN

KOREA

AMERICA

EUROPE

ASIA

Supplier

Part

5850 6514

1575

2015

125

1204

8841

6541

5148

2154

15481024

26503254

9990

7000

215 6000

5480

70028000

4583

3201

1024

1001

revenuesupplycost

Measures

854564

8484

1848474

230541214566800

234

5608446541241284

1234 584 458 654

844 848 484 854781

1993 1994 1995 1996 1997

Page 13: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Tuplesz É um sistema de extração de células de um cubo, a partir de diferentes

dimensões

z Sintaxe ( [DIMENSAO_1].[MEMBRO], [DIMENSAO_2].[MEMBRO], .... , [DIMENSAO_N].[MEMBRO] )

z Exemplo: ( [Supplier].[AMERICA].[BRAZIL], [Data].[1997] ) Ou ( [Supplier].[Nation].[BRAZIL], [Date].[Year].[1997] )

13

Page 14: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Tuplesz ( [Supplier].[EUROPE] ) ou

(Supplier].[Region].[EUROPE] )

14

Page 15: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Setsz É uma coleção de tuplas, onde seu conjunto de membros pertence a uma única

dimensão

z Representado pelo { ... }

z { [DIMENSAO1].[MEMBRO1], [DIMENSAO1].[MEMBRO2], ... , [DIMENSAO1].[MEMBRO_N] }

y Exemplo: { [Supplier].[ASIA].[JAPAN], [Supplier].[AMERICA].[BRAZIL] }

15

Page 16: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Setsz { [Date].[1994], [Date].[1995], [Date].[1996]}

16

Date

Page 17: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Sintaxe Consulta MDXSELECT

{… a set …} ON COLUMNS,{… a set …} ON ROWS

FROM [CUBO]WHERE [slicer]zNa cláusula WHERE não pode repetir dimensões presentes

anteriormente (em COLUMNS e ROWS)

y Referência completa em: y http://msdn.microsoft.com/en-us/library/ms145506.aspxy http://mondrian.pentaho.org/

17

Page 18: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Expressões MDX

y Operadores

y CALCULATED MEMBERS e NAMED SETS

y Expressões Condicionais

y Funções

18

Page 19: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Operadoresy Aritméticos

y +, -, *, /, ^y String

y +y Condicionais

y =, <>, >, <, >=, <=y Lógicos

y OR, AND, XOR, NOTy Range

y Ex: {[Date].[1998] : [Date].[2010]}

19

Page 20: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

CALCULATED MEMBERS (CM)y São membros calculados a partir de medidas. Eles não

são armazenados no cubo de dados, sendo processados durante a consulta

y Sintaxe:y WITH MEMBER parent.name AS ‘expression’

y Criação do CM Profit:y WITH MEMBER Measures.Profit AS

‘Measures.[Revenue] – [Measures].[SupplyCost]’

20

Page 21: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

NAMED SETSy Definição de uma nova dimensão a partir de uma

operação sobre outras dimensões

y Sintaxe:y WITH SET setName AS ‘expression’

y Criação de um Named Set para os produtos que não são brancosy WITH SET ColorRestriction AS

‘EXCEPT({[Part].[Color].Children},{[Part].[Color].[White]})’

21

Page 22: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Expressões Condicionaisy IIF para avaliar expressões de diferentes dimensões e

retorna outras expressões caso seja true ou false

y Sintaxey IIF(expressão_logica, expressão_true, expressão_false)

y Criação de um CM para valores de quantidade entre 50 e 100y WITH MEMBER [Measures].[QuantityRestriction] as

IFF([Measures].[Quantity] >= 50 AND [Measures].[Quantity] <= 100, [Measures].[Quantity], null)

22

Page 23: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Expressões Condicionaisy FILTER retorna um conjunto de acordo com um filtro

y Sintaxe:y FILTER(Expressão de conjunto, expressão lógica)

y Exemplo:y Retornar os anos que tiveram receita maior que 10000y FILTER([Date].[All].[Year].Members,

[Measures].[Revenue] > 10000)

23

Page 24: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Funçõesy CHILDREN

y Retorna todos os filhos de um determinado membroy Exemplo: [Date].[1998].Children -> Todos os meses do ano de

1998

y DESCENDANTSy Retorna todos os membros a partir de um determinando

membro até um determinado nível de uma hierarquiay Sintaxe: DESCENDANTS(member, level [, flags])y Exemplo: Descendants([Supplier].[AMERICA].[BRAZIL],

[Supplier].[AMERICA].[ADDRESS], BEFORE)

24

Page 25: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Funçõesy COALESCEEMPTY garante que uma expressão

numérica tenha null formatado como zero

y ANCESTOR retorna o ancestral de um determinadomembro. O ancestral pode ser informado pelo nomedo nível

y CROSSJOIN combina em um único eixo, 2 sets (podeser utilizado o operador *)

25

Page 26: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Funçõesy Outros funções utilizadas:

y FIRSTCHILD, LASTCHILD para retornar o primeiro ou último membro de um nível, respectivamente

y CURRENTMEMBER para retornar o membro atual durante uma iteração (utilizado principalmente para cálculos que dependem de contexto)

26

Page 27: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

FunçõesWITH

MEMBER [Measures].[Order Percent by Category] ASCoalesceEmpty

( ([Part].[Part Categories].CurrentMember,

[Measures].[Quantity]) / (Ancestor( [Part].[Part Categories].CurrentMember,

[Part].[Part Categories].[Category]), [Measures].[Order Quantity]

), 0), FORMAT_STRING='Percent'

27

Page 28: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Consultas MDXy Considere o seguinte esquema estrela

28

Page 29: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Consultas MDXy Projete uma consulta MDX que retorna a soma da

receita por ano e por marca da categoria MFGR#12 produzidos pelos fornecedores da região AMERICA

select Crossjoin({[Measures].[revenue]}, {[Date].[All].Children}) ON COLUMNS,

{[Part].[category].[MFGR#12].Children} ON ROWS

from [CubeSSB]

where {[Supplier].[All].[AMERICA]}

29

Page 30: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Consultas MDX – Resultado em Pivot/Cross Table

30

Page 31: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Consultas MDXy Retorne a soma das receitas por ano e por marca, das

marcas MFGR#2221 e MFGR#2228 e dos fornecedores da AMERICAy Mais restritiva que a consulta anterior

31

Page 32: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Consultas MDXy Retorne a soma das receitas por ano e por marca, das

marcas MFGR#2221 e MFGR#2228 e dos fornecedores da AMERICAy Mais restritiva que a consulta anterior

SELECT Crossjoin({[Measures].[revenue]}, {[Date].[All].Children}) ON COLUMNS,{[Part].[brand].[MFGR#2221], [Part].[brand].[MFGR#2228]}

ON ROWSFROM [CubeSSB]WHERE {[Supplier].[All].[AMERICA]}

32

Page 33: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Consultas MDX - Exercíciosy 1 - Projete uma consulta MDX que retorne a soma da receita

por ano e por marca, das marcas MFGR#2221 atéMFGR#2228 dos fornecedores da ASIA

y 2 – A consulta 1 possui slice and dice? Justifique.y 3 – Projete uma consulta MDX que faça a operação de Drill-

down sobre a consulta 1y 4 – Projete uma consulta MDX que retorna a soma da

receita pelas cidades dos fornecedores e consumidores, dos país consumidor UNITED STATES e país fornecedorUNITED STATES, entre os anos 1992 e 1997

y 5 – A consulta 4 possui slice and dice? Justifique.y 6 – Projete uma consulta MDX que faça a operação de Roll-

Up sobre a consulta 4

33

Page 34: Anderson Chaves Carniel Profa. Dra. Cristina Dutra de ...wiki.icmc.usp.br/images/4/42/SCC0245022017MDXc.pdf · Introdução yConceitos importantes: yCube (CUBO) é o elemento mais

Consultas MDX - Exercíciosy 7 - Qual é a consulta MDX para esta visualização?

y 8 - Qual é a consulta MDX para esta visualização?

34

Considere que UNITED KI1 e UNITED KI5 são cidades