Udostępnij przez


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

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ą:

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

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.

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 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.

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

Jak sparametryzować połączenia

Do parametryzowania połączeń w potokach należy użyć identyfikatora GUID połączenia, które chcesz dynamicznie zamienić.

  1. Aby można było dynamicznie modyfikować połączenie w potoku, należy pobrać identyfikator GUID połączenia, który chcesz ustawić
  2. Przejdź do pozycji Ustawienia | Zarządzanie połączeniami i bramami
  3. Znajdź nazwę połączenia i kliknij wielokropek obok nazwy połączenia
  4. Wybierz pozycję Ustawienia i skopiuj identyfikator połączenia
  5. 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.