PL-300: optimizar modelos com colunas calculadas e tabelas calculadas
Esta aula foca a competência de Modelar os dados do exame PL-300: criar e gerir colunas calculadas e tabelas calculadas usando DAX. É importante para o exame porque avalia a capacidade de transformar dados no modelo e, na prática, ajuda a equilibrar legibilidade, reutilização e desempenho do relatório.
O que precisas de saber
Colunas calculadas são colunas adicionadas a uma tabela no modelo com uma expressão DAX que se avalia por linha. Tabelas calculadas são tabelas inteiras definidas por uma expressão DAX (p.ex. SUMMARIZE, FILTER, DISTINCT). Ambas são persistidas no modelo (ocupam memória) e são recalculadas ao refazer o processamento do modelo.
Exemplo simples: numa tabela Sales com OrderDate e Quantity, uma coluna calculada Year = YEAR(Sales[OrderDate]) devolve o ano de cada venda. Uma tabela calculada Years = DISTINCT(SELECTCOLUMNS(Sales, "Year", YEAR(Sales[OrderDate]))) cria uma tabela com os anos distintos.
Como funciona
Decisões-chave ao escolher entre colunas calculadas, tabelas calculadas e medidas:
- Coluna calculada: usa-se quando precisas do valor por linha e queres filtrar/agrupar por essa coluna em visuais ou relações. Ex.: categorizar produtos por faixa de preço.
- Tabela calculada: usa-se para criar tabelas de suporte (p.ex. dimensão derivada) ou para materializar resultados intermédios que serão reutilizados. Ex.: criar uma dimensão de datas derivada de várias fontes.
- Medida (não persistida): preferível para cálculos agregados dinâmicos porque é avaliada no contexto visual e não aumenta a cardinalidade do modelo.
Performance e memória: colunas e tabelas calculadas ficam no armazenamento Vertipaq. Cada coluna adicional aumenta a memória; colunas de alta cardinalidade (muitos valores únicos) são mais dispendiosas. Tabelas calculadas duplicam dados se reproduzirem informações já existentes noutras tabelas.
Na prática
Passo a passo para criar uma coluna calculada (Power BI Desktop):
1. Abrir Power BI Desktop e carregar os dados.
2. Ir ao separador Data ou Model.
3. Selecionar a tabela Sales.
4. No menu Modelling, clicar em "New column".
5. Escrever a expressão: Year = YEAR(Sales[OrderDate])
6. Confirmar. A coluna aparece e pode ser usada em visuais ou relações.
Exemplo de tabela calculada para criar uma dimensão de semanas:
Weeks =
ADDCOLUMNS(
CALENDAR(MIN(Sales[OrderDate]), MAX(Sales[OrderDate])),
"Year", YEAR([Date]),
"WeekNumber", WEEKNUM([Date], 2)
)
Boas práticas na implementação:
- Evita colunas calculadas para valores que são puramente agregados — usa medidas.
- Se uma coluna é derivada de outras e apenas serve para visualização (por exemplo, rótulo formatado), considera criar uma medida se não precisa de ser filtrável em segmentadores ou relações.
- Quando precisares de criar dimensões (p.ex. calendário), cria-as como tabelas calculadas bem desenhadas e, se possível, usa funções como CALENDAR ou CALENDARAUTO para performance e compressão.
- Documenta as colunas/tabelas calculadas com nomes claros e, se necessário, uma coluna de descrição para facilitar a manutenção.
Erros comuns
- Criar colunas calculadas quando a lógica deveria ser uma medida: isto aumenta memória e pode prejudicar compressão, além de não responder correctamente ao contexto de filtro nos visuais.
- Ignorar cardinalidade: adicionar colunas de texto com muitos valores únicos (ex.: ID de transacção repetida) torna o modelo pesado. Considera normalizar ou converter para chaves inteiras quando possível.
- Duplicar informação com tabelas calculadas: criar uma tabela calculada que replica outra existente provoca desperdício de memória e possível divergência de dados ao actualizar o modelo.
Como praticar
Pratica usando exercícios com dados reais ou sample data do Power BI (Retail, AdventureWorks). Para preparação oficial do exame PL-300: usa o Practice Assessment OFICIAL e gratuito da Microsoft e consulta a study guide oficial da Microsoft (ambos gratuitos). Estes recursos ajudam a validar que cobres as skills measured sem recorrer a dumps.
Em resumo
- Colunas e tabelas calculadas persistem no modelo e afetam memória; medidas são avaliadas em contexto e não ocupam espaço adicional.
- Usa colunas calculadas quando precisares de valores por linha e para agrupamento/filtragem; usa tabelas calculadas para dimensões ou resultados reutilizáveis.
- Evita alta cardinalidade e duplicação de dados; prefere medidas quando o cálculo é agregação dinâmica.
- Pratica com os recursos oficiais: o Practice Assessment e a study guide gratuitos da Microsoft são essenciais para preparar o PL-300.