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.

Preparo de fluxos de dados

Um dos principais pontos em qualquer sistema de integração de dados é reduzir o número de leituras do sistema operacional de origem. Na arquitetura de integração de dados tradicional, 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 como estão da fonte de dados para o banco de dados de preparo 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 convertendo-o 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 como estão do sistema de origem (e apenas para as tabelas necessárias). 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 do sistema de origem seja mínima.

Em seguida, você pode criar outros fluxos de dados que originam seus dados de fluxos de dados de preparo. Os benefícios dessa abordagem incluem:

  • Reduzindo o número de operações de leitura do sistema de origem e reduzindo a carga no sistema de origem como resultado.
  • Reduzindo a 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.
  • Tornando os fluxos de dados de transformação independentes da fonte.

Staging dataflows.

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 entidades que estão sendo armazenadas em cadáveres ou Azure Data Lake Storage. Em seguida, as entidades 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 de a 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.

Image similar to the previous image, except transformations are emphasized, and the data is being sent to the data warehouse.

Arquitetura em camadas

Uma arquitetura em camadas é uma arquitetura 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 nos quais suas entidades são usadas em conjuntos de dados Power BI.

multi-layered architecture.

Usar uma entidade computada o máximo possível

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

Computed entity sourced from a data source used to process common transformations.

Na imagem anterior, a entidade 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 entidades computadas sejam originadas dos fluxos de dados de preparo.

Computed entity sourced from dataflows used to process common transformations.

Criar um esquema de estrela

O melhor modelo dimensional é um modelo de esquema estrela que tem dimensões e tabelas de fatos projetadas de forma a minimizar a quantidade de tempo para consultar os dados do modelo e também facilita o entendimento para o visualizador de 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 aggregáveis. O melhor layout para tabelas de fatos e tabelas de dimensão a serem formadas é um esquema de estrela. Mais informações: Entenda o esquema de estrela e a importância para Power BI

Star schema image showing a fact table surrounded by dimension tables, in the shape of a five-pointed star.

Usar um valor de chave exclusivo para dimensões

Ao criar tabelas de dimensão, verifique se você tem uma chave para cada uma delas. Essa chave garante que não haja relações muitos para muitos (ou, em outras palavras, "fracos") 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 entidade no fluxo de dados.

Mark a column as a key value.

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

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 entidade. Uma atualização incremental pode ser feita no conjunto de dados Power BI e também nas entidades de fluxo de dados.

Você pode usar a atualização incremental para atualizar apenas parte dos dados, a parte que foi alterada. Há várias opções para escolher qual parte dos dados a serem atualizados e qual parte deve ser mantida. Mais informações: Usando a atualização incremental com fluxos de dados Power BI

Incremental refresh for dataflows.

Referenciar para criar dimensões e tabelas de fatos

No sistema de origem, você geralmente tem uma tabela que você usa para gerar tabelas de fatos e dimensões no data warehouse. Essas tabelas são boas candidatas para entidades computadas e também fluxos de dados intermediários. A parte comum do processo, como a limpeza de dados e a 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 entidade computada para as transformações comuns.

Image showing an Orders query with the reference option being used to create a new query called Orders aggregated.