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.
APPLIES TO:
Azure Data Factory
Azure Synapse Analytics
Tip
Wypróbuj Data Factory in Microsoft Fabric, kompleksowe rozwiązanie analityczne dla przedsiębiorstw. Microsoft Fabric obejmuje wszystko, od przesyłania danych do nauki o danych, analityki w czasie rzeczywistym, inteligencji biznesowej i raportowania. Dowiedz się, jak rozpocząć nową wersję próbną za darmo!
In this document, we will primarily focus on learning fundamental concepts with various examples to explore the ability to create parameterized data pipelines within Azure Data Factory. Parameterization and dynamic expressions are such notable additions to ADF because they can save a tremendous amount of time and allow for a much more flexible Extract, Transform, Load (ETL) or Extract, Load, Transform (ELT) solution, which will dramatically reduce the cost of solution maintenance and speed up the implementation of new features into existing pipelines. Te zyski wynikają z tego, że parametryzacja minimalizuje ilość twardego kodowania i zwiększa liczbę obiektów i procesów wielokrotnego użytku w rozwiązaniu.
Interfejs użytkownika i parametry Azure Data Factory
Jeśli dopiero zaczynasz korzystać z parametrów w interfejsie użytkownika Azure Data Factory (ADF), zapoznaj się z interfejsem użytkownika Data Factory dla połączonych usług z parametrami i interfejsem użytkownika Data Factory dla potoków sterowanych metadanymi z parametrami w celu uzyskania wizualnego wyjaśnienia.
Koncepcje parametrów i wyrażeń
Możesz używać parametrów do przekazywania wartości zewnętrznych do potoków, zbiorów danych, połączonych usług i przepływów danych. Po przekazaniu parametru do zasobu nie można go zmienić. Poprzez parametryzację zasobów, możesz ponownie je wykorzystać za każdym razem z innymi wartościami. Parametry mogą być używane indywidualnie lub jako część wyrażeń. Wartości JSON w definicji mogą być literałami lub wyrażeniami, które są oceniane w czasie wykonania.
For example:
"name": "value"
lub
"name": "@pipeline().parameters.password"
Wyrażenia mogą pojawiać się w dowolnym miejscu w wartości łańcucha znaków JSON i zawsze skutkują inną wartością JSON. Here, password is a pipeline parameter in the expression. Jeśli wartość JSON jest wyrażeniem, treść wyrażenia jest wyodrębniana poprzez usunięcie znaku małpy (@). Jeśli jest potrzebny dosłowny ciąg znaków zaczynający się od @, to musi być zabezpieczony przez użycie @@. Następujące przykłady pokazują, jak wyrażenia są oceniane.
| JSON value | Result |
|---|---|
| parametry | Znaki 'parametry' są zwracane. |
| parametry[1] | Znaki 'parameters[1]' są zwracane. |
| "@@" | Zwrócono łańcuch o długości 1 znaku, który zawiera '@'. |
| " @" | A 2 character string that contains ' @' is returned. |
Wyrażenia mogą również pojawiać się wewnątrz ciągów znaków, korzystając z funkcji zwanej interpolacją ciągów, gdzie wyrażenia są zamknięte w @{ ... }. Na przykład: "name" : "First Name: @{pipeline().parameters.firstName} Last Name: @{pipeline().parameters.lastName}"
Using string interpolation, the result is always a string. Powiedzmy, że zdefiniowałem myNumber jako 42 i myString jako foo:
| wartość JSON | Wynik |
|---|---|
| "@pipeline().parameters.myString" | Returns foo as a string. |
| "@{pipeline().parameters.myString}" | Returns foo as a string. |
| "@pipeline().parameters.myNumber" | Zwraca 42 jako liczbę. |
| "@{pipeline().parameters.myNumber}" | Zwraca 42 jako ciąg znaków. |
| Odpowiedź to: @{pipeline().parameters.myNumber} | Zwraca ciąg Answer is: 42. |
| @concat('Answer is: ', string(pipeline().parameters.myNumber)) | Zwraca ciąg znaków Answer is: 42 |
| Odpowiedź to: @@{pipeline().parameters.myNumber} | Zwraca ciąg znaków Answer is: @{pipeline().parameters.myNumber}. |
Przykłady użycia parametrów w wyrażeniach
Przykład złożonego wyrażenia
Poniższy przykład pokazuje złożony przypadek, który odnosi się do głębokiej poddziedziny wyników działalności. To reference a pipeline parameter that evaluates to a sub-field, use [] syntax instead of dot(.) operator (as in case of subfield1 and subfield2)
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
Edytor dynamicznej treści
Dynamic content editor automatically escapes characters in your content when you finish editing. Na przykład, poniższa zawartość w edytorze treści to interpolacja ciągów z dwiema funkcjami wyrażeń.
{
"type": "@{if(equals(1, 2), 'Blob', 'Table' )}",
"name": "@{toUpper('myData')}"
}
Edytor dynamicznej treści konwertuje powyższą treść na wyrażenie "{ \n \"type\": \"@{if(equals(1, 2), 'Blob', 'Table' )}\",\n \"name\": \"@{toUpper('myData')}\"\n}". Wynikiem tego wyrażenia jest ciąg formatu JSON pokazany poniżej.
{
"type": "Table",
"name": "MYDATA"
}
Zestaw danych z parametrami
In the following example, the BlobDataset takes a parameter named path. Its value is used to set a value for the folderPath property by using the expression: dataset().path.
{
"name": "BlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": "@dataset().path"
},
"linkedServiceName": {
"referenceName": "AzureStorageLinkedService",
"type": "LinkedServiceReference"
},
"parameters": {
"path": {
"type": "String"
}
}
}
}
Potok z parametrami
W poniższym przykładzie pipeline przyjmuje parametry inputPath i outputPath. Ścieżka dla parametryzowanego zestawu danych blob jest ustawiana za pomocą wartości tych parametrów. The syntax used here is: pipeline().parameters.parametername.
{
"name": "Adfv2QuickStartPipeline",
"properties": {
"activities": [
{
"name": "CopyFromBlobToBlob",
"type": "Copy",
"inputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.inputPath"
},
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.outputPath"
},
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "BlobSink"
}
}
}
],
"parameters": {
"inputPath": {
"type": "String"
},
"outputPath": {
"type": "String"
}
}
}
}
Wywoływanie funkcji w wyrażeniach
You can call functions within expressions. Następujące sekcje zawierają informacje o funkcjach, które mogą być używane w wyrażeniu.
Funkcje ciągów
Aby pracować z ciągami znaków, możesz używać tych funkcji dla ciągów znaków, a także niektórych funkcji kolekcji. Funkcje łańcuchowe działają tylko na łańcuchach znaków.
| Funkcja łańcuchowa | Task |
|---|---|
| concat | Połącz dwie lub więcej ciągów znaków i zwróć połączony ciąg. |
| endsWith | Check whether a string ends with the specified substring. |
| guid | Wygeneruj globalnie unikalny identyfikator (GUID) jako ciąg znaków. |
| indexOf | Zwróć pozycję początkową dla podciągu. |
| lastIndexOf | Zwróć pozycję początkową ostatniego wystąpienia podciągu. |
| replace | Replace a substring with the specified string, and return the updated string. |
| split | Zwróć tablicę zawierającą podciągi, oddzielone przecinkami, z większego ciągu znaków, na podstawie określonego znaku delimitera w oryginalnym ciągu znaków. |
| startsWith | Sprawdź, czy ciąg znaków zaczyna się od określonego podciągu. |
| substring | Zwróć znaki z ciągu, zaczynając od określonej pozycji. |
| toLower | Return a string in lowercase format. |
| toUpper | Return a string in uppercase format. |
| trim | Remove leading and trailing whitespace from a string, and return the updated string. |
Collection functions
To work with collections, generally arrays, strings, and sometimes, dictionaries, you can use these collection functions.
| Collection function | Task |
|---|---|
| contains | Sprawdź, czy kolekcja zawiera określony element. |
| empty | Check whether a collection is empty. |
| first | Zwróć pierwszy element z kolekcji. |
| intersection | Return a collection that has only the common items across the specified collections. |
| join | Return a string that has all the items from an array, separated by the specified character. |
| last | Return the last item from a collection. |
| length | Zwróć liczbę elementów w ciągu znaków lub tablicy. |
| skip | Remove items from the front of a collection, and return all the other items. |
| take | Zwróć elementy z przodu kolekcji. |
| union | Zwróć kolekcję, która zawiera wszystkie elementy ze wskazanych kolekcji. |
Logical functions
Funkcje te są przydatne w warunkach; można je używać do oceny dowolnej logiki.
| Funkcja porównania logicznego | Task |
|---|---|
| and | Sprawdź, czy wszystkie wyrażenia są prawdziwe. |
| równa się | Check whether both values are equivalent. |
| większy | Check whether the first value is greater than the second value. |
| greaterOrEquals | Sprawdź, czy pierwsza wartość jest większa lub równa drugiej wartości. |
| if | Sprawdź, czy wyrażenie jest prawdziwe czy fałszywe. Na podstawie wyniku, zwróć określoną wartość. |
| mniej | Sprawdź, czy pierwsza wartość jest mniejsza od drugiej wartości. |
| lessOrEquals | Check whether the first value is less than or equal to the second value. |
| not | Sprawdź, czy wyrażenie jest fałszywe. |
| or | Sprawdź, czy co najmniej jedno wyrażenie jest prawdziwe. |
Funkcje konwersji
Te funkcje są używane do konwersji między każdym z natywnych typów w języku.
- string
- liczba całkowita
- float
- boolean
- tablice
- słowniki
| Conversion function | Task |
|---|---|
| array | Return an array from a single specified input. For multiple inputs, see createArray. |
| base64 | Return the base64-encoded version for a string. |
| base64ToBinary | Zwróć wersję binarną dla ciągu kodowanego w base64. |
| base64ToString | Zwróć wersję tekstową dla ciągu zakodowanego w base64. |
| binary | Zwróć binarną wersję dla wartości wejściowej. |
| bool | Return the Boolean version for an input value. |
| coalesce | Return the first non-null value from one or more parameters. |
| createArray | Return an array from multiple inputs. |
| dataUri | Return the data URI for an input value. |
| dataUriToBinary | Zwróć wersję binarną dla URI danych. |
| dataUriToString | Zwróć wersję łańcuchową dla identyfikatora URI danych. |
| decodeBase64 | Return the string version for a base64-encoded string. |
| decodeDataUri | Return the binary version for a data URI. |
| decodeUriComponent | Zwróć ciąg znaków, w którym znaki ucieczki są zastępowane ich zdekodowanymi wersjami. |
| encodeUriComponent | Return a string that replaces URL-unsafe characters with escape characters. |
| float | Zwróć liczbę zmiennoprzecinkową dla wartości wejściowej. |
| int | Zwróć wersję całkowitą dla łańcucha znaków. |
| json | Zwróć wartość typu JavaScript Object Notation (JSON) lub obiekt dla ciągu znaków lub XML. |
| string | Zwróć wersję łańcuchową dla wartości wejściowej. |
| uriComponent | Zwróć wersję kodowaną w URI dla wartości wejściowej, zastępując niebezpieczne dla URL znaki znakami ucieczki. |
| uriComponentToBinary | Zwróć wersję binarną dla ciągu zakodowanego jako URI. |
| uriComponentToString | Zwróć wersję w formie ciągu dla ciągu zakodowanego jako URI. |
| xml | Return the XML version for a string. |
| xpath | Sprawdź XML pod kątem węzłów lub wartości pasujących do wyrażenia XPath (XML Path Language) i zwróć pasujące węzły lub wartości. |
Math functions
Te funkcje mogą być używane dla obu typów liczb: liczb całkowitych i liczb zmiennoprzecinkowych.
| Funkcja matematyczna | Zadanie |
|---|---|
| add | Return the result from adding two numbers. |
| div | Zwróć wynik dzielenia dwóch liczb. |
| max | Zwróć najwyższą wartość z zestawu liczb lub tablicy. |
| min | Return the lowest value from a set of numbers or an array. |
| mod | Return the remainder from dividing two numbers. |
| mul | Zwróć wynik mnożenia dwóch liczb. |
| rand | Return a random integer from a specified range. |
| range | Zwróć tablicę liczb całkowitych, która zaczyna się od określonej liczby całkowitej. |
| sub | Zwróć wynik odejmowania drugiej liczby od pierwszej liczby. |
Date functions
| Funkcja daty lub czasu | Zadanie |
|---|---|
| addDays | Dodaj określoną liczbę dni do znaczniku czasowego. |
| addHours | Add a number of hours to a timestamp. |
| addMinutes | Dodaj określoną liczbę minut do znacznika czasu. |
| addSeconds | Add a number of seconds to a timestamp. |
| addToTime | Dodaj liczbę jednostek czasu do znacznika czasu. See also getFutureTime. |
| convertFromUtc (funkcja konwertująca czas z UTC) | Convert a timestamp from Universal Time Coordinated (UTC) to the target time zone. |
| convertTimeZone | Przekształć znacznik czasu z czasu źródłowego do czasu docelowego. |
| przekształćNaUtc | Przekształć znacznik czasu z czasu lokalnego na czas uniwersalny skoordynowany (UTC). |
| dayOfMonth | Zwróć składnik dnia miesiąca z sygnatury czasowej. |
| dayOfWeek | Zwróć komponent dnia tygodnia ze znacznika czasu. |
| dayOfYear | Zwróć dzień roku z sygnatury czasowej. |
| formatDateTime | Zwróć znacznik czasu jako ciąg znaków w opcjonalnym formacie. |
| getFutureTime | Zwróć bieżący znacznik czasu powiększony o określone jednostki czasu. See also addToTime. |
| getPastTime | Zwróć aktualny znacznik czasu pomniejszony o określone jednostki czasu. Zobacz także subtractFromTime. |
| startOfDay | Zwróć początek dnia dla znacznika czasu. |
| startOfHour | Zwróć początek godziny dla znacznika czasu. |
| startOfMonth | Return the start of the month for a timestamp. |
| subtractFromTime | Odejmij liczbę jednostek czasu od znacznika czasowego. Zobacz także getPastTime. |
| kleszcze | Zwróć wartość właściwości ticks dla określonego znacznika czasu. |
| utcNow | Zwróć aktualny znacznik czasu jako ciąg znaków. |
Detailed examples for practice
Detailed Azure Data Factory copy pipeline with parameters
Ten samouczek dotyczący przekazywania parametrów w Azure Data Factory w kopii potoku wyjaśnia, jak przekazywać parametry między potokiem a aktywnością oraz między aktywnościami.
Szczegółowe mapowanie przepływu danych w rurociągu z parametrami
Proszę zapoznać się z Mapowaniem przepływu danych z parametrami, aby uzyskać pełny przykład wykorzystania parametrów w przepływie danych.
Szczegółowy potok danych napędzany metadanymi z parametrami
Proszę przejdź do Metadata driven pipeline with parameters aby dowiedzieć się więcej na temat używania parametrów do projektowania potoków napędzanych metadanymi. To jest popularne zastosowanie dla parametrów.
Powiązana zawartość
For a list of system variables you can use in expressions, see System variables.