Reduzir o tamanho do modelo Power BI: como o VertiPaq funciona
O Power BI usa o motor VertiPaq (também chamado xVelocity), um motor de colunas em memória. Entender como ele comprime dados é a chave para construir modelos pequenos e rápidos.
Compressão por coluna
O VertiPaq usa dois algoritmos principais:
- Run-Length Encoding (RLE) — eficaz para colunas com valores repetidos (ex.: Status com "Activo"/"Inactivo").
- Hash Encoding — cria um dicionário de valores únicos; cada linha armazena apenas o índice do dicionário.
Uma coluna com 5 valores únicos em 10 milhões de linhas comprime muito melhor do que uma coluna com 1 milhão de valores únicos.
Identificar problemas com DAX Studio
O DAX Studio é gratuito e indispensável. Ligue ao modelo e use Advanced → View Metrics:
-- Ver colunas por tamanho
SELECT TOP 20
[TableName], [ColumnName],
[TotalSize], [DataSize], [DictionarySize]
FROM $SYSTEM.DISCOVER_STORAGE_TABLE_COLUMNS
ORDER BY [TotalSize] DESC
Acções de redução
- Remova colunas não usadas em relatórios nem em medidas DAX.
- Reduza a precisão de decimais (DECIMAL(18,2) vs DECIMAL(18,6)).
- Use tipos de dados correctos: INT em vez de STRING para chaves surrogate.
- Desactive a auto-hierarquia de datas em File → Options → Data Load.
- Use incremental refresh para tabelas de factos grandes em vez de importar tudo.
Benchmark
Um modelo bem optimizado com 50 milhões de linhas pode ocupar menos de 500 MB em memória. O mesmo modelo não optimizado pode ocupar 5 GB. A diferença está maioritariamente em colunas desnecessárias e tipos de dados incorrectos.
Conclusão
Conhecer o VertiPaq não é académico — é prático. Modelos mais pequenos fazem refresh mais rápido, custam menos em Premium/Fabric, e os utilizadores ficam mais satisfeitos com relatórios que abrem em segundos.