Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Este artigo se concentra em uma arquitetura de solução das arquiteturas de solução CI/CD e ALM (Gerenciamento do Ciclo de Vida do Aplicativo) para o Dataflow Gen2 que depende da integração de bibliotecas de variáveis e é aplicável apenas ao Dataflow Gen2 com suporte a CI/CD.
As bibliotecas de variáveis de malha no Dataflow Gen2 permitem o gerenciamento de configuração centralizado e reutilizável entre ambientes. Ao referenciar variáveis diretamente em seus scripts de fluxo de dados, você pode ajustar dinamicamente o comportamento sem valores de codificação, o que é ideal para fluxos de trabalho de CI/CD. Essa integração simplifica a implantação em todos os estágios, permitindo que valores específicos do workspace (como IDs do Lakehouse ou do Workspace) sejam injetados em runtime, tornando seus fluxos de dados mais adaptáveis e mantêveis.
Este tutorial orienta você por uma solução de exemplo que usa referências variáveis em um fluxo de dados e mostra como:
- Definir variáveis: usando as bibliotecas de variáveis do Fabric e seus tipos de dados distintos
- Fonte orientada por variáveis: usando um Lakehouse com o conjunto de dados de exemplo WideWorldImpoters como a origem
- Lógica orientada por variáveis: usando os widgets de entrada disponíveis em toda a experiência de fluxo de dados
- Destino controlado por variáveis: usando um Armazém como destino
Observação
Os conceitos mostrados neste artigo são universais ao Dataflow Gen2 e são aplicáveis a outras fontes e destinos além dos mostrados aqui.
O cenário
O fluxo de dados usado nesse cenário é simples, mas os princípios principais descritos se aplicam a todos os tipos de fluxos de dados. Conecta-se à tabela chamada dimension_city do conjunto de dados de exemplo Wide World Importers armazenado em um Lakehouse. Ele filtra as linhas em que a coluna SalesTerritory é igual a Sudeste e carrega o resultado em uma nova tabela chamada Cidade em um Armazém. Todos os componentes — Lakehouse, Warehouse e fluxo de dados — estão localizados no mesmo Espaço de Trabalho. Para tornar o fluxo de dados dinâmico, você usa variáveis para conduzir a tabela de origem, o valor do filtro e a tabela de destino. Essas alterações permitem que o fluxo de dados seja executado com valores armazenados em bibliotecas de variáveis do Fabric em vez de codificadas.
Definir variáveis
Observação
Certifique-se de ter bibliotecas de variáveis do Fabric habilitadas para sua organização ou grupo de segurança. Saiba mais sobre como começar a usar bibliotecas de variáveis.
Como prática recomendada, é sempre recomendável ter um design em mente antes de criar uma solução e quais componentes do fluxo de dados são gerados dinamicamente de uma biblioteca de variáveis. Embora você possa criar várias bibliotecas em um workspace, este exemplo usa uma única biblioteca chamada Minha Biblioteca que contém as variáveis que o Dataflow Gen2 usa:
| Nome da variável | Tipo | Propósito |
|---|---|---|
| WorkspaceId | Guid | Usado para a fonte de dados e scripts de destino no fluxo de dados |
| LakehouseId | Guid | Determina a ID da Lakehouse que está sendo usada como fonte |
| WarehouseId | Guid | Determina o ID do armazém que está sendo usado como destino |
| Território | String | Define qual valor deve ser usado para conduzir a lógica de filtro no fluxo de dados |
Defina os valores padrão que correspondem ao seu próprio ambiente e salve a biblioteca de variáveis.
Fonte direcionada por variável
Ao usar qualquer um dos conectores do Fabric, como Lakehouse, Warehouse ou Fabric SQL, todos seguem a mesma estrutura de navegação e usam o mesmo formato de entrada. Nesse cenário, nenhum dos conectores requer entrada manual para estabelecer uma conexão. No entanto, cada um mostra a qual workspace e item ele se conecta por meio das etapas de navegação em sua consulta. Por exemplo, a primeira etapa de navegação inclui o workspaceId ao qual a consulta se conecta.
A meta é substituir os valores codificados na barra de fórmulas por variáveis. Especificamente, você deseja usar as variáveis WorkspaceId e LakehouseId para conduzir essa lógica. Primeiro, você precisa trazer essas variáveis para o Dataflow Gen2. Uma abordagem recomendada é criar consultas para cada variável distinta para centralizar e gerenciar facilmente todas as variáveis que você planeja usar. Para fazer isso, crie uma consulta em branco acessando a entrada Obter dados na faixa de opções e selecionando a opção consulta em branco no menu suspenso.
Selecionar essa opção traz uma nova caixa de diálogo em que você pode ver a consulta em branco criada. Você pode selecionar OK para trazer essa nova consulta em branco.
Depois que a consulta tiver sido criada e aparecer no fluxo de dados, renomeie-a como WorkspaceId e substitua a fórmula na etapa De origem para:
Variable.ValueOrDefault("$(/**/My Library/WorkspaceId)", "Your Workspace ID")
Esse script é fundamentalmente aquele que é capaz de determinar qual biblioteca e variável buscar. O segundo argumento da Variable.ValueOrDefault função determina qual valor fornecer quando uma variável não pode ser buscada.
Observação
Certifique-se de substituir a string "Sua ID do Workspace", que é o segundo argumento da função, pelo seu próprio valor correspondente em seu ambiente e salvar a consulta.
Repita esse processo para a variável LakehouseId e crie uma consulta com o mesmo nome da variável, mas use a seguinte fórmula para a etapa De origem:
Variable.ValueOrDefault("$(/**/My Library/LakehouseId)", "Your Lakehouse ID")
Observação
Substitua a cadeia de caracteres "Sua ID do Lakehouse", o segundo argumento da função, pelo seu próprio valor correspondente em seu ambiente e salve a consulta.
Depois que ambas as consultas forem criadas, você poderá atualizar o script de consulta para usá-las em vez de valores codificados. Isso envolve substituir manualmente os valores originais na barra de fórmulas por referências às consultas WorkspaceId e LakehouseId. O script de consulta original tem esta aparência:
let
Source = Lakehouse.Contents([]),
#"Navigation 1" = Source{[workspaceId = "8b325b2b-ad69-4103-93ae-d6880d9f87c6"]}[Data],
#"Navigation 2" = #"Navigation 1"{[lakehouseId = "2455f240-7345-4c8b-8524-c1abbf107d07"]}[Data],
#"Navigation 3" = #"Navigation 2"{[Id = "dimension_city", ItemKind = "Table"]}[Data],
#"Filtered rows" = Table.SelectRows(#"Navigation 3", each ([SalesTerritory] = "Southeast")),
#"Removed columns" = Table.RemoveColumns(#"Filtered rows", {"ValidFrom", "ValidTo", "LineageKey"})
in
#"Removed columns"
Depois de atualizar as referências nas etapas de navegação, o novo script atualizado poderá ter esta aparência:
let
Source = Lakehouse.Contents([]),
#"Navigation 1" = Source{[workspaceId = WorkspaceId]}[Data],
#"Navigation 2" = #"Navigation 1"{[lakehouseId = LakehouseId]}[Data],
#"Navigation 3" = #"Navigation 2"{[Id = "dimension_city", ItemKind = "Table"]}[Data],
#"Filtered rows" = Table.SelectRows(#"Navigation 3", each ([SalesTerritory] = "Southeast")),
#"Removed columns" = Table.RemoveColumns(#"Filtered rows", {"ValidFrom", "ValidTo", "LineageKey"})
in
#"Removed columns"
Você percebe que ele continua avaliando corretamente a pré-visualização de dados no editor de Dataflow, com as referências diretas criadas na visualização de diagrama entre todas as consultas envolvidas.
Lógica controlada por variáveis
Agora que a origem está usando variáveis, você pode se concentrar em modificar a lógica de transformação do fluxo de dados. Nesse cenário, a etapa de filtro é onde a lógica é aplicada e o valor que está sendo filtrado, atualmente codificado como Sudeste, deve ser substituído por uma consulta que referencia uma variável. Para fazer isso, você repete o mesmo processo de criação de uma nova consulta em branco e reaproveita a fórmula de sua etapa de origem para manter a variável para Territory e alterar o nome da consulta para o nome da variável também. Utilize o seguinte script:
Variable.ValueOrDefault("$(/**/My Library/Territory)", "Mideast")
Considerando que a etapa de filtro foi criada usando a interface do usuário, você pode ir até a etapa linhas filtradas, selecioná-la duas vezes e obter a caixa de diálogo de configurações para a etapa de filtro. Essa caixa de diálogo permite que você selecione, por meio do widget de entrada, se você quiser usar uma consulta em vez de um valor estático:
Depois de selecionar a opção Selecionar uma consulta, uma lista suspensa será exibida mostrando todas as consultas que você pode escolher. Nesta lista, você pode selecionar a consulta Territory recém-criada.
Depois de selecionar OK, observe que a visualização do diagrama já criou o link entre a consulta de Território e a consulta em uso. Não só isso, mas a visualização de dados agora mostra informações para o território do Oriente Médio .
Destino controlado por variáveis
Observação
É recomendável que você se familiarize com o conceito de destinos de dados no Dataflow Gen2 e como seu script de mashup é criado a partir do artigo sobre destinos de dados e configurações gerenciadas
O último componente a ser modificado nesse cenário é o destino. Embora as informações sobre o destino de dados possam ser encontradas no editor de fluxo de dados, para modificar essa parte do fluxo de dados, você precisa usar o Git ou a API REST.
Este tutorial mostra como fazer as alterações por meio do Git. Antes de fazer alterações por meio do git, certifique-se de:
- Crie uma consulta para a variável WarehouseId: siga o mesmo processo descrito em seções anteriores para criar uma nova consulta em branco e substituir a fórmula para que a etapa de origem seja:
Variable.ValueOrDefault("$(/**/My Library/WarehouseId)", "Your Warehouse ID")
Observação
Substitua o "Sua ID do Warehouse", que é o segundo argumento da função, pelo seu próprio valor correspondente em seu ambiente e salve a consulta.
Importante
Certifique-se de que todas as suas consultas que contêm uma variável tenham o staging desabilitado.
- Salvar o fluxo de dados: use o botão Salvar na guia Início da faixa de opções.
Depois que o fluxo de dados for salvo, confirme as alterações no repositório Git e vá até o repositório para ver o arquivo mashup.pq do fluxo de dados. Ao examinar o arquivo mashup.pq , procure a consulta à qual você associou o destino de dados. Nesse cenário, o nome dessa consulta é dimension_city. Você verá um atributo de registro acima desse nome de consulta:
[DataDestinations = {[Definition = [Kind = "Reference", QueryName = "dimension_city_DataDestination", IsNewTarget = true], Settings = [Kind = "Manual", AllowCreation = true, ColumnSettings = [Mappings = {[SourceColumnName = "CityKey", DestinationColumnName = "CityKey"], [SourceColumnName = "WWICityID", DestinationColumnName = "WWICityID"], [SourceColumnName = "City", DestinationColumnName = "City"], [SourceColumnName = "StateProvince", DestinationColumnName = "StateProvince"], [SourceColumnName = "Country", DestinationColumnName = "Country"], [SourceColumnName = "Continent", DestinationColumnName = "Continent"], [SourceColumnName = "SalesTerritory", DestinationColumnName = "SalesTerritory"], [SourceColumnName = "Region", DestinationColumnName = "Region"], [SourceColumnName = "Subregion", DestinationColumnName = "Subregion"], [SourceColumnName = "Location", DestinationColumnName = "Location"], [SourceColumnName = "LatestRecordedPopulation", DestinationColumnName = "LatestRecordedPopulation"]}], DynamicSchema = false, UpdateMethod = [Kind = "Replace"], TypeSettings = [Kind = "Table"]]]}]
shared dimension_city = let
Esse registro de atributo tem um campo com o nome QueryName, que contém o nome da consulta que tem toda a lógica de destino de dados associada a essa consulta. Esta consulta tem a seguinte aparência:
shared dimension_city_DataDestination = let
Pattern = Fabric.Warehouse([HierarchicalNavigation = null, CreateNavigationProperties = false]),
Navigation_1 = Pattern{[workspaceId = "8b325b2b-ad69-4103-93ae-d6880d9f87c6"]}[Data],
Navigation_2 = Navigation_1{[warehouseId = "527ba9c1-4077-433f-a491-9ef370e9230a"]}[Data],
TableNavigation = Navigation_2{[Item = "City", Schema = "dbo"]}?[Data]?
in
TableNavigation
Observe que, da mesma forma que o script da origem do Lakehouse, esse script para o destino tem um padrão semelhante em que codifica o workspaceid que precisa ser usado e também o warehouseId. Substitua esses valores fixos pelos identificadores das consultas que você criou e seu script terá a seguinte aparência:
shared dimension_city_DataDestination = let
Pattern = Fabric.Warehouse([HierarchicalNavigation = null, CreateNavigationProperties = false]),
Navigation_1 = Pattern{[workspaceId = WorkspaceId]}[Data],
Navigation_2 = Navigation_1{[warehouseId = WarehouseId]}[Data],
TableNavigation = Navigation_2{[Item = "City", Schema = "dbo"]}?[Data]?
in
TableNavigation
Agora você pode confirmar essa alteração e atualizar seu fluxo de dados usando as alterações do fluxo de dados por meio do recurso de controle de origem em seu workspace.
Agora você pode executar o fluxo de dados, que usa valores de bibliotecas variáveis.