Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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ą:
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.
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.
Parametryzowanie połączeń
Aby sparametryzować połączenia w potokach, użyj globalnie unikatowego identyfikatora (GUID) połączenia, które ma zostać zamienione dynamicznie.
- Zanim dynamicznie zmodyfikujesz połączenie w potoku, pobierz identyfikator GUID połączenia, który chcesz ustawić.
- Przejdź do pozycji Ustawienia>Zarządzaj połączeniami i bramami.
- Znajdź nazwę połączenia i wybierz obok niej wielokropek (...).
- Wybierz pozycję Ustawienia i skopiuj identyfikator połączenia.
- 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. |