anderson chaves carniel profa. dra. cristina dutra de...
TRANSCRIPT
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