Parametry usługi Data Factory w usłudze Microsoft Fabric

W tym artykule pokazano, jak używać parametrów w potokach usługi Data Factory w Fabric, aby można było tworzyć elastyczne przepływy pracy wielokrotnego użytku.

Używanie parametrów, wyrażeń i funkcji w potokach usługi Data Factory

W tej sekcji przedstawiono podstawy tworzenia sparametryzowanych potoków w usłudze Data Factory dla Fabric, korzystając z jasnych przykładów po drodze. Parametry i wyrażenia dynamiczne oszczędzają czas i umożliwiają tworzenie elastycznych rozwiązań wyodrębniania, przekształcania, ładowania (ETL) lub wyodrębniania, ładowania, transformacji (ELT). Zmniejszają one stałe kodowanie i umożliwiają ponowne używanie obiektów i procesów, co ułatwia konserwację potoków i umożliwia szybsze dostarczanie nowych funkcji.

Pojęcia dotyczące parametrów i wyrażeń

Możesz używać parametrów do przekazywania wartości zewnętrznych do procesów przetwarzania danych. Po ustawieniu parametru jego wartość pozostaje taka sama w całym przebiegu. Parametry umożliwiają ponowne użycie tego samego potoku z różnymi wartościami za każdym razem. Parametrów można używać samodzielnie lub wewnątrz wyrażeń, przy czym ich wartości mogą być stałe albo obliczane w czasie działania potoku.

Wyrażenia mogą znajdować się w dowolnym miejscu w wartości ciągu i zawsze zwracać inną wartość ciągu. Na przykład, jeśli używasz @password, potok traktuje hasło jako parametr. Jeśli wartość jest wyrażeniem, usuń znak @, aby uzyskać rzeczywistą zawartość. Aby użyć ciągu, który zaczyna się od @, należy wpisać @@. W poniższych przykładach pokazano, jak to działa w praktyce.

Wartość parametru Result
"parameters" Zwracane są znaki "parametry".
"parameters[1]" Zwracane są znaki "parameters[1]".
"@@" Zwracany jest 1 ciąg znaków zawierający znak "@".
" @" Zwracany jest 2-znakowy ciąg zawierający znak @.

Wyrażenia mogą również pojawiać się w ciągach znaków dzięki interpolacji ciągów, gdzie ujmujesz wyrażenia w @{ ... }. Na przykład następujący ciąg zawiera wartości parametrów i literały ciągu:

"Imię: @{pipeline().parameters.firstName} Nazwisko: @{pipeline().parameters.lastName}"

Interpolacja ciągów zawsze zwraca ciąg. Jeśli na przykład zdefiniujesz myNumber jako 42 i myString jako foo:

Wartość parametru Result
"@pipeline().parameters.myString" Zwraca foo jako ciąg.
"@{pipeline().parameters.myString}" Zwraca foo jako ciąg.
"@pipeline().parameters.myNumber" Zwraca 42 jako liczbę .
"@{pipeline().parameters.myNumber}" Zwraca 42 jako ciąg .
"Odpowiedź brzmi: @{pipeline().parameters.myNumber}" Zwraca ciąg Answer is: 42.
"@concat('Odpowiedź brzmi: ', string(pipeline().parameters.myNumber))" Zwraca ciąg Answer is: 42
"Odpowiedź brzmi: @@{pipeline().parameters.myNumber}" Zwraca ciąg Answer is: @{pipeline().parameters.myNumber}.

Przykłady wyrażeń parametrów

Tworzenie i używanie parametrów

Aby utworzyć parametry, wybierz tło kanwy edytora potoków, a następnie wybierz kartę Parametry okna właściwości u dołu. Wybierz + New, aby dodać parametr do potoku oraz nadać mu nazwę, typ danych i wartość domyślną:

Zrzut ekranu przedstawiający edytor parametrów na stronach właściwości potoku.

Następnie możesz użyć parametru wszędzie tam, gdzie potok obsługuje zawartość dynamiczną. W tym przykładzie parametr dynamicznie udostępnia nazwę magazynu danych typu lakehouse na karcie Źródło stron właściwości działanie Kopiuj.

Zrzut ekranu przedstawiający kartę Źródło dla stron właściwości działania kopiowania, z wyróżnioną opcją Dodaj zawartość dynamiczną.

Zostanie otwarte okno Dodawanie zawartości dynamicznej. Służy do określania dowolnego rodzaju zawartości dynamicznej, w tym parametrów, zmiennych systemowych, funkcji lub zmiennych potoku. W tym przykładzie wybierzesz zdefiniowany wcześniej parametr, a okno zawartości dynamicznej zostanie automatycznie wypełnione poprawnym wyrażeniem w celu odwołania się do niego.

Zrzut ekranu przedstawiający okno Dodawanie zawartości dynamicznej z wybranym parametrem potoku.

Parametryzowanie połączeń

Aby sparametryzować połączenia w potokach, użyj globalnie unikatowego identyfikatora (GUID) połączenia, które ma zostać zamienione dynamicznie.

  1. Zanim dynamicznie zmodyfikujesz połączenie w potoku, pobierz identyfikator GUID połączenia, który chcesz ustawić.
  2. Przejdź do pozycji Ustawienia>Zarządzaj połączeniami i bramami.
  3. Znajdź nazwę połączenia i wybierz obok niej wielokropek (...).
  4. Wybierz pozycję Ustawienia i skopiuj identyfikator połączenia.
  5. Wklej identyfikator GUID do parametru ciągu i odwołaj się do tego parametru w wyrażeniu dynamicznym.

Przykład wyrażenia złożonego

Poniższe wyrażenie odwołuje się do głęboko zagnieżdżonego podpola danych wyjściowych działania. Aby odwołać się do parametru potoku, który jest interpretowany jako podpole, użyj składni [] zamiast operatora kropki (.), jak w przypadku subfield1 i subfield2.

@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*

Edytor zawartości dynamicznej

Edytor zawartości dynamicznej automatycznie uniknie znaków w zawartości po zakończeniu edycji. Na przykład następująca zawartość w edytorze zawartości to interpolacja ciągów z funkcją wyrażenia:

@{toUpper('myData')}

Edytor zawartości dynamicznej konwertuje poprzednią zawartość na następujące wyrażenie:

MYDATA

Używanie funkcji i zmiennych w wyrażeniach

Funkcje można wywoływać i używać zmiennych w wyrażeniach. Poniższe sekcje zawierają informacje o funkcjach, które mogą być używane w wyrażeniu.

Zmienne obszaru przepływu

Możesz odwoływać się do tych zmiennych systemowych w dowolnym miejscu w kodzie JSON potoku.

Nazwa zmiennej Description
@pipeline().DataFactory Nazwa obszaru roboczego, w którym działa przebieg potoku
@pipeline().Pipeline Nazwa pipeline'u
@pipeline().RunId Identyfikator określonego uruchomienia pipeline'u
@pipeline().TriggerId Identyfikator wyzwalacza, który wywołał pipeline
@pipeline().TriggerName Nazwa wyzwalacza, który wywołał potok
@pipeline().TriggerTime Czas uruchomienia wyzwalacza, który aktywował pipeline. Ta wartość oznacza czas, w którym wyzwalacz został faktycznie uruchomiony, aby uruchomić potok, i może się nieco różnić od zaplanowanego czasu uruchomienia wyzwalacza.
@pipeline().GroupId Identyfikator grupy, do której należy uruchomienie potoku. W Microsoft Fabric grupa jest kolekcją powiązanych zasobów, którymi zarządzasz razem. Grupy organizują i kontrolują dostęp do zasobów, co ułatwia zarządzanie uprawnieniami i monitorowanie działań w wielu potokach.
@pipeline()?.TriggeredByPipelineName Nazwa potoku, który wyzwala jego uruchomienie. Dotyczy sytuacji, gdy działanie Execute Pipeline powoduje uruchomienie potoku. Oblicza wartość null w innych przypadkach. Zanotuj znak zapytania po .@pipeline()
@pipeline()?.TriggeredByPipelineRunId Identyfikator uruchomienia potoku, który wyzwala uruchomienie potoku. Ma zastosowanie, gdy działanie Execute Pipeline uruchamia potok. Oblicza wartość null w innych przypadkach. Zanotuj znak zapytania po .@pipeline()

Note

Zmienne systemowe daty/godziny związane z wyzwalaczem (w zakresach potoku i wyzwalacza) zwracają daty uniwersalnego czasu koordynowanego (UTC) w formacie ISO 8601, na przykład 2017-06-01T22:20:00.4061448Z.

Funkcje łańcuchów znakowych

Aby pracować z ciągami, użyj tych funkcji ciągów, a także niektórych funkcji kolekcji. Funkcje ciągów działają tylko na ciągach.

Funkcja String Task
concat Połącz dwa lub więcej ciągów i zwróć połączony ciąg.
endsWith Sprawdź, czy ciąg kończy się określonym podciągem.
guid Wygeneruj unikatowy identyfikator globalny (GUID) jako ciąg.
indexOf Zwróć pozycję początkową dla podciągów.
lastIndexOf Zwróć pozycję początkową ostatniego wystąpienia podciągu.
replace Zastąp podciąg określonym ciągiem i zwróć zaktualizowany ciąg.
split Zwraca tablicę zawierającą podciągi oddzielone przecinkami od większego ciągu na podstawie określonego znaku ogranicznika w oryginalnym ciągu.
startsWith Sprawdź, czy ciąg rozpoczyna się od określonego podciągu.
substring Zwraca znaki z ciągu, zaczynając od określonej pozycji.
toLower Zwraca ciąg małymi literami.
toUpper Zwraca ciąg w formacie wielkiej litery.
trim Usuń spacje wiodące i końcowe z ciągu i zwróć zmieniony ciąg.

Funkcje odbioru

Aby pracować z kolekcjami, takimi jak tablice, ciągi i słowniki, użyj tych funkcji kolekcji.

Funkcja Collection Task
contains Sprawdź, czy kolekcja ma określony element.
empty Sprawdź, czy kolekcja jest pusta.
first Zwróć pierwszy element z kolekcji.
intersection Zwróć kolekcję zawierającą tylko wspólne elementy z określonych kolekcji.
join Zwróć ciąg zawierający wszystkie elementy z tablicy, oddzielone wskazanym znakiem.
last Zwróć ostatni element z kolekcji.
length Zwraca liczbę elementów w ciągu lub tablicy.
skip Usuń elementy rozpoczynające kolekcję i zwróć wszystkie pozostałe elementy.
take Zwracanie elementów z przodu kolekcji.
union Zwróć kolekcję, która ma wszystkie elementów z określonych kolekcji.

Funkcje logiczne

Użyj tych funkcji w warunkach, aby ocenić dowolny typ logiki.

Funkcja porównania logicznego Task
and Sprawdź, czy wszystkie wyrażenia są prawdziwe.
equals Sprawdź, czy obie wartości są równoważne.
greater Sprawdź, czy pierwsza wartość jest większa niż druga wartość.
greaterOrEquals Sprawdź, czy pierwsza wartość jest większa, czy równa drugiej wartości.
if Sprawdź, czy wyrażenie ma wartość true, czy false. Na podstawie wyniku należy zwrócić określoną wartość.
less Sprawdź, czy pierwsza wartość jest mniejsza niż druga wartość.
lessOrEquals Sprawdź, czy pierwsza wartość jest mniejsza, czy równa drugiej wartości.
not Sprawdź, czy wyrażenie jest fałszywe.
or Sprawdź, czy co najmniej jedno wyrażenie ma wartość true.

Funkcje konwersji

Użyj tych funkcji, aby przekonwertować między poszczególnymi typami natywnymi w języku:

  • ciąg
  • liczba całkowita
  • float
  • boolean
  • arrays
  • dictionaries
Funkcja konwersji Task
array Zwraca tablicę z pojedynczego określonego wejścia. Aby uzyskać wiele danych wejściowych, zobacz createArray.
base64 Zwróć wersję zakodowaną w formacie base64 dla ciągu.
base64ToBinary Zwróć wersję binarną dla ciągu zakodowanego w formacie base64.
base64ToString Zwraca wersję ciągu dla ciągu zakodowanego w formacie base64.
binary Zwraca wersję binarną dla wartości wejściowej.
bool Zwróć wersję logiczną dla wartości wejściowej.
coalesce Zwraca pierwszą wartość inną niż null z co najmniej jednego parametru.
createArray Zwraca tablicę z wielu danych wejściowych.
dataUri Zwraca identyfikator URI danych dla wartości wejściowej.
dataUriToBinary Zwróć wersję binarną identyfikatora URI danych.
dataUriToString Zwróć wersję ciągu dla identyfikatora URI danych.
decodeBase64 Zwraca wersję ciągu dla ciągu zakodowanego w formacie base64.
decodeDataUri Zwróć wersję binarną identyfikatora URI danych.
decodeUriComponent Zwraca ciąg, który zastępuje znaki ucieczki dekodowanym wersjami.
encodeUriComponent Zwróć ciąg, który zastępuje znaki niebezpieczne adresu URL znakami ucieczki.
float Zwraca liczbę zmiennoprzecinkową dla wartości wejściowej.
int Zwróć wersję całkowitą dla ciągu.
json Zwróć obiekt lub wartość typu JavaScript Object Notation (JSON) dla ciągu znaków lub formatu XML.
string Zwraca wersję ciągu dla wartości wejściowej.
uriComponent Zwróć wersję zakodowaną w formacie URI dla wartości wejściowej, zastępując znaki niebezpieczne adresu URL znakami ucieczki.
uriComponentToBinary Zwróć wersję binarną dla ciągu zakodowanego identyfikatorem URI.
uriComponentToString Zwróć wersję ciągu dla ciągu zakodowanego identyfikatorem URI.
xml Zwróć wersję XML dla ciągu znaków.
xpath Sprawdź kod XML dla węzłów lub wartości, które są zgodne z wyrażeniem XPath (XML Path Language) i zwraca pasujące węzły lub wartości.

Funkcje matematyczne

Użyj tych funkcji z obu typami liczb: liczbami całkowitymi i liczbami zmiennoprzecinkowymi.

Funkcja matematyczna Task
add Zwróć wynik z dodania dwóch liczb.
div Zwróć wynik z dzielenia dwóch liczb.
max Zwraca najwyższą wartość z zestawu liczb lub tablicy.
min Zwraca najniższą wartość z zestawu liczb lub tablicy.
mod Zwróć resztę z dzielenia dwóch liczb.
mul Zwróć wynik mnożenia dwóch liczb.
rand Zwraca losową liczbę całkowitą z określonego zakresu.
range Zwraca tablicę całkowitą rozpoczynającą się od określonej liczby całkowitej.
sub Zwróć wynik odejmowania liczby drugiej od liczby pierwszej.

Funkcje dotyczące dat

Funkcja daty lub godziny Task
addDays Dodaj liczbę dni do znacznika czasu.
addHours Dodaj liczbę godzin do znacznika czasu.
addMinutes Dodaj liczbę minut do znacznika czasu.
addSeconds Dodaj liczbę sekund do znacznika czasu.
addToTime Dodaj liczbę jednostek czasu do znacznika czasu. Zobacz również getFutureTime.
convertFromUtc Przekonwertuj znacznik czasu z uniwersalnego czasu koordynowanego (UTC) na docelową strefę czasową.
convertTimeZone Przekonwertuj znacznik czasu ze źródłowej strefy czasowej na docelową strefę czasową.
convertToUtc Przekonwertuj znacznik czasu ze źródłowej strefy czasowej na uniwersalny czas koordynowany (UTC).
dayOfMonth Zwróć dzień składnika miesiąca ze znacznika czasu.
dayOfWeek Zwróć dzień składnika tygodnia ze znacznika czasu.
dayOfYear Zwraca dzień składnika roku ze znacznika czasu.
formatDateTime Zwróć znacznik czasu jako łańcuch znaków w opcjonalnym formacie.
getFutureTime Zwróć bieżący znacznik czasu powiększony o określoną liczbę jednostek czasu. Zobacz również addToTime.
getPastTime Zwróć bieżący znacznik czasu pomniejszony o określone jednostki czasu. Zobacz również odejmijOdCzasu.
startOfDay Zwróć początek dnia dla znacznika czasu.
startOfHour Zwróć początek bieżącej godziny dla danego znacznika czasu.
startOfMonth Zwróć początek miesiąca na podstawie znacznika czasu.
subtractFromTime Odejmij liczbę jednostek czasu z znacznika czasu. Zobacz również getPastTime.
ticks Zwróć wartość właściwości ticks dla określonego znacznika czasu.
utcNow Zwraca bieżący znacznik czasu jako ciąg.