Partager via


Dataflow gen2 paramétré

Note

Cet article se concentre sur une architecture de solution à partir des architectures de solution CI/CD et ALM (Gestion du cycle de vie des applications) pour Dataflow Gen2 qui s’appuie sur la fonctionnalité de mode paramètres publics et s’applique uniquement à la prise en charge CI/CD.

Les paramètres dans Fabric Dataflow Gen2 vous permettent de définir des entrées réutilisables qui modélisent la façon dont un dataflow est conçu, et avec le mode de paramètres publics , ces entrées peuvent être définies au moment de l’exécution via des pipelines ou des API. Il rend un flux de données unique hautement flexible et polyvalent, car vous pouvez réutiliser la même logique dans de nombreux scénarios simplement en passant des valeurs différentes, en activant des flux de travail dynamiques et automatisés sans jamais avoir besoin de réécrire ou de dupliquer les transformations.

Ce tutoriel vous guide tout au long d’un exemple qui vous montre comment :

  • Paramétrer une source : utilisation d’un Lakehouse avec l’exemple de jeu de données WideWorldImporters comme source
  • Paramétrer la logique : utilisation des widgets d’entrée disponibles tout au long de l’expérience dataflow
  • Paramétrer la destination : utilisation d’un entrepôt comme destination
  • Envoyer une demande d’exécution avec des valeurs de paramètre : passage de valeurs de paramètre par l'intermédiaire de l'expérience d'activité flux de données au sein d’un pipeline Fabric.

Diagramme d’une architecture de solution de flux de données paramétrable dans Dataflow Gen2.

Note

Les concepts présentés dans cet article sont universels pour Dataflow Gen2 et s’appliquent à d’autres sources et destinations au-delà de celles présentées ici.

Scénario

Capture d’écran de la requête portant le nom dimension_city pour le scénario à l’intérieur de Dataflow Gen2.

Le flux de données utilisé dans ce scénario est simple, mais les principes fondamentaux décrits s’appliquent à tous les types de dataflows. Il se connecte à la table nommée dimension_city à partir de l’exemple de jeu de données Wide World Importers stocké dans un Lakehouse. Il filtre les lignes où la colonne SalesTerritory est égale au Sud-Est et charge le résultat dans une nouvelle table appelée City in a Warehouse. Tous les composants ( Lakehouse, Warehouse et Dataflow) se trouvent dans le même espace de travail. Pour rendre le flux de données dynamique, vous paramétrez la table source, la valeur de filtre et la table de destination. Ces modifications permettent au dataflow de s’exécuter avec des valeurs spécifiques au lieu de celles codées en dur.

Avant de continuer, activez le mode paramètres publics en accédant à l’onglet Accueil , en sélectionnant Options et dans la section Paramètres , cochez la case Activer les paramètres à découvrir et remplacer pour l’exécution et autoriser votre dataflow à accepter des paramètres pendant l’exécution.

Capture d’écran de la boîte de dialogue des options dans Dataflow Gen2 avec la section Paramètres montrant le paramètre « Activer pour être découvert et remplacé lors de l’exécution ».

Paramétrer la source

Lorsque vous utilisez l’un des connecteurs Fabric, tels que Lakehouse, Warehouse ou Fabric SQL, ils suivent toutes la même structure de navigation et utilisent le même format d’entrée. Dans ce scénario, aucun des connecteurs n’a besoin d’une entrée manuelle pour établir une connexion. Toutefois, chacun affiche l’espace de travail et l’élément auquel il se connecte via les étapes de navigation de votre requête. Par exemple, la première étape de navigation inclut l’id d’espace de travail auquel la requête se connecte.

Capture d’écran de l’étape Navigation 1 avec la valeur workspaceId dans la barre de formule de la requête dimension_city.

L’objectif est de remplacer les valeurs codées en dur dans la barre de formule par des paramètres. Plus précisément, vous devez créer un paramètre pour workspaceId et un autre pour LakehouseId. Pour créer des paramètres, accédez à l’onglet Accueil du ruban, sélectionnez Gérer les paramètres, puis choisissez Nouveau paramètre dans le menu déroulant.

Capture d’écran de l’entrée dans l’onglet Accueil pour créer un paramètre.

Lorsque vous créez les paramètres, vérifiez que les deux sont marqués comme requis et définis sur le type de texte . Pour leurs valeurs actuelles, utilisez celles qui correspondent aux valeurs correspondantes de votre environnement spécifique.

Capture d’écran du paramètre LakehouseId créé dans la boîte de dialogue Gérer les paramètres.

Une fois les deux paramètres créés, vous pouvez mettre à jour le script de requête pour les utiliser au lieu de valeurs codées en dur. Cela implique de remplacer manuellement les valeurs d’origine dans la barre de formule par des références aux paramètres ID d’espace de travail et ID Lakehouse. Le script de requête d’origine ressemble à ceci :

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"

Une fois que vous avez mis à jour les références dans les étapes de navigation, votre nouveau script mis à jour peut ressembler à ceci :

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"

Vous remarquerez également qu’il évalue toujours correctement l’aperçu des données dans l’éditeur dataflow.

Paramétrer la logique

Maintenant que la source utilise des paramètres, vous pouvez vous concentrer sur le paramétrage de la logique de transformation du flux de données. Dans ce scénario, l’étape de filtre est l’emplacement où la logique est appliquée et la valeur filtrée, actuellement codée en dur comme sud-est, doit être remplacée par un paramètre. Pour ce faire, créez un paramètre nommé Territory, définissez son type de données sur texte, marquez-le comme non requis et définissez sa valeur actuelle sur Mideast.

Capture d’écran du paramètre Territory créé dans la boîte de dialogue Gérer les paramètres.

Étant donné que votre étape de filtre a été créée à l’aide de l’interface utilisateur, vous pouvez passer à l’étape des lignes filtrées, double-cliquez sur elle pour ouvrir la boîte de dialogue des paramètres de l'étape de filtre. Cette boîte de dialogue vous permet de sélectionner, via le widget d’entrée, si vous souhaitez utiliser un paramètre au lieu d’une valeur statique :

Capture d’écran du widget d’entrée dans la boîte de dialogue filtrer les lignes avec l’option permettant de référencer un paramètre.

Après avoir sélectionné l’option Sélectionner un paramètre, une liste déroulante s’affiche pour afficher tous les paramètres disponibles qui correspondent au type de données requis. Dans cette liste, vous pouvez sélectionner le paramètre Territory nouvellement créé.

Capture d'écran du paramètre Territoire sélectionné à l'intérieur du widget de saisie depuis la boîte de dialogue de filtre des lignes.

Une fois que vous avez sélectionné OK, notez que la vue de diagramme a déjà créé le lien entre le paramètre nouvellement créé et la requête en cours d’utilisation. L’aperçu des données affiche maintenant des informations pour le territoire du Moyen-Orient, non seulement cela.

Capture d’écran de l’affichage Diagramme, des paramètres de requête et de la préversion des données pour la requête dimension_city montrant les données de Mideast SalesTerritory.

Paramétrer la destination

Note

Il est recommandé de vous familiariser avec le concept de destinations de données dans Dataflow Gen2 et la façon dont son script mashup est créé à partir de l’article sur les destinations de données et les paramètres managés

Le dernier composant à paramétrer dans ce scénario est la destination. Bien que les informations sur la destination des données soient disponibles dans l’éditeur de flux de données, pour paramétrer cette partie du flux de données, vous devez utiliser Git ou l’API REST.

Capture d’écran du menu volant qui contient les paramètres de destination des données pour la requête dimension_city.

Ce tutoriel vous montre comment apporter les modifications via Git. Avant de pouvoir apporter des modifications via Git, veillez à :

  • Créez un paramètre portant le nom WarehouseId : veillez à utiliser l’ID correspondant de votre entrepôt comme valeur actuelle, définissez-le comme requis et du type de données texte.
  • Enregistrez le flux de données : utilisez le bouton Enregistrer sous l’onglet Accueil du ruban.

Capture d’écran du bouton Enregistrer le flux de données.

Une fois votre dataflow enregistré, veillez à valider les modifications apportées à votre dépôt Git et à accéder à votre dépôt pour afficher le fichier mashup.pq de votre dataflow. Lorsque vous examinez le fichier mashup.pq , recherchez la requête avec laquelle vous avez associé la destination des données. Dans ce scénario, le nom de cette requête est dimension_city. Vous voyez un attribut d’enregistrement au-dessus de ce nom de requête :

[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

Cet enregistrement d’attribut a un champ portant le nom QueryName, qui contient le nom de la requête qui a toutes les logiques de destination de données associées à cette requête. Cette requête se présente comme suit :

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

Vous remarquez que, de la même façon que le script de la source pour Lakehouse, ce script pour la destination a un modèle similaire où il code en dur le workspaceid qui doit être utilisé et également le warehouseId. Remplacez ces valeurs fixes par les identificateurs des paramètres et votre script doit se présenter comme suit :

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

Vous pouvez maintenant valider cette modification et mettre à jour votre flux de données à l’aide des modifications de votre flux de données via la fonctionnalité de contrôle de code source dans votre espace de travail. Vous pouvez vérifier que toutes les modifications sont en place en ouvrant votre dataflow et en examinant la destination des données et toutes les références de paramètres précédentes ajoutées. Cela finalise tout le paramétrage de votre dataflow et vous pouvez maintenant passer à l’exécution de votre dataflow en passant des valeurs de paramètre pour l’exécution.

Exécuter la requête avec des valeurs de paramètre

Vous pouvez utiliser l’API REST Fabric pour envoyer une demande d’exécution avec une charge utile personnalisée qui contient vos valeurs de paramètre pour cette opération d’exécution spécifique et vous pouvez également utiliser l’API REST pour découvrir les paramètres de flux de données et comprendre ce que le flux de données attend afin qu’il puisse déclencher une exécution. Dans ce tutoriel, vous allez utiliser l’expérience trouvée dans l’activité Dataflow pour les pipelines Fabric. Commencez par créer un pipeline et ajouter une nouvelle activité de flux de données au canevas . Dans les paramètres de l’activité, recherchez l’espace de travail où se trouve votre dataflow, puis sélectionnez le flux de données dans la liste déroulante.

Capture d’écran de l’activité Dataflow avec des paramètres à l’intérieur d’un pipeline.

Une section de paramètres de dataflow peut être développée pour afficher tous les paramètres disponibles dans le dataflow et leurs valeurs par défaut. Vous pouvez remplacer toutes les valeurs ici et les valeurs passées seront utilisées pour définir les sources, la logique et la destination qui doivent être utilisées pour évaluer votre exécution de flux de données. Vous pouvez également donner à de nouveaux scénarios une tentative en créant un entrepôt et en modifiant l’WarehouseId pour l’évaluation ou en utilisant ce modèle dans un pipeline de déploiement où workspaceId et d’autres paramètres doivent être passés pour pointer vers les éléments corrects dans l’environnement correspondant.