Práticas recomendadas para criar um modelo dimensional usando fluxos de dados

Criar um modelo dimensional é uma das tarefas mais comuns que você pode fazer com um fluxo de dados. Este artigo destaca algumas das melhores práticas para criar um modelo dimensional usando um fluxo de dados.

Fluxos de dados de preparo

Um dos principais pontos em qualquer sistema de integração de dados é reduzir o número de leituras no sistema operacional de origem. Na arquitetura tradicional de integração de dados, essa redução é feita criando um novo banco de dados chamado banco de dados de preparo. A finalidade do banco de dados de preparo é carregar dados de uma fonte de dados para um banco de dados de preparo, no estado em que se encontram, em um agendamento regular.

O restante da integração de dados usará o banco de dados de preparo como a origem para uma transformação adicional e o converterá na estrutura do modelo dimensional.

Recomendamos que você siga a mesma abordagem usando fluxos de dados. Crie um conjunto de fluxos de dados que são responsáveis por apenas carregar dados do sistema de origem (e apenas para as tabelas necessárias), no estado em que se encontram. O resultado é armazenado na estrutura de armazenamento do fluxo de dados (Azure Data Lake Storage ou Dataverse). Essa alteração garante que a operação de leitura no sistema de origem seja mínima.

Em seguida, você pode criar outros fluxos de dados que obtém os dados de fluxos de dados de preparo. Os benefícios dessa abordagem incluem o seguinte:

  • Redução do número de operações de leitura no sistema de origem e redução da carga no sistema de origem como resultado.
  • Redução da carga em gateways de dados, se uma fonte de dados local for usada.
  • Ter uma cópia intermediária dos dados para fins de reconciliação, caso os dados do sistema de origem sejam alterados.
  • Tornar os fluxos de dados de transformação independentes da fonte.

Fluxo de dados de reparo.

Imagem enfatizando fluxos de dados de preparo e armazenamento de preparo e mostrando os dados que estão sendo acessados da fonte de dados pelo fluxo de dados de preparo e tabelas sendo armazenadas no Cadavers ou no Azure Data Lake Storage. As tabelas são mostradas sendo transformadas junto com outros fluxos de dados, que são enviados como consultas.

Fluxos de dados de transformação

Quando você separar os fluxos de dados de transformação dos fluxos de dados de preparo, a transformação será independente da origem. Essa separação ajuda se você estiver migrando o sistema de origem para um novo sistema. Tudo o que você precisa fazer nesse caso é alterar os fluxos de dados de preparo. É provável que os fluxos de dados de transformação funcionem sem nenhum problema, pois são provenientes apenas dos fluxos de dados de preparo.

Essa separação também ajuda no caso da conexão do sistema de origem ser lenta. O fluxo de dados de transformação não precisará esperar muito tempo para obter registros provenientes de uma conexão lenta do sistema de origem. O fluxo de dados de preparo já fez essa parte e os dados estarão prontos para a camada de transformação.

Imagem semelhante à anterior, exceto que as transformações estão enfatizadas e os dados estão sendo enviados para o data warehouse.

Arquitetura em camadas

Uma arquitetura em camadas é aquela na qual você executa ações em camadas separadas. Os fluxos de dados de preparo e transformação podem ser duas camadas de uma arquitetura de fluxo de dados de várias camadas. Tentar executar ações em camadas garante a manutenção mínima necessária. Quando você deseja alterar algo, basta alterá-lo na camada na qual ele está localizado. Todas as outras camadas devem continuar funcionando bem.

A imagem a seguir mostra uma arquitetura de várias camadas para fluxos de dados na qual suas tabelas são usadas em modelos semânticos do Power BI.

Imagem com arquitetura de várias camadas, onde os fluxos de dados de preparo e os fluxos de dados de transformação estão em camadas separadas.

Usar uma tabela computada tanto quanto possível

Quando usa o resultado de um fluxo de dados em outro fluxo de dados, você está usando o conceito de tabela computada, o que significa obter dados de uma tabela "já processada e armazenada". A mesma coisa pode acontecer em um fluxo de dados. Ao fazer referência a uma tabela a partir de outra tabela, você pode usar a tabela computada. Isso é útil quando você tem um conjunto de transformações que precisam ser feitas em várias tabelas, que são chamadas de transformações comuns.

Imagem que mostra uma tabela computada obtida de uma fonte de dados usada para processar transformações comuns.

Na imagem anterior, a tabela computada obtém os dados diretamente da origem. No entanto, na arquitetura de fluxos de dados de preparo e transformação, é provável que as tabelas computadas sejam originadas dos fluxos de dados de preparo.

Tabela computada obtida de fluxos de dados usados para processar transformações comuns.

Criar um esquema de estrela

O melhor modelo dimensional é o modelo de esquema estrela, que tem dimensões e tabelas de fatos projetadas de maneira a minimizar a quantidade de tempo para consultar os dados do modelo e que também facilita a compreensão para o visualizador dos dados.

Não é ideal trazer dados no mesmo layout do sistema operacional para um sistema de BI. As tabelas de dados devem ser remodeladas. Algumas das tabelas devem assumir a forma de uma tabela de dimensão, que mantém as informações descritivas. Algumas das tabelas devem assumir a forma de uma tabela de fatos, para manter os dados que podem ser agregados. O melhor layout para formatar tabelas de fatos e tabelas de dimensão é um esquema de estrela. Para obter mais informações: Entender o esquema em estrela e sua importância no Power BI

Imagem de esquema estrela mostrando uma tabela de fatos envolta por tabelas de dimensão, na forma de uma estrela de cinco pontas.

Usar um valor de chave exclusivo para dimensões

Ao criar tabelas de dimensão, tenha uma chave para cada uma delas. Isso garante que não haja relações de muitos para muitos (ou, em outras palavras, "fracas") entre dimensões. Você pode criar a chave aplicando alguma transformação para garantir que uma coluna ou uma combinação de colunas esteja retornando linhas exclusivas na dimensão. Em seguida, essa combinação de colunas pode ser marcada como uma chave na tabela no fluxo de dados.

Marcar uma coluna como um valor de chave.

Fazer uma atualização incremental para grandes tabelas de fatos

Tabelas de fatos são sempre as maiores tabelas do modelo dimensional. Recomendamos reduzir o número de linhas transferidas para essas tabelas. Se você tiver uma tabela de fatos muito grande, certifique-se de usar a atualização incremental para essa tabela. Uma atualização incremental pode ser feita no modelo semântico do Power BI e também nas tabelas de fluxo de dados.

Você pode usar a atualização incremental para atualizar apenas a parte dos dados que foi alterada. Há várias opções para escolher a parte dos dados a ser atualizada e qual parte deve ser mantida. Para obter mais informações: Usar a atualização incremental com os fluxos de dados do Power BI

Atualização incremental para fluxos de dados.

Usar referenciamento para criar dimensões e tabelas de fatos

No sistema de origem, você geralmente tem uma tabela que usa para gerar tabelas de fatos e dimensões no data warehouse. Essas tabelas são boas candidatas para tabelas computadas e também fluxos de dados intermediários. A parte comum do processo, como limpeza de dados e remoção de linhas e colunas extras, pode ser feita uma vez. Usando uma referência da saída dessas ações, você pode produzir as tabelas de dimensão e fatos. Essa abordagem usará a tabela computada para as transformações comuns.

Imagem mostrando uma consulta de Pedidos com a opção de referência sendo usada para criar outra consulta chamada Pedidos agregados.