Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Observação
Este artigo se concentra em uma arquitetura de solução de arquiteturas de solução CI/CD e ALM (Application Lifecycle Management) para Dataflow Gen2 que depende do recurso de modo de parâmetros públicos e só é aplicável ao Dataflow Gen2 com suporte a CI/CD.
Os parâmetros no Fabric Dataflow Gen2 permitem definir entradas reutilizáveis que moldam como um fluxo de dados é projetado e, com o modo de parâmetros públicos , essas entradas podem ser definidas em tempo de execução por meio de pipelines ou APIs. Ele torna um único fluxo de dados altamente flexível e versátil, já que você pode reutilizar a mesma lógica em muitos cenários simplesmente passando valores diferentes, permitindo fluxos de trabalho dinâmicos e automatizados sem precisar reescrever ou duplicar as transformações.
Este tutorial orienta você através de um exemplo que mostra como:
- Parametrizar uma fonte: Usando um Lakehouse com o conjunto de dados de exemplo WideWorldImpoters como fonte
- Parametrizar lógica: Usando os widgets de entrada disponíveis em toda a experiência do Dataflow
- Parametrizar destino: Usando um armazém como destino
- Enviar uma solicitação de execução com valores de parâmetro: transmitindo valores de parâmetro através da interface da atividade Dataflow dentro de um Fabric pipeline
Observação
Os conceitos apresentados neste artigo são universais para o 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 neste cenário é simples, mas os princípios básicos descritos se aplicam a todos os tipos de fluxos de dados. Conecta-se à tabela chamada dimension_city do conjunto de dados de exemplo da Wide World Importers armazenado num Lakehouse. Ele filtra linhas em que a coluna SalesTerritory é igual a Sudeste e carrega o resultado em uma nova tabela chamada Cidade em um Depósito. Todos os componentes — Lakehouse, Warehouse e Dataflow — estão localizados no mesmo espaço de trabalho. Para tornar o fluxo de dados dinâmico, parametrize 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 específicos em vez de valores codificados.
Antes de continuar, ative o modo de parâmetros públicos indo para a guia Página Inicial , selecionando Opções e, na seção Parâmetros , marcando a caixa Permitir que os parâmetros sejam descobertos e substituídos para execução e permita que seu fluxo de dados aceite parâmetros durante a execução.
Parametrizar fonte
Ao usar qualquer um dos conectores de malha, como Lakehouse, Warehouse ou Fabric SQL, todos eles 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 espaço de trabalho 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.
O objetivo é substituir os valores codificados na barra de fórmulas por parâmetros. Especificamente, você precisa criar um parâmetro para o WorkspaceId e outro para o LakehouseId. Para criar parâmetros, vá para a guia Página Inicial na faixa de opções, selecione Gerenciar parâmetros e escolha Novo parâmetro no menu suspenso.
Ao criar os parâmetros, certifique-se de que ambos estejam marcados conforme necessário e definidos para o tipo de texto . Para seus valores atuais, use aqueles que correspondem aos valores correspondentes do seu ambiente específico.
Depois que ambos os parâmetros forem criados, você poderá atualizar o script de consulta para usá-los em vez de valores codificados. Isso envolve substituir manualmente os valores originais na barra de fórmulas por referências aos parâmetros de ID do Workspace e ID do Lakehouse. 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 pode 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"
E você percebe que ele ainda avalia corretamente a pré-visualização de dados no Editor do Dataflow.
Parametrizar lógica
Agora que a fonte está usando parâmetros, você pode se concentrar em parametrizar 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 um parâmetro. Para fazer isso, crie um novo parâmetro chamado Territory, defina seu tipo de dados como texto, marque-o como não necessário e defina seu valor atual como Oriente Médio.
Dado que sua etapa de filtro foi criada usando a interface do usuário, você pode ir para a etapa Linhas filtradas, selecioná-la duas vezes e obter a caixa de diálogo de configurações para a etapa de filtro. Esta caixa de diálogo permite que você selecione, através do widget de entrada, se deseja usar um parâmetro em vez de um valor estático:
Depois de selecionar a opção para Selecionar um parâmetro, uma lista suspensa aparecerá para mostrar todos os parâmetros disponíveis que correspondem ao tipo de dados necessário. Nessa lista, você pode selecionar o parâmetro Territory recém-criado.
Depois de selecionar OK, observe que a exibição de diagrama já criou o link entre o parâmetro recém-criado 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 .
Parametrizar destino
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 parametrizar neste cenário é o destino. Embora as informações sobre qual é o destino dos dados possam ser encontradas no editor de fluxo de dados, para parametrizar essa parte do fluxo de dados você precisa usar o Git ou a API REST.
Este tutorial mostra como fazer as alterações através do Git. Antes de fazer alterações através do git, certifique-se de:
- Crie um parâmetro com o nome WarehouseId: certifique-se de usar o ID correspondente do seu Warehouse como o valor atual, defina-o conforme necessário e do tipo de dados de texto.
- Salvar o fluxo de dados: use o botão Salvar na guia inicial da faixa de opções.
Depois que o Dataflow for salvo, certifique-se de confirmar as alterações no repositório Git e vá até o repositório para ver o arquivo mashup.pq do Dataflow. Ao examinar o arquivo mashup.pq , procure a consulta à qual você associou o destino dos dados. Nesse cenário, o nome dessa consulta é dimension_city. Você verá um atributo de registro acima deste 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
Você percebe que, da mesma forma que o script da origem para o Lakehouse, esse script para o destino tem um padrão semelhante onde codifica o workspaceid que precisa ser usado e também o warehouseId. Substitua esses valores fixos pelos identificadores dos parâmetros 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 seu Dataflow por meio do recurso de controle do código-fonte em seu espaço de trabalho. Você pode verificar se todas as alterações estão em vigor abrindo seu Dataflow e revisando o destino dos dados e quaisquer referências de parâmetros anteriores que foram adicionadas. Isso finaliza toda a parametrização do seu Dataflow e agora você pode passar a executar seu Dataflow passando valores de parâmetro para execução.
Executar solicitação com valores de parâmetro
Você pode usar a API REST de malha para enviar uma solicitação de execução com uma carga personalizada que contém seus valores de parâmetro para essa operação de execução específica e também pode usar a API REST para descobrir parâmetros de fluxo de dados e entender o que o Dataflow espera para que possa disparar uma execução. Neste tutorial, irá usar a experiência encontrada na atividade de Dataflow para pipelines de Fabric. Comece criando um Pipeline e adicione uma nova atividade de fluxo de dados à tela. Nas configurações da atividade, localize o espaço de trabalho onde seu Dataflow está localizado e selecione o Dataflow na lista suspensa.
Uma seção de parâmetros de fluxo de dados pode ser expandida para mostrar todos os parâmetros disponíveis no fluxo de dados e seus valores padrão. Você pode substituir quaisquer valores aqui e os valores passados serão usados para definir quais fontes, lógica e destino devem ser usados para avaliar sua execução de fluxo de dados. Você também pode experimentar novos cenários criando um novo Warehouse e alterando o WarehouseId para a avaliação ou usando esse padrão em um pipeline de implantação onde o WorkspaceId e outros parâmetros precisam ser passados para apontar para os itens corretos no ambiente correspondente.