Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 der Integration von Variablenbibliotheken basiert und nur für Dataflow Gen2 mit CI/CD-Unterstützung gilt.
Fabric-Variablenbibliotheken in Dataflow Gen2 ermöglichen die zentrale, wiederverwendbare Konfigurationsverwaltung in allen Umgebungen. Indem Sie direkt in Ihren Datenflussskripten auf Variablen verweisen, können Sie das Verhalten dynamisch anpassen, ohne hartcodierte Werte zu verwenden, was ideal für CI/CD-Workflows ist. Diese Integration vereinfacht die Bereitstellung über Phasen hinweg, indem arbeitsbereichspezifische Werte (z. B. Lakehouse- oder Workspace-IDs) zur Laufzeit eingefügt werden können, wodurch Ihre Datenflüsse anpassbarer und verwalteter werden können.
Dieses Lernprogramm führt Sie durch eine Beispiellösung, die Variablenverweise in einem Dataflow verwendet, und zeigt Ihnen, wie Sie:
- Festlegen von Variablen: Verwenden der Fabric-Variablenbibliotheken und ihrer unterschiedlichen Datentypen
- Variabel gesteuerte Quelle: Ein Lakehouse mit dem WideWorldImporters-Beispieldatensatz als Quelle verwenden
- Variable gesteuerte Logik: Verwenden der Eingabe-Widgets, die im gesamten Bereich der Dataflow-Erfahrung verfügbar sind
- Variablengetriebenes Ziel: Nutzung eines Lagers als Ziel
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
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, verwenden Sie Variablen, um die Quelltabelle, den Filterwert und die Zieltabelle zu steuern. Diese Änderungen ermöglichen die Ausführung des Datenflusses mit Werten, die in Fabric-Variablenbibliotheken gespeichert sind, anstelle hartcodierter.
Festlegen von Variablen
Hinweis
Stellen Sie sicher, dass Fabric-Variablenbibliotheken für Ihre Organisation oder Sicherheitsgruppe aktiviert sind. Erfahren Sie mehr über die ersten Schritte mit Variablenbibliotheken.
Als bewährte Methode empfiehlt es sich immer, vor dem Erstellen einer Lösung einen Entwurf zu berücksichtigen und welche Komponenten aus Ihrem Dataflow dynamisch aus einer Variablenbibliothek stammen. Während Sie mehrere Bibliotheken in einem Arbeitsbereich erstellen können, verwendet dieses Beispiel eine einzelne Bibliothek mit dem Namen "Meine Bibliothek" , die die Variablen enthält, die von der Dataflow Gen2 verwendet werden:
| Variablenname | Typ | Zweck |
|---|---|---|
| WorkspaceId | Leitfaden | Wird für die Datenquellen- und Zielskripts im Dataflow verwendet |
| LakehouseId | Leitfaden | Ermittelt die ID des Lakehouses, das als Quelle genutzt wird. |
| WarehouseId | Leitfaden | Bestimmt die ID des Lagers, das als Ziel verwendet wird. |
| Gebiet | String | Legt fest, welcher Wert verwendet werden soll, um die Filterlogik im Dataflow zu steuern. |
Stellen Sie sicher, dass Sie die Standardwerte festlegen, die Ihrer eigenen Umgebung entsprechen, und speichern Sie dann die Variablebibliothek.
Variable gesteuerte Quelle
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.
Ziel ist es, die festkodierten Werte in der Formelleiste durch Variablen zu ersetzen. Insbesondere möchten Sie die Variablen WorkspaceId und LakehouseId verwenden, um diese Logik zu steuern. Zunächst müssen Sie diese Variablen in die Dataflow Gen2 übertragen. Ein empfohlener Ansatz besteht darin, Abfragen für jede unterschiedliche Variable zu erstellen, um variablen zu zentralisieren und einfach zu verwalten, die Sie verwenden möchten. Erstellen Sie dazu eine leere Abfrage, indem Sie im Menüband " Daten abrufen" aufrufen und im Dropdownmenü die Option "Leere Abfrage" auswählen.
Wenn Sie diese Option auswählen, wird ein neues Dialogfeld angezeigt, in dem die leere Abfrage angezeigt wird, die erstellt wird. Sie können "OK" auswählen, um diese neue leere Abfrage mitzubringen.
Nachdem Ihre Abfrage erstellt und im Datenfluss angezeigt wurde, benennen Sie sie in "WorkspaceId" um, und ersetzen Sie die Formel im Quellschritt wie folgt:
Variable.ValueOrDefault("$(/**/My Library/WorkspaceId)", "Your Workspace ID")
Dieses Skript ist im Grunde der, der bestimmen kann, welche Bibliothek und Variable abgerufen werden soll. Das zweite Argument der Variable.ValueOrDefault Funktion bestimmt, welcher Wert bereitgestellt werden soll, wenn eine Variable nicht abgerufen werden kann.
Hinweis
Ersetzen Sie die Zeichenfolge "Ihre Arbeitsbereichs-ID", das zweite Argument der Funktion, durch ihren eigenen entsprechenden Wert in Ihrer Umgebung und speichern Sie die Abfrage.
Wiederholen Sie diesen Vorgang für die LakehouseId-Variable , und erstellen Sie eine Abfrage mit demselben Namen wie die Variable, verwenden aber die folgende Formel für den Quellschritt:
Variable.ValueOrDefault("$(/**/My Library/LakehouseId)", "Your Lakehouse ID")
Hinweis
Stellen Sie sicher, dass Sie die Zeichenfolge "Your Lakehouse ID", das zweite Argument der Funktion, durch Ihren eigenen entsprechenden Wert in Ihrer Umgebung ersetzen und die Abfrage speichern.
Nachdem beide Abfragen erstellt wurden, können Sie das Abfrageskript aktualisieren, um sie anstelle hartcodierter Werte zu verwenden. Dazu müssen die ursprünglichen Werte in der Bearbeitungsleiste manuell durch Verweise auf die Abfragen "WorkspaceId" und "LakehouseId" ersetzt werden. 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 die Datenvorschau im Dataflow-Editor weiterhin korrekt ausgewertet wird, wobei die direkten Verweise, die in der Diagrammansicht erstellt wurden, zwischen allen beteiligten Abfragen verwendet werden:
Variablengesteuerte Logik
Nachdem die Quelle Variablen verwendet, können Sie sich nun auf die Änderung 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üdosten hartcodiert wird, sollte durch eine Abfrage ersetzt werden, die auf eine Variable verweist. Zu diesem Zweck wiederholen Sie denselben Vorgang zum Erstellen einer neuen leeren Abfrage und verwenden die Formel des Quellschritts, um die Variable für "Territory" zu speichern und den Namen der Abfrage auch in den Variablennamen zu ändern. Verwenden Sie das folgende Skript:
Variable.ValueOrDefault("$(/**/My Library/Territory)", "Mideast")
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 eine Abfrage anstelle eines statischen Werts verwenden möchten:
Nachdem Sie die Option zum Auswählen einer Abfrage ausgewählt haben, wird eine Dropdownliste angezeigt, um alle Abfragen anzuzeigen, aus denen Sie auswählen können. In dieser Liste können Sie die neu erstellte Territory-Abfrage auswählen.
Nachdem Sie "OK" ausgewählt haben, beachten Sie, dass die Diagrammansicht bereits die Verknüpfung zwischen der Abfrage "Gebiet" und der verwendeten Abfrage erstellt hat. Nicht nur das, aber in der Datenvorschau werden nun Informationen für das Mideast-Gebiet angezeigt.
Variablegesteuertes Ziel
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 Zu ändernde Komponente in diesem Szenario ist das Ziel. Dazu verwenden Sie das Feature "Erweiterte Bearbeitung für Datenzielabfragen ", mit dem Sie das Zielabfrageskript direkt im Dataflow-Editor mithilfe von Power Query M-Code ändern können.
Bevor Sie beginnen, erstellen Sie eine Abfrage für die WarehouseId-Variable . Folgen Sie dem in früheren Abschnitten beschriebenen Verfahren, um eine neue leere Abfrage zu erstellen und die Formel für den Quellschritt zu ersetzen:
Variable.ValueOrDefault("$(/**/My Library/WarehouseId)", "Your Warehouse ID")
Hinweis
Ersetzen Sie unbedingt die Zeichenfolge "Ihre Lager-ID", das zweite Argument der Funktion, durch ihren eigenen entsprechenden Wert in Ihrer Umgebung und speichern Sie die Abfrage.
Von Bedeutung
Stellen Sie sicher, dass alle Abfragen, die eine Variable enthalten, staging deaktiviert sind.
Erweiterte Bearbeitung für Datenzielabfragen aktivieren
Um die Zielabfrage direkt im Dataflow-Editor zu ändern, müssen Sie zuerst das Feature "Erweiterte Bearbeitung" aktivieren:
Wählen Sie " Optionen " auf der Registerkarte " Start " im Menüband aus.
Scrollen Sie im Dialogfeld "Optionen " nach unten zum Abschnitt "Datenziele ".
Aktivieren Sie das Kontrollkästchen zum Aktivieren der erweiterten Bearbeitung für Datenzielabfragen.
Es wird ein Warndialogfeld angezeigt, in dem erläutert wird, dass das Ändern von Zielabfragen zu unerwartetem Verhalten führen oder den Datenfluss unterbrechen kann. Lesen Sie die Warnung sorgfältig, und wählen Sie "OK " aus, um dies zu bestätigen.
Wählen Sie 'OK' aus, um das Dialogfeld "Optionen" zu schließen.
Ändern der Zielabfrage
Nachdem Sie die erweiterte Bearbeitung aktiviert haben, können Sie auf die Zielabfrage für Ihr Datenziel zugreifen und diese ändern:
Suchen Sie im Bereich "Abfragen " den Abschnitt "Datenziel", in dem Ihre konfigurierten Ziele angezeigt werden.
Klicken Sie mit der rechten Maustaste auf die Zielabfrage mit dem Namen dimension_city.
Wählen Sie im Kontextmenü den erweiterten Editor aus.
Die Zielabfrage sieht wie folgt aus:
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
Ähnlich wie das Skript der Quelle für das Lakehouse weist dieses Skript für das Ziel ein ähnliches Muster auf, bei dem die workspaceId und warehouseId hartcodiert werden. Ersetzen Sie diese festen Werte durch die Bezeichner der von Ihnen erstellten Abfragen, und Ihr Skript sieht wie folgt aus:
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
Wählen Sie "OK" aus, um Ihre Änderungen im erweiterten Editor zu speichern.
Von Bedeutung
Nachdem Sie eine Zielabfrage mit erweiterter Bearbeitung geändert haben, funktioniert die Standardbenutzeroberfläche zum Ändern dieses Ziels nicht mehr. Sie müssen den erweiterten Editor weiterhin für weitere Änderungen an diesem Ziel verwenden. Weitere Informationen finden Sie unter "Erweiterte Bearbeitung für Datenzielabfragen".
Sie können jetzt Ihren Dataflow ausführen, der Werte aus Variablenbibliotheken verwendet.