Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku pokazano, jak używać parametrów w potokach usługi Data Factory w ramach usługi Fabric. Jest to prosty sposób na zwiększenie elastyczności przepływów pracy i łatwiejsze zarządzanie nimi.
Jak używać parametrów, wyrażeń i funkcji w potokach dla usługi Data Factory w Fabric
W tym przewodniku przeprowadzimy cię przez podstawy tworzenia sparametryzowanych potoków w usłudze Data Factory for Fabric, przy użyciu jasnych przykładów. Korzystając z parametrów i wyrażeń dynamicznych, można zaoszczędzić dużo czasu i tworzyć elastyczne rozwiązania ETL (Wyodrębnianie, przekształcanie, ładowanie) lub ELT (wyodrębnianie, ładowanie, przekształcanie). Techniki te pozwalają ograniczyć twarde kodowanie i ułatwiają ponowne wykorzystanie obiektów i procesów, co ułatwia utrzymanie potoków i szybsze wprowadzanie 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 pozostaje on taki sam w całym przebiegu i nie można go zmienić. Używając parametrów, można ponownie użyć tego samego potoku z różnymi wartościami za każdym razem. Można ich używać samodzielnie lub wewnątrz wyrażeń, a te wartości mogą być ustalone lub obliczone podczas uruchamiania 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, po prostu usuń znak @, aby uzyskać rzeczywistą zawartość. A jeśli potrzebujesz ciągu rozpoczynającego się od @, po prostu unikniesz go, wpisując @@. Poniżej przedstawiono kilka przykładów pokazujących, 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ę wewnątrz ciągów przy użyciu funkcji o nazwie interpolacji ciągów, gdzie wyrażenia są opakowane 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}"
Przy użyciu interpolacji ciągów wynik jest zawsze ciągiem. Jeśli na przykład zdefiniowano 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 użycia parametrów w wyrażeniach
Tworzenie i używanie parametrów
Aby utworzyć parametry, wybierz tło przestrzeni roboczej edytora potoków, a następnie kartę Parametry okna właściwości znajdującego się u dołu. Wybierz przycisk + Nowy, aby dodać nowy parametr do potoku, nadać mu nazwę, typ danych i wartość domyślną:
Następnie możesz użyć parametru w dowolnym miejscu w potoku, w którym jest obsługiwana zawartość dynamiczna. W tym przykładzie parametr jest używany do dynamicznego podawania nazwy magazynu danych usługi Lakehouse na karcie Źródło stron właściwości działania kopiowania.
Zostanie wyświetlone okno Dodaj zawartość dynamiczną, umożliwiające określenie dowolnego rodzaju zawartości dynamicznej, w tym parametrów, zmiennych systemowych , funkcji lub zmiennych potoku. W tym przykładzie wybrano wcześniej zdefiniowany parametr, a okno zawartości dynamicznej jest automatycznie wypełniane poprawnym wyrażeniem w celu odwołania się do parametru.
Jak sparametryzować połączenia
Do parametryzowania połączeń w potokach należy użyć identyfikatora GUID połączenia, które chcesz dynamicznie zamienić.
- Aby można było dynamicznie modyfikować połączenie w potoku, należy pobrać identyfikator GUID połączenia, który chcesz ustawić
- Przejdź do pozycji Ustawienia | Zarządzanie połączeniami i bramami
- Znajdź nazwę połączenia i kliknij wielokropek obok nazwy połączenia
- Wybierz pozycję Ustawienia i skopiuj identyfikator połączenia
- Użyj parametru ciągu, aby wkleić identyfikator GUID w tym parametrze do użycia w wyrażeniu dynamicznym
Przykład wyrażenia złożonego
Poniższy przykład przedstawia złożony przykład, który odwołuje się do głębokiego podpola danych wyjściowych działań. Aby odwołać się do parametru potoku, który odnosi się do podpola, użyj składni [] zamiast operatora kropki (.) (podobnie jak w przypadku podpola1 i podpola2)
@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
Na te zmienne systemowe można się odwoływać w dowolnym miejscu w pliku JSON potoku.
| Nazwa zmiennej | Description |
|---|---|
| @pipeline().DataFactory | Nazwa danych lub obszaru roboczego usługi Synapse, 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. Jest to czas, w którym wyzwalacz rzeczywiście został wyzwolony, by uruchomić potok, i mógł nieznacznie różnić się od zaplanowanego czasu wyzwalacza. |
| @pipeline().GroupId | Identyfikator grupy, do której należy uruchomienie potoku. W usłudze Microsoft Fabric "grupa" odnosi się do kolekcji powiązanych zasobów, którymi można zarządzać razem. Grupy służą do organizowania i kontrolowania dostępu 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. Ma zastosowanie, gdy uruchomienie potoku jest wyzwalane przez aktywność ExecutePipeline. Oceń null, jeśli są używane w innych okolicznościach. Zanotuj znak zapytania po @pipeline() |
| @pipeline()?. TriggeredByPipelineRunId | Identyfikator uruchomienia potoku, który wyzwala uruchomienie potoku. Ma zastosowanie, gdy uruchomienie potoku jest wyzwalane przez aktywność ExecutePipeline. Oceń null, jeśli są używane w innych okolicznościach. Zanotuj znak zapytania po @pipeline() |
Note
Zmienne systemowe daty/godziny związane z wyzwalaczem (w zakresach potoku i wyzwalacza) zwracają daty UTC w formacie ISO 8601, na przykład 2017-06-01T22:20:00.4061448Z.
Funkcje łańcuchów znakowych
Aby pracować z ciągami, możesz użyć 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, zazwyczaj tablicami, ciągami, a czasami słownikami, można użyć 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
Te funkcje są przydatne wewnątrz warunków, mogą służyć do oceny dowolnego typu 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
Te funkcje są używane do konwertowania 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
Te funkcje mogą być używane dla obu typów liczb: całkowitych i zmiennoprzecinkowych.
| Math, funkcja | 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. |