Existe um recurso do Power BI que ajuda no começo, mas silenciosamente engorda o seu modelo: o Auto Date/Time (data/hora automática). Entender o que ele faz — e por que a Microsoft recomenda substituí-lo por uma dimensão calendário — é um dos ajustes mais simples para reduzir o tamanho do modelo.
O que é o Auto Date/Time
O Auto Date/Time é uma opção de carga de dados do Power BI Desktop. Quando ativada, o Power BI cria uma tabela de calendário oculta para cada coluna de data do modelo (em modo Import). Cada uma dessas tabelas é uma tabela calculada gerada pela função DAX CALENDAR, com as colunas Dia, Mês, Número do Mês, Trimestre, Número do Trimestre e Ano, além de uma hierarquia de data pronta para drill-down.
O custo escondido
O problema não é uma tabela — é que o Power BI cria uma para cada coluna de data. Um modelo com 10 colunas de data ganha 10 tabelas de calendário ocultas. Cada uma cobre todos os anos completos entre a menor e a maior data daquela coluna: se há uma data de 2016 e outra de 2019, a tabela terá 1.461 linhas (quatro anos completos). Em modelos grandes, esse conjunto de tabelas invisíveis consome memória e aumenta o tamanho do arquivo sem que você perceba.
Quando faz sentido manter
Para um modelo pequeno, de uso pessoal ou uma prova de conceito rápida, o Auto Date/Time é conveniente: entrega inteligência temporal (ano, trimestre, mês, dia) sem esforço. O problema aparece em modelos corporativos, com muitas colunas de data e grande volume — exatamente os casos em que a otimização mais importa.
Como desligar (global e por arquivo)
Em Arquivo > Opções e configurações > Opções, na seção Inteligência de tempo, existem duas opções: a Global (vale para novos arquivos) e a de Arquivo Atual. Desmarque a opção para desligar.
Ao desligar no Arquivo Atual, as tabelas ocultas são removidas. Revise antes filtros e visuais que usavam a hierarquia automática de data, para não quebrar relatórios existentes.
A alternativa: uma dimensão calendário própria
A recomendação da Microsoft — e a boa prática de modelagem — é criar uma única tabela calendário, marcada como tabela de data, e relacionar todas as colunas de data a ela. Uma dimensão calendário única traz vários ganhos:
- uma tabela em vez de dezenas de tabelas ocultas;
- controle total sobre colunas (ano fiscal, feriados, semana, etc.);
- inteligência temporal consistente em todo o modelo;
- modelo menor, mais leve e mais rápido.
Desligar o Auto Date/Time e adotar uma dimensão calendário é um passo clássico do esquema estrela e da otimização de modelos. Combinado com o query folding, forma a base de um modelo eficiente e barato de operar.
Perguntas frequentes
É uma opção que cria automaticamente uma tabela de calendário oculta para cada coluna de data do modelo, com hierarquia de ano, trimestre, mês e dia, entregando inteligência temporal sem configuração.
Porque ele cria uma tabela oculta para cada coluna de data, cada uma cobrindo anos completos. Em modelos corporativos com muitas datas, isso consome memória e aumenta o tamanho do modelo sem necessidade. Uma única dimensão calendário é mais leve e controlável.
Em Arquivo > Opções e configurações > Opções, seção Inteligência de tempo. Desmarque na aba Global (para novos arquivos) e na aba Arquivo Atual (para o modelo aberto). Ao desligar no arquivo atual, revise filtros e visuais que usavam a hierarquia automática.
Uma dimensão calendário própria: uma única tabela de datas, marcada como tabela de data, relacionada a todas as colunas de data do modelo. Ela dá controle total (ano fiscal, feriados, semana) com um custo de memória muito menor.