Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Notat
Denne artikel fokuserer på en løsningsarkitektur fra CI/CD- og ALM-løsningsarkitekturer (Application Lifecycle Management) til Dataflow Gen2 , der er afhængig af integration af variable biblioteker og kun gælder for Dataflow Gen2 med CI/CD-understøttelse.
Strukturvariable biblioteker i Dataflow Gen2 muliggør centraliseret, genanvendelig konfigurationsstyring på tværs af miljøer. Ved at referere til variabler direkte i dine dataflowscripts kan du dynamisk justere funktionsmåde uden hardcode-værdier, hvilket er ideelt til CI/CD-arbejdsprocesser. Denne integration forenkler udrulningen på tværs af faser ved at tillade, at arbejdsområdespecifikke værdier (f.eks. Lakehouse- eller arbejdsområde-id'er) indsættes på kørselstidspunktet, hvilket gør dine dataflow mere tilpasningsdygtige og vedligeholdelsesvenlige.
I dette selvstudium gennemgås du en eksempelløsning, der bruger variabelreferencer i et dataflow, og viser dig, hvordan du:
- Angiv variabler: Brug af Fabric-variabelbibliotekerne og deres forskellige datatyper
- Variabeldrevet kilde: Brug af et Lakehouse med WideWorldImpoters-eksempeldatasættet som kilde
- Variabelbaseret logik: Brug af de inputwidgets, der er tilgængelige i hele dataflowoplevelsen
- Variabeldrevet destination: Brug af et lagersted som destination
Notat
De begreber, der vises i denne artikel, er universelle for Dataflow Gen2 og kan anvendes på andre kilder og destinationer ud over dem, der er vist her.
Scenariet
Det dataflow, der bruges i dette scenarie, er enkelt, men de beskrevne kerneprincipper gælder for alle typer dataflow. Den opretter forbindelse til tabellen med navnet dimension_city fra eksempeldatasættet Wide World Importers, der er gemt i et Lakehouse. Den filtrerer rader, hvor kolonnen SalesTerritory er lig med Sydøst, og indlæser resultatet i en ny tabel med navnet By på et lagersted. Alle komponenter – Lakehouse, Warehouse og Dataflow – er placeret i det samme arbejdsområde. Hvis du vil gøre dataflowet dynamisk, skal du bruge variabler til at drive kildetabellen, filterværdien og destinationstabellen. Disse ændringer gør det muligt for dataflowet at køre med værdier, der er gemt i Fabric-variabelbiblioteker i stedet for hardcodede.
Indstil variabler
Notat
Sørg for at have Fabric-variabelbiblioteker aktiveret for din organisation eller sikkerhedsgruppe. Få mere at vide om, hvordan du kommer i gang med variable biblioteker.
Som bedste praksis anbefales det altid at have et design i tankerne, før du opretter en løsning, og hvilke komponenter fra dit dataflow der dynamisk hentes fra et variabelbibliotek. Selvom du kan oprette flere biblioteker i et arbejdsområde, bruger dette eksempel et enkelt bibliotek med navnet Mit bibliotek , der indeholder de variabler, som Dataflow Gen2 bruger:
| Variabelnavn | Type | Purpose |
|---|---|---|
| WorkspaceId | GUID | Bruges til datakilden og destinationsscripts i dataflowet |
| LakehouseId | GUID | Bestemmer id'et for det søhus, der bruges som kilde |
| Lager-id | GUID | Bestemmer id'et for det lagersted, der bruges som destination |
| Territorium | String | Angiver, hvilken værdi der skal bruges til at drive filterlogikken i dataflowet |
Sørg for at angive de standardværdier, der svarer til dit eget miljø, og gem derefter variabelbiblioteket.
Variabel-drevet kilde
Når du bruger en af Fabric-connectorerne – f.eks. Lakehouse, Warehouse eller Fabric SQL – følger de alle den samme navigationsstruktur og bruger det samme inputformat. I dette scenarie kræver ingen af connectorerne manuelt input for at oprette en forbindelse. Hver enkelt viser dog, hvilket arbejdsområde og element den opretter forbindelse til via navigationstrinnene i forespørgslen. Det første navigationstrin indeholder f.eks. det workspaceId, som forespørgslen opretter forbindelse til.
Målet er at erstatte de hardcodede værdier i formellinjen med variabler. Du vil specifikt bruge variablerne WorkspaceId og LakehouseId til at drive denne logik. Først skal du overføre disse variabler til Dataflow Gen2. En anbefalet fremgangsmåde er at oprette forespørgsler for hver enkelt variabel for at centralisere og nemt administrere de variabler, du planlægger at bruge. Det gør du ved at oprette en tom forespørgsel ved at gå ind i posten Hent data på båndet og vælge indstillingen Tom forespørgsel i rullemenuen.
Hvis du vælger denne indstilling, vises en ny dialogboks, hvor du kan se den tomme forespørgsel, der er oprettet. Du kan vælge OK for at hente denne nye tomme forespørgsel.
Når din forespørgsel er oprettet og vises i dataflowet, skal du omdøbe den til WorkspaceId og erstatte formlen i trinnet Kilde, så den bliver:
Variable.ValueOrDefault("$(/**/My Library/WorkspaceId)", "Your Workspace ID")
Dette script er grundlæggende det, der er i stand til at bestemme, hvilket bibliotek og hvilken variabel der skal hentes. Det andet argument i Variable.ValueOrDefault funktionen bestemmer, hvilken værdi der skal angives, når en variabel ikke kan hentes.
Notat
Sørg for at erstatte strengen "Dit arbejdsområde-id", det andet argument i funktionen, med din egen tilsvarende værdi i dit miljø, og gem forespørgslen.
Gentag denne proces for variablen LakehouseId , og opret en forespørgsel med samme navn som variablen, men brug følgende formel til trinnet Kilde:
Variable.ValueOrDefault("$(/**/My Library/LakehouseId)", "Your Lakehouse ID")
Notat
Sørg for at erstatte strengen "Dit Lakehouse-id", det andet argument for funktionen, med din egen tilsvarende værdi i dit miljø, og gem forespørgslen.
Når begge forespørgsler er oprettet, kan du opdatere forespørgselsscriptet, så det bruger dem i stedet for hardcodede værdier. Dette indebærer, at de oprindelige værdier på formellinjen manuelt erstattes med referencer til forespørgslerne WorkspaceId og LakehouseId. Det oprindelige forespørgselsscript ser sådan ud:
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"
Når du har opdateret referencerne i navigationstrinnene, kan dit nye opdaterede script se sådan ud:
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"
Og du bemærker, at den stadig evaluerer dataeksemplet korrekt i datafloweditoren med de direkte referencer, der er oprettet i diagramvisningen mellem alle de involverede forespørgsler:
Variabel-drevet logik
Nu, hvor kilden bruger variabler, kan du fokusere på at ændre transformationslogikken for dataflowet. I dette scenarie er filtertrinnet det sted, hvor logikken anvendes, og den værdi, der filtreres, og som i øjeblikket er hardcodet som Sydøst, skal erstattes med en forespørgsel, der refererer til en variabel. Det gør du ved at gentage den samme proces med at oprette en ny tom forespørgsel og genbruge formlen for trinnet Kilde til at indeholde variablen for Distrikt og også ændre navnet på forespørgslen til variabelnavnet. Brug følgende script:
Variable.ValueOrDefault("$(/**/My Library/Territory)", "Mideast")
I betragtning af at dit filtertrin blev oprettet ved hjælp af brugergrænsefladen, kan du gå over til trinnet Filtrerede rækker, dobbeltvælge det og få indstillingsdialogen for filtertrinnet. Denne dialog giver dig mulighed for via inputwidgetten at vælge, om du vil bruge en forespørgsel i stedet for en statisk værdi:
Når du har valgt indstillingen Vælg en forespørgsel, vises en rullemenu, der viser alle forespørgsler, du kan vælge imellem. På denne liste kan du vælge den nyoprettede distriktsforespørgsel .
Når du har valgt OK, skal du bemærke, at diagramvisningen allerede har oprettet linket mellem distriktsforespørgslen og den anvendte forespørgsel. Ikke kun det, men dataeksemplet viser dig nu oplysninger om Mellemøsten .
Variabel-drevet destination
Notat
Det anbefales, at du sætter dig ind i begrebet datadestinationer i Dataflow Gen2, og hvordan dets miksscript oprettes ud fra artiklen om datadestinationer og administrerede indstillinger
Den sidste komponent, der skal ændres i dette scenarie, er destinationen. For at gøre dette bruger du funktionen Advanced Edit for Data destination Queries , som lader dig ændre destinationsforespørgselsscriptet direkte i Dataflow-editoren ved hjælp af Power Query M-koden.
Før du begynder, skal du oprette en forespørgsel til variablen WarehouseId . Følg samme proces beskrevet i tidligere afsnit for at oprette en ny tom forespørgsel og erstatte formlen for Kilde-trinnet til at være:
Variable.ValueOrDefault("$(/**/My Library/WarehouseId)", "Your Warehouse ID")
Notat
Sørg for at erstatte strengen "Dit lagersteds-id", det andet argument for funktionen, med din egen tilsvarende værdi i dit miljø, og gem forespørgslen.
Vigtige oplysninger
Sørg for, at alle dine forespørgsler, der indeholder en variabel, har midlertidig inddeling deaktiveret.
Aktivér avanceret redigering for datadestinationsforespørgsler
For at ændre destinationsforespørgslen direkte i Dataflow-editoren skal du først aktivere den avancerede redigeringsfunktion:
Vælg Indstillinger fra fanen Hjem i båndet.
I dialogen Indstillinger skal du scrolle ned til sektionen Datadestinationer .
Vælg afkrydsningsboksen for Aktiver avanceret redigering for datadestinationsforespørgsler.
En advarselsdialog vises, der forklarer, at ændring af destinationsforespørgsler kan forårsage uventet adfærd eller bryde dataflowet. Læs advarslen grundigt og vælg OK for at bekræfte.
Vælg OK for at lukke dialogen Indstillinger.
Ændr destinationsforespørgslen
Når du har aktiveret avanceret redigering, kan du få adgang til og ændre destinationsforespørgslen for din datadestination:
I panelet Forespørgsler skal du finde datadestinationssektionen, der viser dine konfigurerede destinationer.
Højreklik på destinationsforespørgslen kaldet dimension_city.
Fra kontekstmenuen vælger du Avanceret editor.
Destinationsforespørgslen ser således ud:
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
Ligesom scriptet til kildekoden til Lakehouse har dette script til destinationen et lignende mønster, hvor det hardkoder workspaceId og warehouseId. Erstat disse faste værdier med identifikatorerne for de forespørgsler, du har oprettet, og dit script ser således ud:
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
Vælg OK for at gemme dine ændringer i den avancerede editor.
Vigtige oplysninger
Efter du har ændret en destinationsforespørgsel ved hjælp af avanceret redigering, virker standardbrugerfladen til at ændre destinationen ikke længere. Du skal fortsætte med at bruge den avancerede editor til yderligere ændringer af den destination. For mere information, se Avanceret redigering for datadestinationsforespørgsler.
Du kan nu køre dit dataflow, som bruger værdier fra variabelbiblioteker.