Saltar para o conteúdo

Blog · 12 de setembro de 2026

O seu dashboard é lento, e o problema não é o dashboard

Quando um relatório demora quatro minutos a abrir, o instinto é culpar a ferramenta de BI. Quase sempre o custo foi pago a montante, muito antes de alguém carregar em atualizar.

3 min de leitura

Alguém pergunta porque é que o dashboard de vendas demora quatro minutos a carregar. A ferramenta de BI é o que se vê, por isso é a ferramenta de BI que leva a culpa. Discute-se uma licença mais rápida. Às vezes, até se compra.

Raramente ajuda, porque os quatro minutos não foram gastos a desenhar gráficos. Foram gastos a fazer trabalho que devia ter acontecido horas antes, e que é repetido a cada atualização.

O que um dashboard lento costuma estar a fazer

Abra a consulta por trás de um relatório lento e é provável que encontre os mesmos padrões. Junta cinco tabelas de origem no momento da leitura. Converte colunas de texto em datas porque ninguém corrigiu os tipos a montante. Filtra por uma expressão calculada, por isso nenhum índice ajuda. Elimina linhas duplicadas, o que significa que a origem tem duplicados que nunca foram resolvidos. E faz tudo isto outra vez para cada utilizador, todas as manhãs, à mesma hora.

Nada disto é um problema de visualização. É um problema de preparação de dados que foi empurrado para jusante até se tornar visível.

Mude o trabalho de sítio, não o repita

A abordagem por camadas a que se chama Bronze, Silver e Gold não tem glamour, e é aqui que se justifica. Bronze é o que chegou, guardado tal como chegou. Silver são esses dados limpos, tipados e sem duplicados, uma única vez. Gold é a forma de que a pergunta realmente precisa: uma tabela de factos com as suas dimensões, já agregada ao nível de detalhe que as pessoas procuram.

O que importa não são os nomes. O que importa é que cada operação cara acontece uma vez, de forma agendada, em vez de uma vez por pessoa e por atualização. Um relatório que lê uma tabela Gold quase não trabalha: filtra, agrega, desenha.

Se um cálculo é igual para todos os utilizadores, não deve correr uma vez por utilizador.

A questão incremental

A segunda coisa que torna os relatórios lentos é reprocessar o histórico. Um pipeline que reconstrói três anos de encomendas todas as noites para acrescentar as de ontem vai ficar mais lento todas as noites, para sempre, pela forma como foi construído.

O carregamento incremental resolve isto, e é sobretudo uma questão de conseguir responder a duas perguntas: o que é novo desde a última vez, e o que significa correr isto duas vezes. A primeira precisa de uma marca de água: uma coluna updated-at fiável, um feed de alterações, uma sequência. A segunda precisa que o carregamento seja idempotente, um tema suficientemente grande para ter o seu próprio artigo.

O que verificar de facto

  • Quanto tempo demora a consulta mais lenta por trás do relatório, sozinha, fora da ferramenta de BI?
  • Lê uma tabela preparada, ou junta origens em bruto no momento da leitura?
  • O processo noturno reprocessa tudo, ou só o que mudou?
  • Os tipos são corrigidos uma vez, a montante, ou convertidos em cada consulta que toca na coluna?
  • Quantas pessoas disparam a mesma atualização cara nos mesmos dez minutos?

Se as respostas apontam para montante, e costumam apontar, nenhuma definição do dashboard o vai salvar. A boa notícia é que a correção dura. Trabalho que passa para um pipeline fica lá.

  • Engenharia de dados
  • BI
  • Arquitetura

← Todos os artigos

Quer isto para o seu negócio?

Diga-nos o que demora demasiado tempo ou o que quer melhorar.