Anderson Chaves Carniel Profa. Dra. Cristina Dutra de...

Post on 27-Sep-2018

219 views 0 download

Transcript of Anderson Chaves Carniel Profa. Dra. Cristina Dutra de...

Anderson Chaves CarnielProfa. Dra. Cristina Dutra de Aguiar Ciferri

1

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

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

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

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

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

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

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

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

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

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

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

11

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

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

Tuplesz ( [Supplier].[EUROPE] ) ou

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

14

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

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

16

Date

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

Expressões MDX

y Operadores

y CALCULATED MEMBERS e NAMED SETS

y Expressões Condicionais

y Funções

18

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

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

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

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

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

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

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

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

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

Consultas MDXy Considere o seguinte esquema estrela

28

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

Consultas MDX – Resultado em Pivot/Cross Table

30

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

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

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

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