Wiki Power BI
Power BI para quem entrega os dados
Modelo em estrela, Import ou DirectQuery, e medida em vez de coluna calculada. O que a engenharia entrega define se o relatório voa ou se arrasta.
O Power BI lê melhor um modelo em estrela: tabelas fato estreitas e longas, dimensões largas, relações de um para muitos da dimensão para a fato. É o que a camada gold deve entregar (veja Modelagem dimensional).
Import, DirectQuery e o meio-termo
- Import: os dados são copiados para o modelo e comprimidos em memória. Consulta muito rápida; os dados têm a idade da última atualização (*refresh*).
- DirectQuery: cada visual vira uma consulta na fonte (um SQL warehouse do Databricks, por exemplo). Dado sempre atual; a velocidade depende da fonte, e cada clique custa compute lá.
- Composto: dimensões em Import e a fato grande em DirectQuery, ou agregações importadas sobre uma fato em DirectQuery.
Medida, não coluna calculada
Uma coluna calculada é computada no refresh e guardada linha a linha (ocupa memória). Uma medida é calculada na hora, no contexto do filtro do visual. Totais e taxas são medidas.
Receita = SUM ( fato_itens[receita] )
Receita Entregue =
CALCULATE ( [Receita], pedidos[status] = "entregue" )
Ticket Médio = DIVIDE ( [Receita], DISTINCTCOUNT ( fato_itens[pedido_id] ) )CALCULATE muda o contexto de filtro da medida; DIVIDE trata a divisão por zero sem erro.
O que a engenharia pode fazer pelo relatório
- Entregar a gold já no grão e com os nomes que o negócio usa, em vez de o relatório refazer a modelagem no Power Query.
- Uma dimensão de data contínua (sem buracos), marcada como tabela de datas.
- Reduzir cardinalidade: ID de alta cardinalidade que ninguém filtra não precisa ir para o modelo.
- No Databricks, conectar pelo conector nativo a um SQL warehouse, com o Unity Catalog cuidando de quem vê o quê.
Fontes
Conhecimento compartilhado pela Genesis Innovation.