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

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

Armazenamento temporário de fluxos de dados

Um dos pontos-chave em qualquer sistema de integração de dados é reduzir o número de leituras do sistema operacional de origem. Na arquitetura tradicional de integração de dados, essa redução é feita através da criação de um novo banco de dados chamado banco de dados de preparo. O objetivo do banco de dados de preparo é carregar dados como estão da fonte de dados para o banco de dados de preparo em um cronograma regular.

O restante da integração de dados usará o banco de dados de preparo como fonte para transformação adicional e o converterá para a 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 os dados como estão do sistema de origem (e apenas para as tabelas necessárias). O resultado é então 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 a partir de fluxos de dados de preparo. Os benefícios desta abordagem incluem:

  • Reduzir o número de operações de leitura do sistema de origem e, como resultado, reduzir a carga no sistema de origem.
  • Reduzir 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.

Preparo de fluxos de dados.

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 as tabelas sendo armazenadas no Cadavers ou no Armazenamento do Azure Data Lake. As tabelas são então mostradas sendo transformadas junto com outros fluxos de dados, que são enviados como consultas.

Fluxos de dados de transformação

Quando você tiver separado os fluxos de dados de transformação dos fluxos de dados de preparação, 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 qualquer problema porque são originados apenas dos fluxos de dados de preparação.

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 que chegam através 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 à imagem anterior, exceto transformações são enfatizadas, e os dados estão sendo enviados para o 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 com várias camadas. Tentar fazer ações em camadas garante a manutenção mínima necessária. Quando você quiser alterar algo, você só precisa alterá-lo na camada em que ele está localizado. As outras camadas devem continuar a funcionar 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 multicamadas, onde fluxos de dados de preparo e fluxos de dados de transformação estão em camadas separadas.

Use uma tabela computada tanto quanto possível

Quando você usa o resultado de um fluxo de dados em outro fluxo de dados, está usando o conceito de tabela computada, o que significa obter dados de uma tabela "já processada e armazenada". A mesma coisa pode acontecer dentro de um fluxo de dados. Quando você faz referência a uma tabela 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 mostrando a tabela computada proveniente de uma fonte de dados usada para processar transformações comuns.

Na imagem anterior, a tabela computada obtém os dados diretamente da fonte. 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 preparação.

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

Criar um esquema em estrela

O melhor modelo dimensional é um modelo de esquema em 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 a compreensão 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ões, que mantém as informações descritivas. Algumas das tabelas devem assumir a forma de uma tabela de factos, para manter os dados agregados. O melhor layout para tabelas de fatos e tabelas de dimensão para formar é um esquema em estrela. Para obter mais informações: Compreender o esquema em estrela e a importância para o Power BI

Imagem do esquema de estrelas mostrando uma tabela de fatos cercada por tabelas de dimensões, na forma de uma estrela de cinco pontas.

Usar um valor de chave exclusivo para dimensões

Ao criar tabelas de dimensão, certifique-se de que 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 as 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.

Marque uma coluna como um valor de chave.

Faça uma atualização incremental para tabelas de fatos grandes

As tabelas de fatos são sempre as maiores tabelas no modelo dimensional. Recomendamos que você reduza 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 parte dos dados, a parte que foi alterada. Há várias opções para escolher qual parte dos dados será atualizada e qual parte será persistida. Para obter mais informações: Usando a atualização incremental com fluxos de dados do Power BI

Atualização incremental para fluxos de dados.

Referência 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ões e fatos. Essa abordagem usará a tabela computada para as transformações comuns.

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