Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
Dit artikel richt zich op een oplossingsarchitectuur van CI/CD- en ALM-oplossingsarchitecturen voor Dataflow Gen2 die afhankelijk is van de functie voor de modus openbare parameters en alleen van toepassing is op Dataflow Gen2 met CI/CD-ondersteuning.
Met parameters in Fabric Dataflow Gen2 kunt u herbruikbare invoer definiëren die vormgeven hoe een gegevensstroom is ontworpen en met de openbare parametersmodus kunnen deze invoer tijdens runtime worden ingesteld via pijplijnen of API's. Het maakt één gegevensstroom zeer flexibel en veelzijdig, omdat u dezelfde logica in veel scenario's eenvoudigweg kunt hergebruiken door verschillende waarden door te geven, dynamische, geautomatiseerde werkstromen mogelijk te maken zonder de transformaties te hoeven herschrijven of dupliceren.
In deze zelfstudie wordt uitgelegd hoe u het volgende kunt doen:
- Een bron parameteriseren: Een Lakehouse gebruiken met de WideWorldImpoters-voorbeeldgegevensset als de bron
- Logica parameteriseren: de invoerwidgets gebruiken die beschikbaar zijn in de gegevensstroom
- Bestemming parameteriseren: een magazijn gebruiken als bestemming
- Verzend een uitvoeringsaanvraag met parameterwaarden: parameterwaarden doorgeven via de gegevensstroomactiviteit in een Fabric-pijplijn
Opmerking
De concepten die in dit artikel worden weergegeven, zijn universeel voor Dataflow Gen2 en zijn van toepassing op andere bronnen en bestemmingen buiten de bronnen die hier worden weergegeven.
Het scenario
De gegevensstroom die in dit scenario wordt gebruikt, is eenvoudig, maar de belangrijkste principes die worden beschreven, zijn van toepassing op alle typen gegevensstromen. Deze maakt verbinding met de tabel met de naam dimension_city uit de wide World Importers-voorbeeldgegevensset die is opgeslagen in een Lakehouse. Hiermee worden rijen gefilterd waarbij de kolom SalesTerritory gelijk is aan Zuidoost en het resultaat wordt geladen in een nieuwe tabel met de naam Plaats in een magazijn. Alle onderdelen( lakehouse, magazijn en gegevensstroom) bevinden zich in dezelfde werkruimte. Als u de gegevensstroom dynamisch wilt maken, parameteriseert u de brontabel, de filterwaarde en de doeltabel. Met deze wijzigingen kan de gegevensstroom worden uitgevoerd met specifieke waarden in plaats van vastgelegde waarden.
Voordat u doorgaat, schakelt u de modus Openbare parameters in door naar het tabblad Start te gaan, Opties te selecteren en in de sectie Parameters het selectievakje Parameters in te schakelen met het label Parameters inschakelen die moeten worden gedetecteerd en overschreven voor uitvoering en dat uw gegevensstroom parameters kan accepteren tijdens de uitvoering.
Bron parameteriseren
Bij het gebruik van een van de Fabric-connectors, zoals Lakehouse, Warehouse of Fabric SQL, volgen ze allemaal dezelfde navigatiestructuur en gebruiken ze dezelfde invoerindeling. In dit scenario is voor geen van de connectors handmatige invoer vereist om een verbinding tot stand te brengen. Elke werkruimte en het item waarmee deze verbinding maakt, worden echter weergegeven via de navigatiestappen in uw query. De eerste navigatiestap bevat bijvoorbeeld de workspaceId waarmee de query verbinding maakt.
Het doel is om de vastgelegde waarden in de formulebalk te vervangen door parameters. U moet met name één parameter maken voor de WorkspaceId en een andere voor de LakehouseId. Als u parameters wilt maken, gaat u naar het tabblad Start op het lint, selecteert u Parameters beheren en kiest u vervolgens Nieuwe parameter in de vervolgkeuzelijst.
Wanneer u de parameters maakt, moet u ervoor zorgen dat beide zijn gemarkeerd als vereist en zijn ingesteld op het teksttype . Gebruik voor de huidige waarden de waarden die overeenkomen met de overeenkomende waarden uit uw specifieke omgeving.
Zodra beide parameters zijn gemaakt, kunt u het queryscript bijwerken om ze te gebruiken in plaats van vastgelegde waarden. Hierbij moet u de oorspronkelijke waarden in de formulebalk handmatig vervangen door verwijzingen naar de parameters Werkruimte-id en Lakehouse-id. Het oorspronkelijke queryscript ziet er als volgt uit:
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"
Zodra u de verwijzingen in de navigatiestappen hebt bijgewerkt, ziet het nieuwe bijgewerkte script er mogelijk als volgt uit:
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"
En u ziet dat de voorbeeldweergave van de gegevens nog steeds correct wordt geëvalueerd in de gegevensstroomeditor.
Logica parameteriseren
Nu de bron parameters gebruikt, kunt u zich richten op het parameteriseren van de transformatielogica van de gegevensstroom. In dit scenario is de filterstap waar de logica wordt toegepast en de waarde die wordt gefilterd, momenteel vastgelegd als Zuidoost, moet worden vervangen door een parameter. Hiervoor maakt u een nieuwe parameter met de naam Territory, stelt u het gegevenstype in op tekst, markeert u deze als niet vereist en stelt u de huidige waarde in op Mideast.
Aangezien de filterstap is gemaakt met behulp van de gebruikersinterface, kunt u naar de stap Gefilterde rijen gaan, deze dubbel selecteren en het dialoogvenster Instellingen voor de filterstap ophalen. Met dit dialoogvenster kunt u via de invoerwidget een parameter selecteren in plaats van een statische waarde:
Nadat u de optie voor het selecteren van een parameter hebt geselecteerd, wordt er een vervolgkeuzelijst weergegeven met alle beschikbare parameters die overeenkomen met het vereiste gegevenstype. In deze lijst kunt u de zojuist gemaakte territory-parameter selecteren.
Zodra u OK hebt geselecteerd, ziet u dat de diagramweergave al de koppeling heeft gemaakt tussen de zojuist gemaakte parameter en de query die wordt gebruikt. Niet alleen dat, maar het gegevensvoorbeeld toont u nu informatie voor het Midden-Oosten-gebied.
Doel parameteriseren
Opmerking
Het is raadzaam om kennis te maken met het concept van gegevensbestemmingen in Dataflow Gen2 en hoe het mashup-script wordt gemaakt vanuit het artikel over gegevensbestemmingen en beheerde instellingen
Het laatste onderdeel dat u in dit scenario wilt parameteriseren, is de bestemming. Hoewel de informatie over de gegevensbestemming te vinden is in de Dataflow-editor, moet u hiervoor Git of de REST API gebruiken om dit deel van de gegevensstroom te parameteriseren.
In deze zelfstudie leert u hoe u de wijzigingen kunt aanbrengen via Git. Voordat u wijzigingen kunt aanbrengen via Git, moet u het volgende doen:
- Maak een parameter met de naam WarehouseId: zorg ervoor dat u de bijbehorende id van uw magazijn gebruikt als de huidige waarde, stel deze in als vereist en van het gegevenstype tekst.
- Sla de Gegevensstroom op: gebruik de knop Opslaan op het tabblad Startmenu van het lint.
Zodra uw gegevensstroom is opgeslagen, moet u de wijzigingen doorvoeren in uw Git-opslagplaats en naar uw opslagplaats gaan om het mashup.pq-bestand van uw gegevensstroom te bekijken. Wanneer u naar het mashup.pq-bestand kijkt, zoekt u naar de query waarmee u de gegevensbestemming hebt gekoppeld. In dit scenario is de naam van die query dimension_city. U ziet een recordkenmerk boven deze querynaam:
[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
Deze kenmerkrecord heeft een veld met de naam QueryName, dat de naam bevat van de query waaraan alle logica voor de gegevensbestemming voor deze query is gekoppeld. Deze query ziet er als volgt uit:
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
U merkt dat dit script voor de bestemming, net als het script van de bron voor Lakehouse, een vergelijkbaar patroon heeft waarbij het de workspaceid en ook de warehouseId hardcodeert die moeten worden gebruikt. Vervang deze vaste waarden door de id's van de parameters en uw script ziet er als volgt uit:
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
U kunt deze wijziging nu doorvoeren en uw gegevensstroom bijwerken met behulp van de wijzigingen van uw gegevensstroom via de functie voor broncodebeheer in uw werkruimte. U kunt controleren of alle wijzigingen zijn doorgevoerd door uw gegevensstroom te openen en de gegevensbestemming en eventuele eerdere parameterverwijzingen te controleren die zijn toegevoegd. Hiermee voltooit u alle parameters van uw gegevensstroom en kunt u nu doorgaan met het uitvoeren van uw gegevensstroom door parameterwaarden door te geven voor uitvoering.
Aanvraag uitvoeren met parameterwaarden
U kunt de Rest API van Fabric gebruiken om een uitvoeringsaanvraag te verzenden met een aangepaste nettolading die uw parameterwaarden voor die specifieke uitvoeringsbewerking bevat. U kunt ook de REST API gebruiken om parameters voor gegevensstromen te detecteren en te begrijpen wat de gegevensstroom verwacht, zodat deze een uitvoering kan activeren. In deze handleiding maakt u gebruik van de mogelijkheden binnen de Dataflow-activiteit voor Fabric-pijplijnen. Begin met het maken van een pijplijn en voeg een nieuwe gegevensstroomactiviteit toe aan het canvas. Zoek in de instellingen van de activiteit de werkruimte waar uw gegevensstroom zich bevindt en selecteer vervolgens de gegevensstroom in de vervolgkeuzelijst.
Een sectie Gegevensstroomparameters kan worden uitgebreid om alle beschikbare parameters in de gegevensstroom en de bijbehorende standaardwaarden weer te geven. U kunt hier alle waarden vervangen en de waarden die worden doorgegeven, worden gebruikt om te definiëren welke bronnen, logica en bestemming moeten worden gebruikt om de uitvoering van uw gegevensstroom te evalueren. U kunt ook nieuwe scenario's proberen door een nieuw magazijn te maken en de WarehouseId te wijzigen voor de evaluatie of door dit patroon te gebruiken in een implementatiepijplijn waarin de WorkspaceId en andere parameters moeten worden doorgegeven om te verwijzen naar de juiste items in de bijbehorende omgeving.