Udostępnij przez


Sparametryzowany przepływ danych Gen2

Uwaga / Notatka

Ten artykuł koncentruje się na architekturze rozwiązań z zakresu CI/CD i ALM (Zarządzanie Cyklem Życia Aplikacji) dla usługi Dataflow Gen2, która opiera się na funkcji trybu parametrów publicznych i ma zastosowanie wyłącznie do usługi Dataflow Gen2 z obsługą CI/CD.

Parametry w usłudze Fabric Dataflow Gen2 umożliwiają definiowanie danych wejściowych wielokrotnego użytku, które kształtują sposób projektowania przepływu danych, a tryb parametrów publicznych może być ustawiany w czasie wykonywania za pośrednictwem potoków lub interfejsów API. Sprawia to, że pojedynczy przepływ danych jest wysoce elastyczny i wszechstronny, ponieważ można ponownie użyć tej samej logiki w wielu scenariuszach, przekazując różne wartości, włączając dynamiczne, zautomatyzowane przepływy pracy bez konieczności ponownego zapisywania lub duplikowania przekształceń.

W tym samouczku przedstawiono przykład pokazujący, jak wykonać następujące kroki:

  • Parametryzowanie źródła: używanie usługi Lakehouse z przykładowym zestawem danych WideWorldImpoters jako źródłem
  • Logika parametryzacji: korzystanie z widżetów wejściowych dostępnych w środowisku przepływu danych
  • Parametryzowanie miejsca docelowego: używanie magazynu jako miejsca docelowego
  • Prześlij żądanie uruchomienia z wartościami parametrów: przekazywanie wartości parametrów za pośrednictwem środowiska działania Dataflow wewnątrz potoku Fabric

Diagram architektury sparametryzowanego przepływu danych w usłudze Dataflow Gen2.

Uwaga / Notatka

Koncepcje przedstawione w tym artykule są uniwersalne dla usługi Dataflow Gen2 i mają zastosowanie do innych źródeł i miejsc docelowych poza tymi przedstawionymi tutaj.

Scenariusz

Zrzut ekranu zapytania o nazwie dimension_city dla scenariusza w Dataflow Gen2.

Przepływ danych używany w tym scenariuszu jest prosty, ale podstawowe zasady opisane w tym scenariuszu dotyczą wszystkich typów przepływów danych. Łączy się z tabelą o nazwie dimension_city z przykładowego zestawu danych Wide World Importers przechowywanego w Lakehouse. Filtruje wiersze, w których kolumna SalesTerritory jest równa Południowo-Wschodniej i ładuje wynik do nowej tabeli o nazwie Miasto w magazynie. Wszystkie składniki — Lakehouse, Warehouse i Dataflow — znajdują się w tym samym obszarze roboczym. Aby ustawić dynamiczny przepływ danych, należy sparametryzować tabelę źródłową, wartość filtru i tabelę docelową. Te zmiany umożliwiają uruchamianie przepływu danych z określonymi wartościami zamiast zakodowanych na stałe.

Przed kontynuowaniem włącz tryb parametrów publicznych, przechodząc do karty Strona główna, wybierając pozycję Opcje i w sekcji Parametry, zaznacz pole wyboru z etykietą Umożliwiaj odnajdywanie i zastępowanie parametrów do wykonania, a następnie umożliwiaj przepływowi danych przyjmowanie parametrów podczas wykonywania.

Zrzut ekranu przedstawiający okno dialogowe opcji w Dataflow Gen2 z sekcją Parametry i ustawieniem

Parametryzacja źródła

W przypadku korzystania z dowolnego łącznika sieci szkieletowej, takiego jak Lakehouse, Warehouse lub Fabric SQL, wszystkie te łączniki są zgodne z tą samą strukturą nawigacji i używają tego samego formatu danych wejściowych. W tym scenariuszu żaden z łączników nie wymaga ręcznego wejścia w celu nawiązania połączenia. Jednak każdy z nich pokazuje, z którym obszarem roboczym i elementem jest połączony poprzez etapy nawigacji w zapytaniu. Na przykład pierwszy krok nawigacji zawiera identyfikator workspaceId, z którymi nawiązuje połączenie zapytanie.

Zrzut ekranu przedstawiający krok Nawigacji 1 z wartością workspaceId na pasku formuły dla zapytania dimension_city.

Celem jest zastąpienie wartości zakodowanych na stałe na pasku formuły parametrami. W szczególności należy utworzyć jeden parametr dla identyfikatora WorkspaceId , a drugi dla identyfikatora LakehouseId. Aby utworzyć parametry, przejdź do karty Narzędzia główne na wstążce, wybierz pozycję Zarządzaj parametrami, a następnie z menu rozwijanego wybierz pozycję Nowy parametr .

Zrzut ekranu przedstawiający wpis na karcie Strona główna w celu utworzenia nowego parametru.

Podczas tworzenia parametrów upewnij się, że oba są oznaczone jako wymagane i ustawione na typ tekstu . Dla ich bieżących wartości użyj tych, które pasują do odpowiednich wartości z określonego środowiska.

Zrzut ekranu przedstawiający parametr LakehouseId utworzony w oknie dialogowym Zarządzanie parametrami.

Po utworzeniu obu parametrów można zaktualizować skrypt zapytania, aby używał ich zamiast wartości zakodowanych na stałe. Obejmuje to ręczne zastąpienie oryginalnych wartości na pasku formuły odwołaniami do parametrów Identyfikator obszaru roboczego i Identyfikator Lakehouse. Oryginalny skrypt zapytania wygląda następująco:

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"

Po zaktualizowaniu odwołań w krokach nawigacji nowy zaktualizowany skrypt może wyglądać następująco:

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"

Zauważysz, że nadal prawidłowo ocenia podgląd danych w edytorze przepływów danych.

Parametryzowanie logiki

Teraz, gdy źródło używa parametrów, możesz skoncentrować się na sparametryzowaniu logiki procesu przepływu danych. W tym scenariuszu krok filtru polega na tym, że logika jest stosowana, a filtrowana wartość, obecnie zakodowana jako Południowo-Wschodnia, powinna zostać zastąpiona parametrem . W tym celu utwórz nowy parametr o nazwie Territory, ustaw jego typ danych na tekst, oznacz go jako niezamagany i ustaw jego bieżącą wartość na Mideast.

Zrzut ekranu przedstawiający parametr Territory utworzony w oknie dialogowym Zarządzanie parametrami.

Biorąc pod uwagę, że krok filtru został utworzony przy użyciu interfejsu użytkownika, możesz przejść do kroku Przefiltrowane wiersze, dwukrotnie go zaznaczyć i uzyskać okno dialogowe ustawień dla kroku filtru. To okno dialogowe umożliwia wybranie widżetu wejściowego, jeśli chcesz użyć parametru zamiast wartości statycznej:

Zrzut ekranu przedstawiający widżet wejściowy w oknie dialogowym wierszy filtru z opcją odwołania do parametru.

Po wybraniu opcji Wybierz parametr zostanie wyświetlona lista rozwijana, aby wyświetlić wszystkie dostępne parametry zgodne z wymaganym typem danych. Z tej listy możesz wybrać nowo utworzony parametr Territory.

Zrzut ekranu przedstawiający parametr Territory wybrany w widżecie danych wejściowych w oknie dialogowym filtrowania wierszy.

Po wybraniu przycisku OK zwróć uwagę, że widok diagramu utworzył już link między nowo utworzonym parametrem a używanym zapytaniem. Nie tylko to, ale podgląd danych zawiera teraz informacje o terytorium Środkowym.

Zrzut ekranu przedstawiający widok diagramu, ustawienia zapytania i podgląd danych dla zapytania dimension_city pokazującego dane dla mideast SalesTerritory.

Parametryzacja miejsca docelowego

Uwaga / Notatka

Zaleca się zapoznanie się z koncepcją miejsc docelowych danych w usłudze Dataflow Gen2 oraz sposobem tworzenia skryptu mashupu z artykułu na temat miejsc docelowych danych i ustawień zarządzanych

Ostatnim składnikiem do sparametryzowania w tym scenariuszu jest miejsce docelowe. Podczas gdy informacje o miejscu docelowym danych można znaleźć w edytorze przepływu danych, aby sparametryzować tę część przepływu danych, musisz użyć usługi Git lub interfejsu API REST.

Zrzut ekranu przedstawiający okno wysuwane zawierające ustawienia lokalizacji docelowej danych dla zapytania dimension_city.

W tym samouczku pokazano, jak wprowadzać zmiany za pomocą usługi Git. Przed wprowadzeniem zmian za pomocą narzędzia git upewnij się, że:

  • Utwórz parametr o nazwie WarehouseId: upewnij się, że jako bieżącą wartość użyj odpowiedniego identyfikatora magazynu, ustaw go zgodnie z potrzebami i typu danych tekstowych.
  • Zapisz przepływ danych: użyj przycisku Zapisz na karcie Strona główna na wstążce.

Zrzut ekranu przedstawiający przycisk zapisywania przepływu danych.

Po zapisaniu Dataflow upewnij się, że zatwierdzisz zmiany w repozytorium Git i przejdź do repozytorium, aby wyświetlić plik mashup.pq Dataflow. Podczas przeglądania pliku mashup.pq poszukaj zapytania skojarzonego z miejscem docelowym danych. W tym scenariuszu nazwa tego zapytania jest dimension_city. Zostanie wyświetlony atrybut rekordu powyżej tej nazwy zapytania:

[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

Ten rekord atrybutu ma pole o nazwie QueryName, które zawiera nazwę zapytania, które ma całą logikę docelową danych skojarzona z tym zapytaniem. To zapytanie wygląda następująco:

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

Zauważysz, że podobnie jak skrypt źródła dla usługi Lakehouse, ten skrypt dla miejsca docelowego ma podobny wzorzec, w którym koduje identyfikator workspaceid, który musi być używany, a także warehouseId. Zastąp te stałe wartości identyfikatorami parametrów, a skrypt powinien wyglądać następująco:

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

Teraz możesz zatwierdzić tę zmianę i zaktualizować przepływ danych, korzystając ze zmian w nim poprzez funkcję kontroli źródła w obszarze roboczym. Możesz sprawdzić, czy wszystkie zmiany zostały wprowadzone, otwierając przepływ danych i przeglądając lokalizację docelową danych oraz wszystkie poprzednie odwołania do parametrów, które zostały dodane. Spowoduje to sfinalizowanie wszystkich parametrów przepływu danych. Teraz można przejść do uruchamiania przepływu danych, przekazując wartości parametrów do wykonania.

Uruchamianie żądania z wartościami parametrów

Za pomocą interfejsu API REST sieci szkieletowej możesz wysłać żądanie uruchomienia z niestandardowym ładunkiem zawierającym wartości parametrów dla tej konkretnej operacji uruchamiania, a także użyć interfejsu API REST do odnajdywania parametrów przepływu danych i zrozumienia, czego oczekuje przepływ danych, aby mógł wyzwolić przebieg. W tym samouczku użyjesz doświadczenia w ramach aktywności Przepływ danych dla potoków Fabric. Zacznij od utworzenia potoku i dodania nowego działania przepływu danych do kanwy. W ustawieniach działania znajdź obszar roboczy, w którym znajduje się przepływ danych, a następnie wybierz przepływ danych z listy rozwijanej.

Zrzut ekranu przedstawiający aktywność Dataflow z parametrami wewnątrz pipeline'u.

Sekcję Parametry przepływu danych można rozwinąć, aby wyświetlić wszystkie dostępne parametry w przepływie danych i ich wartości domyślne. W tym miejscu można zastąpić wszystkie wartości, a przekazane wartości zostaną użyte do zdefiniowania źródeł, logiki i miejsca docelowego do oceny przebiegu przepływu danych. Możesz także wypróbować nowym scenariuszom poprzez utworzenie nowego magazynu i zmienić identyfikator WarehouseId na potrzeby oceny lub używając tego wzorca w potoku wdrażania, w którym należy przekazać identyfikator WorkspaceId i inne parametry, by wskazać właściwe elementy w odpowiednim środowisku.