MDX - SQL para OLAP

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.

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:

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:

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:

Ao se conectar selecione o cubo FoodMart 2000. Na imagem abaixo exibe uma tela de exemplo.

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. 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]
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados