Pular para o conteúdo

MDX e exportação

Duas funcionalidades relacionadas para usuários avançados: o editor MDX (para escrever consultas à mão ou ajustar manualmente a saída do workbench) e as opções de exportação (para tirar o resultado para outra ferramenta ou um relatório).

O editor MDX

Nos bastidores, cada arrastar e soltar no workbench compila para uma consulta MDX — a linguagem de consulta para cubos OLAP. A maioria das análises nunca precisa que você olhe para o MDX; o workbench é mais rápido para o caso comum. Mas às vezes você quer:

  • Depuração. Uma consulta do workbench retorna números inesperados e você quer ver exatamente o que foi perguntado.
  • Copiar. Outra ferramenta fala MDX (ou você está salvando uma consulta em um arquivo para controle de versão).
  • Ajuste manual. O workbench te dá um ponto de partida; você refina.
  • Coisas que o workbench não consegue expressar. Algumas funcionalidades MDX avançadas (named sets, sub-cubes, cláusulas WITH complexas) não são expostas como affordances de drop-zone.

Abrir o painel MDX

Clique em Show MDX na barra de ferramentas. Um painel desliza mostrando a consulta atual como MDX.

O painel é somente leitura por padrão; clique em Switch to MDX para tornar a consulta editável. A partir desse ponto você está criando MDX diretamente — as drop zones não dirigem mais a consulta. Para voltar ao modo workbench, Switch back descarta suas edições MDX e reconstrói a partir das drop zones.

Como o MDX se parece

Uma consulta MDX mínima:

SELECT
{ [Measures].[Revenue] } ON COLUMNS,
{ [Time].[Year].MEMBERS } ON ROWS
FROM [Sales]

Isso te dá uma tabela de receita ano a ano — o mesmo que arrastar Revenue para Columns e Time › Year para Rows.

MDX mais interessante:

WITH
MEMBER [Measures].[YoY Growth] AS
([Measures].[Revenue], [Time].CURRENTMEMBER) /
([Measures].[Revenue], [Time].CURRENTMEMBER.PREVMEMBER) - 1,
FORMAT_STRING = '0.0%'
SELECT
{ [Measures].[Revenue], [Measures].[YoY Growth] } ON COLUMNS,
{ [Time].[Year].MEMBERS } ON ROWS
FROM [Sales]

Isso adiciona uma porcentagem de crescimento ano a ano como medida calculada — o workbench poderia produzir um resultado similar com o diálogo de membros calculados, mas escrever em MDX te dá controle exato.

Padrões MDX úteis

Alguns padrões que valem a pena conhecer:

  • TOPCOUNT(set, n, expression) — top-N por uma medida. Por ex. TOPCOUNT([Customer].[Name].MEMBERS, 10, [Measures].[Revenue]) te dá os 10 clientes de maior receita.
  • FILTER(set, predicate) — restringe um set. FILTER([Region].[Name].MEMBERS, [Measures].[Revenue] > 1000000) mantém apenas regiões com receita acima de um milhão.
  • PARALLELPERIOD — mesmo período no ano passado. Mais limpo do que subtrair manualmente 1 do nível de ano.
  • NON EMPTY em um set — eliminar linhas ou colunas com medidas todas nulas, equivalente ao toggle Non-Empty do workbench.

Para referência MDX mais profunda, a documentação MDX da Microsoft é o padrão. Mondrian (o engine por trás do Saiku) implementa a maior parte do MDX padrão com algumas peculiaridades documentadas na documentação Mondrian upstream.

Exportar dados

A barra de ferramentas tem três botões de exportação. Eles produzem coisas diferentes para audiências diferentes.

Exportar para Excel (XLSX)

O que você obtém: um arquivo .xlsx com a tabela de resultados formatada como uma planilha. A estrutura pivot (linhas, colunas, totais) é preservada. Várias medidas se tornam várias colunas. Os filhos de drillthrough se tornam linhas indentadas na mesma planilha.

Melhor para: entregar a alguém que continuará analisando no Excel, onde a forma pivot é útil.

Exportar para CSV

O que você obtém: um CSV simples com uma linha por célula da tabela de resultados. A linha de cabeçalho carrega os nomes das colunas. Totais são excluídos por padrão (um CSV com linhas misturadas de total + detalhe é confuso para parsers downstream).

Melhor para: enviar para outra ferramenta — um script Python, uma ferramenta BI, um data warehouse, qualquer coisa que queira dados tabulares.

Exportar para PDF

O que você obtém: uma renderização PDF da visão atual — a tabela de resultados OU o gráfico, o que estiver sendo mostrado. Saída de múltiplas páginas para tabelas grandes; o gráfico cabe em uma página.

Melhor para: colar em um relatório, enviar por email como instantâneo, arquivar uma descoberta específica junto com seu visual.

Exportação drillthrough

Clique-direito em qualquer célula no resultado e escolha Exportar drillthrough. Isso ignora completamente a agregação do cubo e exporta as linhas brutas da tabela de fatos subjacente àquela célula. Útil quando alguém questiona um número e você quer enviar a eles os registros subjacentes.

Exportações de drillthrough são apenas CSV, intencionalmente — as linhas brutas não têm estrutura pivot a preservar.

Quando usar qual exportação

  • CSV quando os dados vão para outro lugar para processamento posterior.
  • Excel quando um humano vai continuar trabalhando com os dados no Excel.
  • PDF quando a saída é o entregável final — um instantâneo para um relatório, um anexo de email, um compartilhamento de tela.
  • Drillthrough quando você precisa das linhas subjacentes por trás de um número agregado específico.

Uma nota sobre limites de linhas

O Saiku não limita artificialmente o tamanho da exportação, mas a consulta subjacente do warehouse precisa ser concluída. Um drillthrough de um milhão de linhas leva tempo para executar e tempo para baixar. Se você está rotineiramente exportando centenas de milhares de linhas, considere se a agregação do cubo está fazendo o que deveria — todo o ponto do OLAP é resumir, não despejar linhas.

Para onde ir em seguida