Autor Rodrigo Ramos Dornel
Para trabalharmos com Power BI e otimizar o uso dos conjuntos de dados gerados por ele é muito importante que os modelos de dados sejam legíveis por usuários de negócio. Hoje, os projetos trabalham com diversas fontes de dados e isso requer organização, padronização e acima de tudo, que garantam a segurança dos dados.
Mas o que são modelos de dados?
Basicamente é a estrutura de como seu dado será armazenado e apresentado. Geralmente em um projeto de BI podemos ter diversos modelos e formatos de dados. Alguns modelos de dados são amplamente utilizados sem sequer sabermos se são os ideais para cada tipo de demanda e volume. Dentre eles, podemos citar os Flat Table ou tabelas “desnormalizadas”, tabelas normalizadas com vários níveis, modelos baseados em queries ou views e baseados em modelos OLTP (transacionais), como Oracle e SQL Server, e OLAP (analíticos), como SAP BW.
O modelo mais comum utilizado em projetos com Power BI, principalmente em projetos iniciais, são as planilhas, que geralmente possuem os dados extraídos de outros sistemas e são armazenados de forma tabular. O grande detalhe nesse modelo é que ele geralmente possui muita redundância de dados e, muitas vezes, torna análises ou cálculos simples mais complexos de se executar, pois os dados estão todos na mesma tabela, conforme podemos ver na figura abaixo.
O Power BI trabalha muito bem baseado no modelo de dados estrela ou Star Schema, no qual, em um modelo simples temos uma tabela de fatos e algumas dimensões. Esse modelo possui algumas vantagens interessantes e que facilitam o controle e a exibição dos dados. A primeira grande característica é que temos todas as descrições ou atributos de descrição da informação separados por assunto, como por exemplo, Dimensão Cientes, Dimensão Produtos. Também gera a possibilidade de termos uma dimensão temporal (Dimensão Data), que pode armazenar todas as necessidades de datas, como feriados, dias da semana, anos customizados, calendário fiscal, entre outros, em diversos idiomas.
Dessa forma teremos um modelo mais organizado e mais fácil de ser consumido, como mostra a figura abaixo. Ao invés de tudo dentro da mesma estrutura temos tudo organizado por assunto, e ainda podemos ocultar os atributos desnecessários.
Mas como é feito esse processo dentro do Power BI?
O primeiro passo é importar seus dados da mesma maneira que sempre fez. Após isso vamos usar o Power Query para identificar as colunas que vão compor as dimensões.
O segundo passo é criar referências da tabela importada. Aqui vale uma dica, não use o duplicar, use o referenciar, isso gera uma espécie de view ou link, sem consumir mais espaço do seu modelo. Você irá repetir esse processo até criar as referências para todas as dimensões que deseja.
Em seguida, como terceiro passo, você irá remover as colunas que não deseja. No exemplo abaixo, deixamos apenas a coluna Segment e adicionamos uma coluna de índice através da aba “Adicionar Coluna de Índice do Power Query”.
Como quarta etapa, você criará uma outra referência para ser a sua tabela de Fatos, usando a opção “Mesclar Consultas do Power Query” para buscar todas as colunas de índices que você gerou no processo anterior. Com isso, você fará um JOIN entre suas Dimensões e sua Fato para buscar todas as colunas de índices geradas.
A cada processo de mesclagem você irá expandir a coluna clicando nas setas a direita no nome da coluna e marcando apenas o campo chave para ser expandido.
Ao final deste processo, você terá uma tabela de Fatos com todas as “Dimensions Key” para, posteriormente, na modelagem do Power BI, efetuar as relações.
Por fim, você removerá todas as colunas desnecessárias como, por exemplo, os campos de nomes e descrições que estão nas dimensões. Repare na imagem abaixo que não temos mais a descrição de Segment, porém essa tabela ainda está relacionada com a fato, só que agora pela chave SegmentKey. Lembre-se também de ocultar da visão do seu usuário final a tabela base do processo, aquela de onde você partiu para a criação de todos esses passos. Você também pode desabilitar da tabela base a carga e a atualização dos dados, deixando que as referências realizem o processo de carga dos dados.
Finalizado esse processo, você pode fechar e aplicar suas alterações no Power BI.
Outra dimensão importante que devemos considerar em nossos projetos é a dimensão de data, que pode ser gerada através de scripts, como o do Reza Rad que você pode obter neste link: https://radacad.com/all-in-one-script-to-create-date-dimension-in-power-bi-using-power-query . Para nosso exemplo, realizamos a criação desta dimensão de datas.
De volta à tela inicial do Power BI Desktop, finalizaremos a construção deste modelo através dos relacionamentos entre a tabela fato e as dimensões.
Neste exemplo, relacionamos a coluna SegmentKey da tabela DimSegment com a coluna de mesmo nome na tabela FactFinancial e relacionamos a coluna Date da tabela FactFinancial com a coluna Dates da dimensão DimData, conforme imagem abaixo.
Todo esse processo gera modelos que podem ser reaproveitados em outros reports através do uso de conjuntos de dados. A utilização de conjuntos de dados, controles de segurança e até do endosso permitem uma maior eficiência e credibilidade aos dados.
Nesse link você encontrar todas as informações técnicas sobre a importância do esquema estrela para o Power BI conforme mostrado na imagem abaixo. https://learn.microsoft.com/pt-br/power-bi/guidance/star-schema.
Outra grande referência é o autor Bill Inmon Ralph Kimball. Kimball escreveu um livro muito famoso sobre modelagem chamado “The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling” que cobre todos os detalhes da modelagem de dados com exemplos, casos reais e muitos detalhes.
Espero que esse artigo lhe ajude a criar modelos de dados mais legíveis e eficientes.
Até o próximo post! 😊