Analisar e Gerir Dados com MDX

O MDX (Multidimensional Expressions) é uma poderosa linguagem de consulta e manipulação de dados.

Com o MDX, pode:

  • Consultar e gerar relatórios relativamente aos dados e metadados nos cubos do Essbase

  • Inserir dados num cubo do Essbase

  • Exportar dados de um cubo do Essbase

Uma consulta de MDX é uma instrução de MDX individual, com exatamente um conjunto de resultados, que se aplica a um cubo individual.

Um relatório de MDX é uma consulta de MDX individual, gravado no contexto do cubo. Pode aceder aos relatórios de MDX a partir do Smart View e da interface da Web do Essbase.

Um script de MDX é um ficheiro, com uma extensão .mdx, que pode carregar e, em seguida, executar a partir de Tarefas ou no Smart View. Só deve utilizar instruções Insert e Export de MDX nos scripts de MDX. Para analisar os dados da grelha, utilize relatórios de MDX em vez de scripts de MDX.

Tópicos:

Analisar Dados com Relatórios de MDX

Pode armazenar e renderizar consultas na interface da Web do Essbase utilizando relatórios de MDX. A permissão mínima necessária para criar um relatório é Gestor da Base de Dados.

Definir Disposições através do separador Análise Ad Hoc nem sempre é a forma mais eficiente de criar um relatório sofisticado. Se souber exatamente o que pretende consultar, pode utilizar o MDX para criar uma consulta para preencher a grelha.

Para criar um relatório de MDX:
  1. Entre em sessão na interface da Web do Essbase como Gestor da Base de Dados ou um perfil de grupo superior.
  2. Navegue até Analisar Dados.
    • Na Interface do Redwood, abra a aplicação, abra a base de dados (cubo) e clique em Analisar Dados.
    • Na Interface Web Clássica, expanda a aplicação, selecione um cubo, clique no menu Ações à direita do nome do cubo e selecione Analisar Dados.
  3. Na visualização Analisar, selecione o separador Relatórios e clique em Criar.
  4. Introduza um nome para o relatório e, opcionalmente, uma descrição.
  5. No campo Consulta, introduza uma consulta de MDX relevante para o cubo atual. Por exemplo:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

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

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

    São suportadas variáveis de substituição nos relatórios de MDX, mas não variáveis de substituição em runtime. Para utilizar variáveis de substituição em runtime, grave a consulta de MDX como um script e execute-o a partir do Smart View utilizando Calcular no friso do Essbase.

  6. Clique em Validar para verificar a sintaxe de MDX e, em seguida, clique em Gravar.
  7. A partir da secção Relatórios à esquerda, selecione o relatório gravado para renderizar uma grelha.

Para obter mais informações sobre MDX, consulte MDX e Escrever Consultas de MDX.

Acesso a Relatórios de MDX

O modo como trabalha com os relatórios depende do seu acesso ao cubo.

Os utilizadores com, no mínimo, o perfil de grupo ao nível da aplicação de Acesso à Base de Dados podem renderizar os relatórios de MDX gravados criados por outros utilizadores. Os dados que um utilizador vê apresentados no relatório dependem do acesso do filtro desse utilizador.

Além da renderização de relatórios gravados, os utilizadores com Acesso à Base de Dados podem exportar os conjuntos de resultados em vários formatos: HTML, CSV, Excel e JSON.

Os utilizadores com Acesso à Base de Dados também podem visualizar a consulta de MDX que define o relatório, clicando no menu Ações junto ao nome do relatório e selecionando Visualizar.

Se tiver pelo menos o perfil de grupo Gestor da Base de Dados, pode utilizar os relatórios tal como fazem os utilizadores com Acesso à Base de Dados. Além disso, pode editar e apagar os relatórios utilizando o menu Ações.

Se for um Administrador do Serviço, pode também utilizar o botão Executar Como para adotar as credenciais de outros utilizadores e verificar o respetivo acesso aos dados. Isto pode ser útil para testar os filtros atribuídos aos vários utilizadores.

Exemplos de Relatórios de MDX

Os exemplos de MDX nesta secção demonstram os tipos especiais de análises que pode efetuar, utilizando relatórios de MDX, que não são facilmente executadas na visualização Análise Ad Hoc.

Os exemplos seguintes foram concebidos para funcionar no cubo Sample Basic.

Relatório de Metadados

O exemplo seguinte devolve apenas metadados (nomes de membros, mas não dados):

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

devolve a grelha:

A saída de dados do relatório mostra os membros 100, 200, 300, 400 e Diet de Product

Relatório de Atributos

O exemplo seguinte utiliza, nas colunas, membros de uma dimensão de atributo:

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

devolve a grelha:

A saída de dados do relatório mostra, nas linhas, os membros 100, 200, 300, 400 e Diet de Product. Nas colunas, são mostrados os membros de atributos: Ounces_32, Ounces_20, Ounces_16 e Ounces_12

Relatório Filtrado

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

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

devolve a grelha:

A saída de dados do relatório mostra, nas linhas, os membros Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri e Iowa de Market. Nas colunas, é mostrado o lucro (Profit). Os valores de dados são todos negativos.

Relatório de UDA

O exemplo seguinte mostra os dados de Product para os membros da dimensão Market que têm o atributo definido pelo utilizador (UDA) "Major Market." Um slicer (cláusula WHERE) limita a consulta para incluir apenas os dados de Sales.

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

devolve a grelha:

A saída de dados do relatório mostra, nas linhas, os membros 100, 200, 300, 400 e Diet de Product. Nas colunas, são mostrados os mercados principais East e Central.

Inserir e Exportar Dados com MDX

Além de ser útil para a análise baseada na grelha, o MDX também permite copiar e atualizar subconjuntos de dados multidimensionais.

A cláusula Insert de MDX permite-lhe atualizar o cubo com dados, utilizando um membro calculado (não físico) definido utilizando MDX.

A cláusula Export de MDX permite-lhe gravar e exportar os resultados da consulta como subconjuntos de dados que pode visualizar ou importar mais tarde.

As instruções Insert e Export de MDX podem ser executadas como scripts de MDX gravados.

Para obter mais informações sobre Insert e Export de MDX, consulte Especificação de Insert de MDX e Especificação de Export de MDX.

Executar Scripts de MDX

Utilize scripts de MDX quando precisar de executar operações para Inserir ou Exportar dados.

Para a análise dos dados da grelha, utilize relatórios de MDX. Consulte Analisar Dados com Relatórios de MDX.

Para utilizar scripts de MDX, selecione um fluxo de trabalho:

Escrever, Carregar e Executar um Script de MDX

Utilize este fluxo de trabalho para escrever scripts de MDX num editor de texto e carregá-los para o Essbase.

  1. Escreva o script de MDX num editor de texto e grave-o com uma extensão .mdx.

  2. Carregue o script de MDX para o diretório da aplicação ou cubo em Ficheiros na interface da Web do Essbase.

  3. Execute o script de MDX a partir de Tarefas ou a partir do Smart View, utilizando Calcular no friso do Essbase.

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

Utilize este fluxo de trabalho para escrever scripts de MDX num editor de scripts no cubo e execute-os a partir de Tarefas.

  1. Na página Aplicações, abra a aplicação e abra a base de dados (cubo).

  2. Clique em Scripts e clique em Scripts de MDX.

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

  4. Escreva o script de MDX. Uma árvore de membros e uma lista de funções poderão ajudá-lo.

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

  6. Execute o script de MDX a partir de Tarefas (consulte Executar MDX) ou, se estiver a utilizar o Smart View, utilize Calcular no friso do Essbase.

  1. Na página Aplicações, expanda uma aplicação e um cubo.

  2. A partir do 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 scripts.

  5. Escreva o script de MDX. Uma árvore de membros e uma lista de funções poderão ajudá-lo.

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

  7. Execute o script de MDX a partir de Tarefas (consulte Executar MDX) ou, se estiver a utilizar o Smart View, utilize Calcular no friso do Essbase.

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

Utilize este fluxo de trabalho para criar scripts de MDX utilizando um livro da aplicação e execute-os a partir de Tarefas.

  1. Neste livro da aplicação, crie uma folha de cálculo MDX. Consulte Trabalhar com Folhas de Cálculo MDX no Cube Designer.
  2. Acrescente um nome de ficheiro no campo Nome do Ficheiro.
  3. Indique, no campo Executar MDX, se deve ser executado o MDX quando o cubo for criado. As entradas válidas são Sim e Não.
  4. Acrescente o script MDX abaixo da linha Script.
  5. Grave o livro da aplicação.
  6. Crie o cubo. Consulte Criar uma Aplicação e um Cubo no Cube Designer.
  7. Execute o script de MDX a partir de Tarefas ou, se estiver a utilizar o Smart View, utilize Calcular no friso do Essbase.

Diretrizes para Scripts de MDX

Utilize as seguintes diretrizes ao trabalhar com scripts de MDX.

  • Utilize scripts de MDX para efetuar operações para Inserir ou Exportar dados.

  • Para a análise da grelha, utilize relatórios de MDX em vez de scripts de MDX.

  • Opcionalmente, os scripts de MDX podem incluir variáveis de substituição em runtime.

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

    • Para definir uma variável de substituição em runtime para que calcule apenas o setor visível dos dados no Smart View, defina o valor da variável de substituição em runtime como POV e defina o tipo de dados como membro.

    • Quando são executados a partir da interface da Web do Essbase, os scripts de MDX podem utilizar variáveis de substituição, mas não variáveis de substituição em runtime. Para utilizar variáveis de substituição em runtime nos scripts de MDX, deve executar os scripts a partir do Smart View, utilizando Calcular no friso do Essbase.

Utilizar Variáveis de Substituição

Exemplos de Scripts de MDX

Seguem-se exemplos de scripts de MDX que pode executar no cubo Sample Basic, a partir de Tarefas ou no Smart View.

Inserção de MDX

Pode gravar este script .mdx e executá-lo a partir de Tarefas 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 assume que acrescentou anteriormente uma medida Revised_Payroll a Sample Basic.

Exportação de MDX

Pode gravar este script .mdx e executá-lo a partir de Tarefas 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])

Depois de executar o script, o ficheiro de exportação seguinte, sample01.txt, é gravado no diretório do cubo do catálogo de ficheiros:

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 Utilizando Variáveis de Substituição em Runtime

Pode gravar este script .mdx e executá-lo a partir 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])

Depois de executar o script, o ficheiro de exportação seguinte, sample002.txt, é gravado no diretório do cubo do catálogo de ficheiros:

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