Pular para o conteúdo

Construindo páginas e tiles

Uma App é uma pilha de páginas, e cada página é uma grade de tiles — o mesmo modelo de tile que os dashboards usam. Se você já construiu um dashboard do Saiku, isso vai parecer idêntico; a única camada nova são as páginas da App e a navegação em volta.

Páginas

Toda App começa com uma página. No modo de edição:

  • Adicione uma página pelo menu de navegação (trilho ou topo) — o + ao lado da lista de páginas.
  • Renomeie uma página no lugar; o nome é o que aparece na navegação.
  • Troque de página clicando nelas na navegação. Cada página lembra o próprio estado de filtros conforme você anda entre elas.

Ordene suas páginas para acompanhar a história que você quer contar — uma página de visão geral primeiro, páginas de detalhe depois.

Adicionando tiles

Numa página em modo de edição, clique em + Adicionar tile para abrir o menu de tiles. Os tipos nativos são:

TileO que mostra
GráficoDezesseis tipos de gráfico — barra / linha / área / pizza / rosca / cascata / treemap / sunburst / heatmap / radar / dispersão / bolha / mapa. Veja O tile de Gráfico
TabelaRegistros de células de medida com cabeçalhos de linha
KPIUma medida única como número grande, com comparação e sparkline opcionais
Texto / notaUma anotação em Markdown — sem dados
ImagemUm logo, diagrama ou captura a partir de uma URL ou upload

Escolha um tipo e o tile cai na grade. Posicionamento e tamanho funcionam como num dashboard — arraste para mover, arraste a alça para redimensionar.

Filtros não estão nesse menu — eles são adicionados no painel Filtros da página, acima da grade.

Ligando um tile aos dados

Adicionar um tile escolhe o tipo dele; o editor do tile ⚙ é onde você dá dados a ele. Abra pelo botão de edição do tile. Dependendo do tipo de tile você configura:

  • O cubo e a consulta — para tiles de gráfico, tabela e KPI, escolha a conexão / cubo e monte a consulta (medidas, dimensões em linhas ou colunas, slicers). Veja De onde vem a consulta de um tile abaixo.
  • O tipo de gráfico, e atrás do botão Opções do gráfico um segundo editor com eixos duplos, tipos de série combo, linhas de tendência, ordenação / Top N, formatação numérica, linhas e faixas de referência. Um tile de gráfico também pode detectar anomalias, projetar uma previsão e emitir um filtro cruzado quando você arrasta nele. Tudo isso tem página própria: O tile de Gráfico.
  • A medida e a comparação — para um KPI, qual medida é o número grande e (opcionalmente) contra o que ela é comparada. Use o padrão de formato $cN para moeda compacta ($48.2K). Veja Comparações de KPI abaixo.
  • O conteúdo — o corpo Markdown de um tile de texto, ou a URL / upload de um tile de imagem (esses dois não precisam de consulta).
  • Formatação condicional — tiles de tabela suportam regras por coluna: cor de fundo, barras de dados, cor da fonte ou um ícone (↑ ↓ →), atrelados a limiares relativos (percentil) ou absolutos. Uma tabela também pode acrescentar uma coluna de sparkline ao final, desenhando um minigráfico por linha a partir dos valores de medida daquela linha — faz sentido quando essas colunas formam uma série (meses, digamos), menos entre medidas sem relação.
  • Formato numérico (por coluna) — tiles de tabela aceitam um padrão de exibição por coluna, casado pela caption do cabeçalho, usando o mesmo vocabulário dos tiles de KPI e lista ranqueada: $cN moeda compacta, $N moeda simples, N% percentual, N puro para casas decimais. Vale a pena em qualquer medida inteira cuja string de formato do cubo carregue uma decimal — senão uma contagem de unidades renderiza como 10759.0. Colunas que você deixar de fora mantêm a formatação do próprio cubo.
  • Auto-refresh — qualquer tile ligado a consulta pode se re-executar a cada 1, 5, 15, 30 ou 60 minutos, respeitando filtros ativos e pausando enquanto a aba do navegador está escondida.

Para tiles customizados de ECharts option o editor acrescenta opções de exibição: um alternador ao vivo Trend / Breakdown (trocar a série entre linha e barras sobre os mesmos dados), enfatizar o último ponto (um marcador de destaque de “período atual”) e um formato do eixo de valores. Veja Tiles customizados.

Tiles de texto e imagem são os dois que não carregam consulta; todo o resto se liga a um cubo.

De onde vem a consulta de um tile

Há dois jeitos de dar a consulta a um tile, e eles ficam em lugares diferentes do editor ⚙.

Monte aqui. Clique em Editar consulta visualmente e o construtor de consultas completo do Saiku abre dentro do editor do tile: a árvore do cubo à esquerda, as zonas de soltar Medidas / Colunas / Linhas / Filtro, e uma grade de resultado ao vivo embaixo. Ele roda conforme você monta, então você vê os números reais antes de firmar o tile. Aplicar firma a consulta; salvar o tile a persiste. Esse é o caminho usual — escolha um cubo primeiro, ou o botão fica desabilitado.

Ou aponte para algo existente, em Origem da consulta:

  • Consulta salva — escolha um arquivo .saiku existente e o tile renderiza ao vivo a partir dele. O servidor carrega a consulta salva, mescla quaisquer filtros de dashboard aplicáveis e a re-executa a cada refresh — então uma consulta salva pode sustentar tiles em várias Apps e todas acompanham quando você a muda.
  • JSON inline — veja abaixo.

JSON inline aceita um corpo AiQueryRequest diretamente. Recorra a ele quando quiser um formato de consulta que o construtor não oferece — uma hierarquia específica quando duas compartilham nome de nível, digamos — ou ao copiar uma consulta entre tiles.

Uma hierarquia não pode estar num eixo e nos filtros

Ponha Time / Time / Month em Linhas e depois tente filtrar por Time / Time / Year, e a consulta é rejeitada:

Hierarchy ‘Time’ is already on the rows/columns axis. Mondrian rejects the same hierarchy on two independent axes. Either move the filter members onto the axis selection’s members[], or filter on a different hierarchy/dimension.

Essa é uma regra do motor OLAP por baixo, não uma limitação do Saiku. Para limitar um eixo a parte de uma hierarquia, nomeie os membros no próprio eixo em vez de filtrar separado — em JSON inline isso é o array members[] na linha:

"rows": [{
"dimension": "Time", "hierarchy": "Time", "level": "Month",
"members": ["[Time].[Time].[1998].[Q1].[January]", ""]
}]

A mesma técnica é a saída de emergência quando os membros de um nível voltam numa ordem que você não quer: listá-los explicitamente fixa a sequência, já que o Ordenar categorias do tile de gráfico ordena por valor de medida, não por categoria. A App de referência FoodMart Ops usa exatamente isso para fixar seu gráfico de tendência em oito semanas nomeadas.

Comparações de KPI

O destaque de delta de um KPI — aquele “+6.7% vs last month” embaixo do número — é derivado do próprio nível de tempo do tile, então sempre descreve a comparação que o tile de fato fez. Consulte no grão de mês e ele diz “vs last month”; no grão de semana, “vs last week”.

Defina o nível de tempo primeiro

Esse nível de tempo é algo que você escolhe, não algo que o tile infere — e até você defini-lo, uma comparação não tem contra o que comparar.

Perto do fim do editor de KPI, em Nível de tempo (para comparação + sparkline), escolha Dimensão, Hierarquia e Nível (ex.: Time / Time / Month). Aí:

  • a comparação ganha um período anterior contra o qual medir, e
  • a caixa Sparkline fica disponível — ela plota a medida ao longo daquele nível.

Você pode sobrescrever o texto com Rótulo do delta quando um cubo tem vocabulário próprio (“vs last trading day”), mas o padrão já não consegue discordar dos dados.

Períodos finais incompletos

O balde mais novo de uma série temporal muitas vezes ainda está enchendo — a semana ou o mês corrente — ou é uma fronteira de dados onde o último período segura uns poucos dias. Medido contra um período anterior inteiro, isso produz um número que descreve o calendário em vez do negócio: um −84% que quer dizer que nada mudou além da data.

Defina Períodos finais incompletos para dizer ao tile quantos dos períodos mais novos ainda são parciais. Esses períodos:

  • mantêm seus valores reais — nada é escondido, e a sparkline continua plotando cada ponto
  • são rotulados “Week 52 · partial” embaixo do número
  • não mostram percentual contra eles, porque não há um honesto para mostrar

Salvando

Salve a App pelo editor. Ela é persistida como documento .saikuapp no repositório, na pasta que você escolheu ao criá-la. Reabra quando quiser pela lista de Apps, ou embuta em outro site — veja Embutindo uma App.

Relacionado