Freigeben über


Parametrisierter Datenfluss Gen2

Hinweis

Dieser Artikel konzentriert sich auf eine Lösungsarchitektur von CI/CD- und ALM-Lösungsarchitekturen (Application Lifecycle Management) für Dataflow Gen2 , die auf dem Feature für den öffentlichen Parametermodus basiert und nur für Dataflow Gen2 mit CI/CD-Unterstützung gilt.

Mithilfe von Parametern in Fabric Dataflow Gen2 können Sie wiederverwendbare Eingaben definieren, die die Gestaltung eines Datenflusses bestimmen, und mit öffentlichen Parametern können diese Eingaben zur Laufzeit über Pipelines oder APIs festgelegt werden. Dadurch wird ein einzelner Dataflow hochflexibel und vielseitig, da Sie dieselbe Logik in vielen Szenarien einfach wiederverwenden können, indem Sie einfach verschiedene Werte übergeben und dynamische, automatisierte Workflows ermöglichen, ohne die Transformationen neu schreiben oder duplizieren zu müssen.

Dieses Lernprogramm führt Sie durch ein Beispiel, das Ihnen zeigt, wie Sie:

  • Parametrisieren einer Quelle: Verwenden eines Lakehouse mit dem WideWorldImpoters-Beispieldatensatz als Quelle
  • Parametrisieren der Logik: Verwenden der Eingabe-Widgets, die in der gesamten Dataflow-Oberfläche verfügbar sind
  • Parameterisieren des Ziels: Verwenden eines Warehouse als Ziel
  • Senden einer Ausführungsanforderung mit Parameterwerten: Übergeben von Parameterwerten über die Dataflow-Aktivitätserfahrung innerhalb einer Fabric-Pipeline

Diagramm einer parametrisierten Datenflusslösungsarchitektur in Dataflow Gen2.

Hinweis

Die in diesem Artikel vorgestellten Konzepte sind universell für Dataflow Gen2 und gelten für andere Quellen und Ziele, die über die hier gezeigten hinausgehen.

Das Szenario

Screenshot der Abfrage mit dem Namen dimension_city für das Szenario in Dataflow Gen2.

Der in diesem Szenario verwendete Datenfluss ist einfach, aber die beschriebenen Kernprinzipien gelten für alle Datentypen von Datenflüssen. Sie stellt eine Verbindung mit der Tabelle mit dem Namen dimension_city aus dem Beispieldatensatz "Wide World Importers" her, der in einem Lakehouse gespeichert ist. Sie filtert Zeilen, in denen die Spalte "SalesTerritory" "Südost" entspricht, und lädt das Ergebnis in eine neue Tabelle namens "City in a Warehouse". Alle Komponenten – Lakehouse, Warehouse und Dataflow – befinden sich im gleichen Arbeitsbereich. Um den Datenfluss dynamisch zu gestalten, parametrisieren Sie die Quelltabelle, den Filterwert und die Zieltabelle. Diese Änderungen ermöglichen die Ausführung des Datenflusses mit bestimmten Werten anstelle hartcodierter Werte.

Bevor Sie fortfahren, aktivieren Sie den Modus für öffentliche Parameter, indem Sie zur Registerkarte Start wechseln, Optionen auswählen und im Abschnitt Parameter das Kontrollkästchen mit der Bezeichnung Aktivieren von Parametern zur Entdeckung und Aufhebung für die Ausführung aktivieren, damit Ihr Datenfluss Parameter während der Ausführung akzeptieren kann.

Screenshot des Dialogfelds

Quelle parametrisieren

Wenn Sie einen der Fabric-Connectors wie Lakehouse, Warehouse oder Fabric SQL verwenden, befolgen sie alle dieselbe Navigationsstruktur und verwenden dasselbe Eingabeformat. In diesem Szenario erfordert keiner der Verbinder manuelle Eingaben, um eine Verbindung herzustellen. Jeder zeigt jedoch an, mit welchem Arbeitsbereich und Element es eine Verbindung über die Navigationsschritte in Ihrer Abfrage herstellt. Beispielsweise enthält der erste Navigationsschritt die workspaceId, mit der die Abfrage eine Verbindung herstellt.

Screenshot des Schritts Navigation 1 mit dem Wert workspaceId in der Formelzeile für die Dimension_Stadt-Abfrage.

Ziel ist es, die hartcodierten Werte in der Bearbeitungsleiste durch Parameter zu ersetzen. Insbesondere müssen Sie einen Parameter für die WorkspaceId und einen anderen für die LakehouseId erstellen. Um Parameter zu erstellen, wechseln Sie im Menüband zur Registerkarte " Start ", wählen Sie "Parameter verwalten" und dann im Dropdownmenü " Neuer Parameter" aus.

Screenshot des Eintrags auf der Registerkarte

Stellen Sie beim Erstellen der Parameter sicher, dass beide als erforderlich gekennzeichnet und auf den Texttyp festgelegt sind. Verwenden Sie für ihre aktuellen Werte die Werte, die den entsprechenden Werten aus Ihrer spezifischen Umgebung entsprechen.

Screenshot des LakehouseId-Parameters, der im Dialogfeld

Nachdem beide Parameter erstellt wurden, können Sie das Abfrageskript aktualisieren, um sie anstelle hartcodierter Werte zu verwenden. Dies umfasst das manuelle Ersetzen der ursprünglichen Werte im Formelbereich durch Verweise auf die Parameter „Arbeitsbereichs-ID“ und „Lakehouse-ID“. Das ursprüngliche Abfrageskript sieht wie folgt aus:

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"

Nachdem Sie die Verweise in den Navigationsschritten aktualisiert haben, sieht ihr neues aktualisiertes Skript möglicherweise wie folgt aus:

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"

Und Sie stellen fest, dass sie die Datenvorschau im Dataflow-Editor weiterhin richtig auswertet.

Parametrisieren der Logik

Da die Quelle nun Parameter verwendet, können Sie sich auf die Parametrisierung der Transformationslogik des Datenflusses konzentrieren. In diesem Szenario ist der Filterschritt der Ort, an dem die Logik angewendet wird und der gefilterte Wert, der derzeit als Südostcodiert ist, durch einen Parameter ersetzt werden sollte. Erstellen Sie dazu einen neuen Parameter namens "Territory", legen Sie den Datentyp auf Text fest, markieren Sie ihn als nicht erforderlich, und legen Sie den aktuellen Wert auf "Mideast" fest.

Screenshot des Parameters

Da Ihr Filterschritt über die Benutzeroberfläche erstellt wurde, können Sie zum Schritt "Gefilterte Zeilen" wechseln, ihn doppelt auswählen und das Einstellungsdialogfeld für den Filterschritt abrufen. In diesem Dialogfeld können Sie über das Eingabe-Widget auswählen, wenn Sie einen Parameter anstelle eines statischen Werts verwenden möchten:

Screenshot des Eingabe-Widgets im Dialogfeld

Nachdem Sie die Option zum Auswählen eines Parameters ausgewählt haben, wird eine Dropdownliste angezeigt, um alle verfügbaren Parameter anzuzeigen, die dem erforderlichen Datentyp entsprechen. In dieser Liste können Sie den neu erstellten Parameter "Territory" auswählen.

Screenshot des Parameters

Beachten Sie, dass die Diagrammansicht die Verknüpfung zwischen dem neu erstellten Parameter und der verwendeten Abfrage bereits erstellt hat. Nicht nur das, aber in der Datenvorschau werden nun Informationen für das Mideast-Gebiet angezeigt.

Screenshot der Diagrammansicht, der Abfrageeinstellungen und der Datenvorschau für die dimension_city Abfrage mit Daten für die Mideast SalesTerritory.

Parametrieren des Ziels

Hinweis

Es wird empfohlen, sich mit dem Konzept von Datenzielen in Dataflow Gen2 vertraut zu machen und wie das Mashup-Skript aus dem Artikel zu Datenzielen und verwalteten Einstellungen erstellt wird.

Die letzte Komponente, die in diesem Szenario parametrisiert werden soll, ist das Ziel. Die Informationen darüber, was das Datenziel ist, finden Sie im Dataflow-Editor. Um diesen Teil des Datenflusses zu parametrisieren, müssen Sie Git oder die REST-API verwenden.

Screenshot des Flyouts, das die Datenzieleinstellungen für die dimension_city Abfrage enthält.

In diesem Lernprogramm erfahren Sie, wie Sie die Änderungen über Git vornehmen. Bevor Sie Änderungen über Git vornehmen können, stellen Sie folgendes sicher:

  • Erstellen Sie einen Parameter mit dem Namen WarehouseId: Stellen Sie sicher, dass Sie die entsprechende ID Ihres Lagers als aktuellen Wert verwenden, legen Sie ihn als erforderlich und für den Textdatentyp fest.
  • Speichern Sie den Datenfluss: Verwenden Sie die Schaltfläche "Speichern" auf der Registerkarte "Start" des Menübands.

Screenshot der Schaltfläche

Nachdem Ihr Datenfluss gespeichert wurde, stellen Sie sicher, dass Sie die Änderungen in Ihrem Git-Repository committen und wechseln Sie zu Ihrem Repository, um die mashup.pq-Datei Ihres Datenflusses anzuzeigen. Suchen Sie beim Betrachten der Datei mashup.pq nach der Abfrage, der Sie das Datenziel zugeordnet haben. In diesem Szenario ist der Name dieser Abfrage dimension_city. Oberhalb dieses Abfragenamens ist ein Datensatzattribut angezeigt.

[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

Dieser Attributdatensatz weist ein Feld mit dem Namen QueryName auf, der den Namen der Abfrage enthält, die alle Datenziellogik für diese Abfrage zugeordnet hat. Diese Abfrage sieht wie folgt aus:

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

Sie erkennen, dass dieses Skript für das Ziel ähnlich wie das Quellskript für das Lakehouse ein Muster aufweist, bei dem sowohl die zu verwendende Arbeitsbereichs-ID als auch die Lagerhaus-ID hartcodiert sind. Ersetzen Sie diese festen Werte durch die Bezeichner der Parameter, und Ihr Skript sieht wie folgt aus:

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

Sie können diese Änderung jetzt übernehmen und ihren Datenfluss mithilfe der Änderungen aus Ihrem Dataflow über das Feature zur Quellcodeverwaltung in Ihrem Arbeitsbereich aktualisieren. Sie können überprüfen, ob alle Änderungen vorhanden sind, indem Sie Den Dataflow öffnen und das Datenziel und alle vorherigen Parameterverweise überprüfen, die hinzugefügt wurden. Dies finalisiert die gesamte Parametrisierung Ihres Dataflows und damit können Sie nun den Dataflow ausführen, indem Sie Parameterwerte zur Ausführung übergeben.

Anforderung mit Parameterwerten ausführen

Sie können die Fabric-REST-API verwenden, um eine Ausführungsanforderung mit einer benutzerdefinierten Nutzlast zu senden, die Ihre Parameterwerte für diesen bestimmten Ausführungsvorgang enthält, und Sie können auch die REST-API verwenden, um Datenflussparameter zu ermitteln und zu verstehen, was der Dataflow erwartet, damit er eine Ausführung auslösen kann. In diesem Lernprogramm verwenden Sie die Erfahrung in der Dataflow-Aktivität für Fabric-Pipelines. Erstellen Sie zunächst eine Pipeline, und fügen Sie dem Zeichenbereich eine neue Datenflussaktivität hinzu. Suchen Sie in den Einstellungen der Aktivität den Arbeitsbereich, in dem sich Ihr Dataflow befindet, und wählen Sie dann den Dataflow aus der Dropdownliste aus.

Screenshot der Dataflow-Aktivität mit Parametern innerhalb einer Pipeline.

Ein Abschnitt "Dataflow-Parameter" kann erweitert werden, um alle verfügbaren Parameter im Dataflow und deren Standardwerte anzuzeigen. Sie können hier alle Werte ersetzen, und die übergebenen Werte werden verwendet, um zu definieren, welche Quellen, Logik und Ziel zum Auswerten der Datenflussausführung verwendet werden sollen. Sie können auch neue Szenarien ausprobieren, indem Sie ein neues Warehouse erstellen und die WarehouseId für die Auswertung ändern oder dieses Muster in einer Bereitstellungspipeline verwenden, in der die WorkspaceId und andere Parameter übergeben werden müssen, um auf die richtigen Elemente in der entsprechenden Umgebung zu verweisen.