Analisar e Gerenciar Dados com MDX

MDX (Multidimensional Expressions) é uma linguagem avançada para manipulação e consulta de dados.

Com MDX, você pode:

  • Consultar e reportar dados e metadados nos cubos do Essbase

  • Inserir dados em um cubo Essbase

  • Exportar dados de um cubo Essbase

Uma consulta MDX é uma instrução MDX única que tem exatamente um conjunto de resultados que é aplicado a um único cubo.

Um relatório MDX é uma única consulta MDX, salva no contexto do cubo. Você pode acessar relatórios MDX no Smart View e na interface web do Essbase.

Script MDX é um arquivo, com uma extensão .mdx, que você pode transferir por upload e depois executar em Jobs ou no Smart View. Somente as instruções MDX Insert e Export devem ser usadas em scripts MDX. Para analisar dados em grade, use relatórios MDX em vez de scripts MDX.

Tópicos:

Analisar Dados com Relatórios MDX

Você pode armazenar e renderizar consultas na interface web do Essbase usando relatórios MDX. A permissão mínima exigida para criar um relatório é a de Gerente de Banco de Dados.

A definição de Layouts usando a guia Análise Ad Hoc nem sempre pode ser a maneira mais eficiente de criar um relatório sofisticado. Se você souber exatamente o que deseja consultar, poderá usar o MDX para criar uma consulta para preencher a grade.

Para criar um relatório MDX:
  1. Faça log-in na interface web do Essbase como Gerente de Banco de Dados ou atribuição superior.
  2. Navegue até Analisar Dados:
    • Na Interface Redwood, abra o aplicativo, abra o banco de dados (cubo) e clique em Analisar Dados.
    • Na Interface Web Clássica, expanda o aplicativo, selecione um cubo, clique no menu Ações à direita do nome do cubo e selecione Analisar Dados.
  3. Na view Analisar, selecione a guia Relatórios e clique em Criar.
  4. Digite um nome para o relatório e, se desejar, uma descrição.
  5. No campo Consulta, digite uma consulta MDX relativa ao cubo atual. Por exemplo:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    A consulta deve conter as especificações dos eixos de linha e coluna. Em outras palavras, a sintaxe da consulta deve incluir as especificações de ON COLUMNS e ON ROWS, mesmo que apenas um conjunto vazio {} seja especificado para um eixo.

    Como o contexto de Analisar Dados é o cubo ativo, recomenda-se que você omita a especificação de cubo opcional (a cláusula FROM) dos relatórios MDX. A omissão da cláusula FROM permite maior flexibilidade - se o cubo for copiado ou renomeado, o relatório funcionará no novo cubo.

    As variáveis de substituição são suportadas nos relatórios MDX, mas não as variáveis de substituição de runtime. Para usar variáveis de substituição de runtime, salve a consulta MDX como script e execute-a no Smart View usando Calcular na faixa de opções do Essbase.

  6. Clique em Validar para verificar a sintaxe MDX e, em seguida, clique em Salvar.
  7. No painel Relatórios à esquerda, selecione o relatório salvo para renderizar uma grade.

Para saber mais sobre MDX, consulte MDX e Gravando Consultas MDX.

Acesso a Relatórios MDX

A maneira como você trabalha com relatórios depende de seu acesso a cubos.

Os usuários com, no mínimo, a atribuição de nível de aplicativo de Acesso ao Banco de Dados podem renderizar relatórios MDX salvos criados por terceiros: Os dados que um usuário vê exibidos no relatório dependem do acesso de filtro desse usuário.

Além de renderizar relatórios salvos, os usuários com Acesso ao Banco de Dados podem exportar os conjuntos de resultados em vários formatos: HTML, CSV, Excel e JSON.

Os usuários com Acesso ao Banco de Dados também podem exibir a consulta MDX que define o relatório, clicando no menu Ações ao lado do nome do relatório e selecionando Exibir.

Se você tiver pelo menos a atribuição de Gerente de Banco de Dados, poderá usar relatórios da mesma maneira que os usuários de Acesso ao Banco de Dados podem. Além disso, você pode editar e excluir relatórios usando o menu Ações.

Se você for Administrador de Serviços, poderá também usar o botão Executar como para personificar outros usuários e verificar seus acessos a dados. Isso pode ser útil para testar filtros designados a vários usuários.

Exemplos de Relatórios MDX

Os exemplos de MDX desta seção demonstram tipos especiais de análises que você pode executar, usando relatórios MDX, que não são facilmente realizados na view Análise Ad Hoc.

Os exemplos a seguir foram planejados para funcionar no cubo Sample Basic.

Relatório de Metadados

O exemplo a seguir só retorna metadados (nomes de membro, mas nenhum dado):

SELECT 
  {[Product].Levels(1).Members} 
ON ROWS, 
  {} 
ON COLUMNS

retornando a grade:

A saída do relatório mostra Membros de produto 100, 200, 300, 400 e Diet

Relatório de Atributos

O seguinte exemplo usa, em colunas, membros de uma dimensão de atributo:

SELECT 
 [Product].Children 
ON ROWS, 
 [Ounces].Children 
ON COLUMNS 
WHERE {Sales}

retornando a grade:

A saída do relatório mostra, em linhas, Membros de produto 100, 200, 300, 400 e Diet Em colunas, são mostrados os membros de atributo: Ounces_32, Ounces_20, Ounces_16 e Ounces_12

Relatório Filtrado

O exemplo a seguir usa um slicer (cláusula WHERE) para limitar a consulta a Cola. Além disso, a função Filtro limita os mercados de nível 0 na consulta àqueles que têm lucro negativo.

SELECT
  { Profit } 
ON COLUMNS,
  Filter( [Market].levels(0).members, Profit < 0) 
ON ROWS
WHERE {Cola}

retornando a grade:

A saída do relatório mostra, em linhas, membros de Mercados Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri e Iowa. Em colunas, é mostrado Lucro. Todos os valores de dados são negativos.

Relatório de UDA

O exemplo a seguir mostra dados de Produto para membros da dimensão Market que têm um atributo definido pelo usuário (UDA) "Major Market." Um slicer (cláusula WHERE) limita a consulta a incluir apenas dados de Vendas.

SELECT 
  [Product].Children 
ON ROWS, 
  {Intersect(UDA([Market], "Major Market"), [Market].Children)} 
ON COLUMNS 
WHERE {Sales}

retornando a grade:

A saída do relatório mostra, em linhas, Membros de produto 100, 200, 300, 400 e Diet Em colunas, são mostrados os maiores mercados East e Central.

Inserir e Exportar Dados com MDX

Além de ser útil para análise baseada em grade, o MDX também permite que você copie e atualize subconjuntos de dados multidimensionais.

A cláusula de Inserção de MDX permite que você atualize o cubo com os dados, usando um membro (não físico) calculado que você define usando MDX.

A cláusula de Exportação de MDX permite que você salve e exporte os resultados da consulta como subconjuntos de dados que você pode exibir ou importar posteriormente.

As instruções de Inserção e Exportação de MDX podem ser executadas como scripts MDX salvos.

Para saber mais sobre Inserção e Exportação de MDX, consulte Especificação de Inserção de MDX e Especificação de Exportação de MDX.

Executar Scripts de MDX

Use scripts MDX quando precisar executar operações de Inserção ou Exportação de dados.

Para análise de dados em grade, use relatórios MDX. Consulte Analisar Dados com Relatórios MDX.

Para usar scripts de MDX, selecione um workflow:

Escrever, Fazer Upload e Executar um Script MDX

Use este workflow para escrever scripts MDX em um editor de texto e fazer o upload deles no Essbase.

  1. Grave o script de MDX em um editor de texto e salve-o com uma extensão .mdx.

  2. Faça upload do script MDX para o diretório do aplicativo ou do cubo em Arquivos na interface web do Essbase.

  3. Execute o script de MDX em Jobs ou no Smart View, usando Calcular na faixa de opções do Essbase.

Escrever um Script MDX no Editor de Script e Executá-lo

Use este workflow para escrever scripts de MDX em um editor de script no cubo e execute-os em Jobs.

  1. Na página Aplicativos, abra o aplicativo e depois o banco de dados (cubo).

  2. Clique em Scripts e em Scripts MDX.

  3. Clique em Criar, digite um nome para o script e clique em OK.

  4. Grave o script de MDX. Uma árvore de membros e lista de funções pode ajudá-lo.

  5. Valide e salve o script, em seguida, feche o editor de script.

  6. Execute o script MDX de Jobs (consulte Executar MDX) ou, se estiver usando o Smart View, use Calcular na faixa do Essbase.

  1. Na página Aplicativos, expanda um aplicativo e um cubo.

  2. No menu Ações do cubo, clique em Inspecionar.

  3. Clique em Scripts e, em seguida, clique em Scripts de MDX.

  4. Clique em + para abrir um editor de script.

  5. Grave o script de MDX. Uma árvore de membros e lista de funções pode ajudá-lo.

  6. Valide e salve o script, em seguida, feche o editor de script.

  7. Execute o script MDX de Jobs (consulte Executar MDX) ou, se estiver usando o Smart View, use Calcular na faixa do Essbase.

Criar um Script MDX no Cube Designer e Executá-lo

Use este fluxo de trabalho para criar scripts de MDX usando uma pasta de trabalho do aplicativo e execute-os em Jobs.

  1. Em uma pasta de trabalho do aplicativo, crie uma planilha de MDX. Consulte Trabalhar com Planilhas de MDX no Cube Designer.
  2. Adicione um nome de arquivo no campo Nome do Arquivo.
  3. Indique, no campo Executar MDX, se é necessário executar o MDX no momento em que o cubo é criado. As entradas válidas são Sim e Não.
  4. Adicione o script MDX abaixo da linha do Script.
  5. Salve a pasta de trabalho do aplicativo.
  6. Crie o cubo. Consulte Criar um Aplicativo e um Cubo no Cube Designer.
  7. Execute o script de MDX de Jobs, ou se estiver usando o Smart View, use Calcular na faixa do Essbase.

Diretrizes para Scripts de MDX

Use as seguintes diretrizes ao trabalhar com scripts de MDX.

  • Use scripts MDX para executar operações de Inserção ou Exportação de dados.

  • Para análise de grade, use relatórios MDX em vez de scripts MDX.

  • Os scripts de MDX podem, como opção, incluir variáveis de substituição de runtime.

    • Para serem utilizáveis dentro do Smart View, os scripts de MDX com variáveis de substituição de runtime devem usar a sintaxe de XML dentro do comando de cálculo SET RUNTIMESUBVARS, incluindo <RTSV_HINT>.

    • Para definir uma variável de substituição de runtime, de forma que ela calcule somente a fatia de dados no Smart View, defina o valor da variável de substituição de runtime como POV e defina os tipos de dados como membro.

    • Ao executar usando a interface web do Essbase, seus scripts de MDX podem usar variáveis de substituição, mas não variáveis de substituição de runtime. Para usar variáveis de substituição de runtime nos scripts de MDX, é necessário executar os scripts do Smart View, usando Calcular na faixa do Essbase.

Usar Variáveis de Substituição

Exemplos de Scripts de MDX

A seguir estão os exemplos de scripts de MDX que você pode executar no cubo Sample Basic ou nos Jobs ou no Smart View.

Inserção de MDX

Você pode salvar este script de .mdx e executá-lo dos Jobs ou da caixa de diálogo Calcular no Smart View.

INSERT "([Measures].[Payroll])" TO "([Measures].[Revised_Payroll])"
INTO [Sample].[Basic]
FROM (
       SELECT 
            {[Measures].[Payroll]} ON COLUMNS,
                {Crossjoin
                  (Crossjoin(Descendants([Year]), 
                   Crossjoin(Descendants([Scenario]),
                  Descendants([Product]))),
                  Descendants([Market]))} ON ROWS
       FROM [Sample].[Basic]
);

O exemplo acima presume que você tenha adicionado anteriormente uma medida Revised_Payroll a Sample Basic.

Exportação de MDX

Você pode salvar este script de .mdx e executá-lo dos Jobs ou da caixa de diálogo Calcular no Smart View.

EXPORT INTO FILE "sample01" OVERWRITE
SELECT 
 {[Mar],[Apr]} 
ON COLUMNS,
 Crossjoin({[New York]},
  Crossjoin({[Actual],[Budget]},
     {[Opening Inventory],[Ending Inventory]})) 
ON ROWS
FROM [Sample].[Basic]
WHERE ([100-10])

Após executar o script, o seguinte arquivo de exportação, sample01.txt, será salvo no diretório do cubo do catálogo de arquivos:

Market,Scenario,Measures,Mar,Apr
New York,Actual,Opening Inventory,2041,2108
New York,Actual,Ending Inventory,2108,2250
New York,Budget,Opening Inventory,1980,2040
New York,Budget,Ending Inventory,2040,2170

Exportação de MDX Usando Variável de Substituição de Runtime

Você pode salvar este script de .mdx e executá-lo da caixa de diálogo Calcular no Smart View.

SET RUNTIMESUBVARS
{
 States = "Massachusetts"<RTSV_HINT><svLaunch>
                    <description>US States</description>
                    <type>member</type>
                    <allowMissing>false</allowMissing>
                    <dimension>Market</dimension>
                    <choice>multiple</choice>
                    </svLaunch></RTSV_HINT>;
};
EXPORT INTO FILE "sample002" OVERWRITE
SELECT
 {[Mar],[Apr]}
ON COLUMNS,
 Crossjoin({&States}, Crossjoin({[Actual],[Budget]},
 {[Opening Inventory],[Ending Inventory]}))
ON ROWS
FROM [Sample].[Basic]
WHERE ([100-10])

Após executar o script, o seguinte arquivo de exportação, sample002.txt, será salvo no diretório do cubo do catálogo de arquivos:

Market,Scenario,Measures,Mar,Apr
Massachusetts,Actual,Opening Inventory,-54,-348
Massachusetts,Actual,Ending Inventory,-348,-663
Massachusetts,Budget,Opening Inventory,-160,-520
Massachusetts,Budget,Ending Inventory,-520,-910