Udostępnij za pośrednictwem


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

W tym dokumencie opisano sposób używania parametrów w potokach dla usługi Data Factory w sieci szkieletowej.

Jak używać parametrów, wyrażeń i funkcji w potokach dla usługi Data Factory w sieci szkieletowej

W tym dokumencie skupimy się na poznaniu podstawowych pojęć z różnymi przykładami, aby poznać możliwość tworzenia sparametryzowanych potoków danych w usłudze Data Factory w sieci szkieletowej. Parametryzacja i wyrażenia dynamiczne mogą zaoszczędzić ogromny czas i pozwolić na znacznie bardziej elastyczne wyodrębnianie, przekształcanie, ładowanie (ETL) lub wyodrębnianie, ładowanie, przekształcanie (ELT), co znacznie zmniejszy koszty konserwacji rozwiązania i przyspieszy implementację nowych funkcji w istniejących potokach. Te zyski są spowodowane tym, że parametryzacja minimalizuje ilość kodowania twardego i zwiększa liczbę obiektów i procesów wielokrotnego użytku w rozwiązaniu.

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

Parametry umożliwiają przekazywanie wartości zewnętrznych do potoków. Po przekazaniu parametru do zasobu nie można go zmienić. Parametryzując zasoby, można użyć ich ponownie z różnymi wartościami za każdym razem. Parametry mogą być używane indywidualnie lub jako część wyrażeń. Wartości parametrów w definicji mogą być literałami lub wyrażeniami, które są oceniane w czasie wykonywania.

Wyrażenia mogą być wyświetlane w dowolnym miejscu w wartości ciągu i zawsze generować inną wartość ciągu. Tutaj hasło jest parametrem potoku w wyrażeniu. Jeśli wartość parametru jest wyrażeniem, treść wyrażenia jest wyodrębniona przez usunięcie znaku at-sign (@). Jeśli potrzebny jest ciąg literału rozpoczynający się od @, należy go użyć przy użyciu @@. W poniższych przykładach pokazano, jak są oceniane wyrażenia.

Wartość parametru Result
"parameters" (parametry) Zwracane są znaki "parameters".
"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 nazywanej interpolacją ciągów, w której wyrażenia są opakowane w @{ ... }. Na przykład następujący ciąg zawiera wartości parametrów i wartości ciągu literału:

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

Przy użyciu interpolacji ciągów wynik jest zawsze ciągiem. Na przykład jeśli 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 kanwy edytora potoków, a następnie kartę Parametry okna właściwości u dołu. Wybierz przycisk + Nowy, aby dodać nowy parametr do potoku, nadaj mu nazwę, typ danych i wartość domyślną:

Screenshot showing the Parameters editor on the properties pages for a pipeline.

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.

Screenshot showing the Source tab of a copy activity's property pages, highlighting the Add dynamic content option.

Zostanie wyświetlone okno Dodawanie zawartości dynamicznej, 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.

Screenshot showing the Add dynamic content window with a pipeline parameter selected.

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 pola podrzędnego danych wyjściowych działań. Aby odwołać się do parametru potoku, który oblicza pole podrzędne, użyj składni [] zamiast operatora dot(.) (tak 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 powyższą 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 zakresu potoku

Do tych zmiennych systemowych można odwoływać się w dowolnym miejscu w formacie JSON potoku.

Nazwa zmiennej opis
@pipeline().DataFactory Nazwa danych lub obszaru roboczego usługi Synapse, w którym działa przebieg potoku
@pipeline().Pipeline Nazwa potoku
@pipeline().RunId Identyfikator określonego uruchomienia potoku
@pipeline().TriggerId Identyfikator wyzwalacza, który wywołał potok
@pipeline().TriggerName Nazwa wyzwalacza, który wywołał potok
@pipeline().TriggerTime Czas uruchomienia wyzwalacza, który wywołał potok. Jest to czas, w którym wyzwalacz rzeczywiście został wyzwolony w celu wywołania uruchomienia potoku i może się nieco różnić od zaplanowanego czasu wyzwalacza.
@pipeline().GroupId Identyfikator grupy, do której należy uruchomienie potoku.
@pipeline()?. TriggeredByPipelineName Nazwa potoku, który wyzwala uruchomienie potoku. Ma zastosowanie, gdy uruchomienie potoku jest wyzwalane przez działanie ExecutePipeline. Oblicz wartość null , jeśli jest używana 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 działanie ExecutePipeline. Oblicz wartość null , jeśli jest używana w innych okolicznościach. Zanotuj znak zapytania po @pipeline()

Uwaga

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 ciągów

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 ciągu Zadanie
Concat Połącz co najmniej dwa ciągi i zwróć połączony ciąg.
Endswith Sprawdź, czy ciąg kończy się określonym podciągem.
Identyfikator 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ągów.
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.
Podciąg Zwraca znaki z ciągu, zaczynając od określonej pozycji.
Tolower Zwraca ciąg w formacie małych liter.
Toupper Zwraca ciąg w formacie wielkiej litery.
Przycinanie Usuń białe znaki wiodące i końcowe z ciągu i zwróć zaktualizowany 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 Zadanie
Zawiera Sprawdź, czy kolekcja ma określony element.
empty Sprawdź, czy kolekcja jest pusta.
Pierwszym Zwróć pierwszy element z kolekcji.
Przecięcia Zwróć kolekcję zawierającą tylko wspólne elementy w określonych kolekcjach.
join Zwróć ciąg zawierający wszystkie elementy z tablicy oddzielone określonym znakiem.
Ostatnio Zwróć ostatni element z kolekcji.
length Zwraca liczbę elementów w ciągu lub tablicy.
Pominąć Usuń elementy z przodu kolekcji i zwróć wszystkie inne elementy.
take Zwracanie elementów z przodu kolekcji.
Unii Zwróć kolekcję zawierającą wszystkie elementy 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 Zadanie
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.
Jeśli Sprawdź, czy wyrażenie ma wartość true, czy false. Na podstawie wyniku zwróć 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.
nie 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:

  • string
  • integer
  • liczba zmiennoprzecinkowa
  • boolean
  • Tablice
  • Słowniki
Funkcja konwersji Zadanie
Tablicy Zwraca tablicę z jednego określonego danych wejściowych. 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.
Binarnym Zwraca wersję binarną dla wartości wejściowej.
bool Zwróć wersję logiczną dla wartości wejściowej.
Łączonej 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.
dekodujBase64 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óć wartość typu JavaScript Object Notation (JSON) lub obiekt dla ciągu lub 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.
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 w przypadku obu typów liczb: liczb całkowitych i zmiennoprzecinkowych.

Math, funkcja Zadanie
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óć produkt z 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 drugiej liczby z pierwszej liczby.

Funkcje daty

Funkcja daty lub godziny Zadanie
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 ciąg w formacie opcjonalnym.
getFutureTime Zwróć bieżący znacznik czasu oraz określoną liczbę jednostek czasu. Zobacz również addToTime.
getPastTime Zwróć bieżący znacznik czasu minus określoną liczbę jednostek czasu. Zobacz również odejmowanieFromTime.
startOfDay Zwróć początek dnia dla znacznika czasu.
startOfHour Zwróć początek godziny dla znacznika czasu.
startOfMonth Zwróć początek miesiąca dla znacznika czasu.
odejmowanieFromTime Odejmij liczbę jednostek czasu z znacznika czasu. Zobacz również getPastTime.
Kleszcze ticks Zwraca wartość właściwości dla określonego znacznika czasu.
Utcnow Zwraca bieżący znacznik czasu jako ciąg.