MDX - "SQL para OLAP"

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Uma linguagem multidimensional de alto desempenho para ferramentas de Business Inteligence (BI). Utilizada por grandes empresas de BI (Microsoft Analysis Service, MetaWarehouse Analytical Server).

 

Neste artigo será utilizado Analysis Service para demonstração das consultas MDX com o cubo "Warehouse", exemplo fornecido pela ferramenta após a instalação.

 

Na Teoria:

 

Overview de OLAP:

 

                A tecnologia OLAP é um método ágil e eficiente para gerenciar e armazenar todos os dados importantes da empresa mantendo.

um histórico possibilitando uma mineração de sobre os dados transformando-os em informações para análise e tomada de decisões.

 

                Pode ser aplicado em diversas áreas como finanças, vendas e marketing. Utilizado em ferramentas de BI (Business Inteligence), como no Microsoft Analysis Service e MetaWarehouse Analytical Server.

 

                Cubo é uma estrutura de uma base de dados de consultas gerencias voltado para a integração dos diversos registros de uma fonte de dados, possibilitando a visualização destes de forma multidimensional e desempenho.

 

                Uma dimensão é um agregado de hierarquias orientado a um assunto que será objeto da análise e o tempo é sempre uma das dimensões consideradas, onde cada uma desta agrupa um conjunto de níveis conveniente para análise. Cada nível é um detalhe de uma hierarquia, que por sua vez agrupa membros. Membro é um dado qualitativo ou descritivo de um nível.

 

                Abaixo, temos uma imagem para visualizar graficamente com detalhes à estrutura citada acima:

                olap4.gif

Figura 10: http://www.din.uem.br/ia/a_multid/mineracao/tecnologia/olap4.gif

 

        Podem-se visualizar três dimensões (Produto, Tempo, Região).

        Na dimensão Região pode-ser observar uma única hierarquia com três níveis e vários membros.

No nível região, temos os membros Sul, Sudeste, Nordeste e outros. Detalhando o membro Nordeste, chegamos ao nível estado onde encontramos os membros Bahia, Ceará e outros.

 

                A linguagem Multidimensional Expression (MDX) foi criada com propósito de manipular dados multidimensionais Analysis Services e outras ferramentas. Sua sintaxe possui uma semelhança com SQL.

 

Utilização:

 - Ferramentas de Business Inteligence.

 - Navegação em estruturas de uma fonte de dados OLAP.

 - DDL (linguagem de definição de dados).

 - Obtém informações sobre a estrutura do cubo com expressões MDX.

 - Permite utilizar membros e células calculadas.

 - Funcionalidade Drill-Through (Visualização mais detalhada referente a um dado qualitativo).

                Ex.: 1.500 é o custo do cliente "Petrobrás" no ano de 2007.

                Com drill-through, poderemos observar, por exemplo, o telefone/código do cliente.

 - Baseado em dois eixos (Linhas e colunas).

 

 

Na prática:

                  Iremos iniciar o MDX Sample Application que é instalado junto ao Analysis Services e utilizar o cubo Warehouse.

 

                  Iniciar -> Programas -> Microsoft SQL Server -> Analysis Service -> MDX Sample application.

 

                  Será exibida uma tela solicitando o nome do servidor e o provider. Servidor=Nomde_da_Máquina  Provider=MSOLAP

                  Veja no link a tela exibida:

 

                wp_msas_7_1.gif

http://www.sql-server-performance.com/images/wp_msas_7_1.gif

 

                  Ao se conectar selecione o cubo FoodMart 2000.

                Na imagem abaixo exibe uma tela de exemplo.

 

                wp_msas_7_2.gif

                http://www.sql-server-performance.com/images/wp_msas_7_2.gif

 

 

Agora, iremos executar alguns comandos MDX no Analysis Service.

 

Syntax básica MDX:

SELECT  <set> ON COLUMNS,

                <set> ON ROWS

                FROM [<cube_name>]

 

SET é definido por um conjunto de membros de uma dimensão ou um cruzamento várias dimensões.

 

 

Exemplo 1:

Aqui está um exemplo básico de uma MDX filtrando pelo estado de Canadá utilizando a cláusula "WHERE".

 

SELECT

  { [Measures].[Warehouse Cost] } ON COLUMNS,

  { [Time].[1997], [Time].[1998] } ON ROWS

FROM [Warehouse]

WHERE ( [Warehouse].[All Warehouses].[USA].[CA] )

 

Observe o resultado retornado: Uma visão multidimensional

 

 

Exemplo 2:

No exemplo abaixo incluímos um membro calculado dinamicamente na MDX.

Criamos um membro chamado lucro onde está definido por "venda - custo" formatando sua saída.

 

WITH MEMBER [Measures].[Lucro] AS [Measures].[Warehouse Sales] - [Measures].[Warehouse Cost], FORMAT_STRING = "#,###.00"

SELECT

  { [Measures].[Warehouse Sales] , [Measures].[Warehouse Cost] , [Measures].[Lucro] } ON COLUMNS,

  { [Time].[1997] } ON ROWS

FROM [Warehouse]

 

 

Exemplo 3:

Neste exemplo utilizaremos uma das funções mais utilizadas em MDX (CROSSJOIN).

Estamos cruzando todos os membros do nível ano, ou seja, todos os anos, pelo país "USA".

 

SELECT

  { [Measures].[Warehouse Sales], [Measures].[Warehouse Cost] } ON COLUMNS,

CROSSJOIN (

       { [Time].[Year].Members},

       { [Store].[Store Country].[USA] }

) ON ROWS

FROM [Warehouse]

 

No link abaixo possui diversos exemplos com funções MDX:

http://www.databasejournal.com/article.php/1459531

 

 

Bibliografia:

 

  • MDX Solutions: With Microsoft SQL Server Analysis Services, George Spofford.
  • Microsoft SQL Server(TM) 2005 Analysis Services Step by Step, Reed Jacobson e Stacia Misner, 26/04/2006.
  • DataBase Journal - www.databasejournal.com.br
  • http://www.ccuec.unicamp.br/revista/infotec/informacao/inf54.htm
  • http://209.85.165.104/search?q=cache:pmRZ9BVJLbYJ:www.inf.ufrgs.br/~clesio/cmp151/cmp15120021/artigo_cynthia.pdf+%22membro+%C3%A9+um%22+BI&hl=pt-BR&ct=clnk&cd=4&gl=br
  • http://216.239.59.104/search?q=cache:s6jLy88whcsJ:ead.feevale.br/tc/files/450.pdf+%22membro+%C3%A9+um%22+BI&hl=pt-BR&ct=clnk&cd=13&gl=br
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?