Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как использовать параметры в конвейерах фабрики данных в Fabric. Это простой способ сделать рабочие процессы более гибкими и удобными для управления.
Использование параметров, выражений и функций в конвейерах Data Factory в Fabric
В этом руководстве описаны основы создания параметризованных конвейеров в Фабрике данных для Fabric, используя четкие примеры. Используя параметры и динамические выражения, вы можете сэкономить много времени и создавать гибкие решения ETL (извлечение, преобразование, загрузка) или ELT (извлечение, загрузка, преобразование). Эти методы сокращают жесткое программирование и помогают повторно использовать объекты и процессы, что упрощает обслуживание конвейеров и развертывание новых функций быстрее.
Основные понятия параметров и выражений
Параметры можно использовать для передачи внешних значений в конвейеры. После установки параметра он остается неизменным во время выполнения и не может быть изменен. С помощью параметров можно повторно использовать один конвейер с разными значениями каждый раз. Их можно использовать самостоятельно или внутри выражений, и эти значения могут быть фиксированными или вычисляемыми при выполнении pipeline.
Выражения можно размещать в любом месте строкового значения и всегда возвращать другое строковое значение. Например, если используется @password, конвейер обрабатывает пароль как параметр. Если значение является выражением, просто удалите @, чтобы получить фактическое содержимое. И если вам нужна строка, которая начинается с @, просто экранируйте её, введя @@. Ниже приведены несколько примеров, в которых показано, как это работает на практике.
| Значение параметра | Result |
|---|---|
| "parameters" | Возвращается слово "параметры". |
| "parameters[1]" | Символы "parameters[1]" возвращаются. |
| "@@" | Возвращается 1 символьная строка, содержащая "@". |
| " @" | Возвращается 2 символьная строка, содержащая @. |
Выражения также могут отображаться внутри строк, используя функцию интерполяции строк, где выражения упаковываются в @{ ... }. Например, следующая строка включает значения параметров и литеральные строковые значения:
"Имя: @{pipeline().parameters.firstName} Фамилия: @{pipeline().parameters.lastName}"
С помощью интерполяции строк результат всегда является строкой. Например, если вы определили myNumber как 42 и myString как foo:
| Значение параметра | Result |
|---|---|
| "@pipeline().parameters.myString" | Возвращает foo в виде строки. |
| "@{pipeline().parameters.myString}" | Возвращает foo в виде строки. |
| "@pipeline().parameters.myNumber" | Возвращает 42 как число . |
| "@{pipeline().parameters.myNumber}" | Возвращает 42 в виде строки . |
| "Ответ: @{pipeline().parameters.myNumber}" | Возвращает строку Answer is: 42. |
| @concat('Ответ: ', string(pipeline().parameters.myNumber)) | Возвращает строку Answer is: 42 |
| "Ответ: @@{pipeline().parameters.myNumber}" | Возвращает строку Answer is: @{pipeline().parameters.myNumber}. |
Примеры использования параметров в выражениях
Создание и использование параметров
Чтобы создать параметры, выберите фон холста редактора конвейера, а затем вкладку параметров окна свойств в нижней части. Нажмите кнопку + Создать, чтобы добавить новый параметр в конвейер, присвойте ему имя, тип данных и значение по умолчанию:
Затем можно использовать параметр в любом месте конвейера, где поддерживается динамическое содержимое. В этом примере параметр используется для динамического задания имени хранилища данных Lakehouse на вкладке Источник страниц свойств действия копирования.
Отображается окно добавления динамического содержимого, позволяющее указать любое динамическое содержимое, включая параметры, системные переменные, функцииили переменные конвейера. В этом примере выбран ранее определенный параметр, а окно динамического содержимого автоматически заполняется правильным выражением для ссылки на параметр.
Как параметризировать подключения
Для параметризации подключений в конвейерах требуется использовать GUID подключения, который требуется заменить динамически.
- Прежде чем динамически изменить подключение в конвейере, необходимо получить GUID для подключения, которое вы хотите задать.
- Перейти к параметрам | Управление подключениями и шлюзами
- Найдите имя подключения и щелкните многоточие рядом с именем подключения.
- Выберите параметры и скопируйте идентификатор подключения
- Использование строкового параметра для вставки GUID в этот параметр для использования в динамическом выражении
Пример сложного выражения
В следующем примере показан сложный случай, который ссылается на глубинное подполе результатов деятельности. Чтобы ссылаться на параметр конвейера, вычисляющий подфилд, используйте синтаксис [] вместо оператора dot(.) (как и подфилд1 и подфилд2).
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
Редактор динамического содержимого
Редактор динамического содержимого автоматически экранирует символы в вашем содержимом после завершения редактирования. Например, следующее содержимое в редакторе контента представляет собой интерполяцию строк с функцией выражения:
@{toUpper('myData')}
Редактор динамического содержимого преобразует предыдущее содержимое в следующее выражение:
MYDATA
Использование функций и переменных в выражениях
Можно вызывать функции и использовать переменные в выражениях. В следующих разделах содержатся сведения о функциях, которые можно использовать в выражении.
Переменные области конвейера
Эти системные переменные можно ссылаться в любом месте конвейера JSON.
| Имя переменной | Description |
|---|---|
| @pipeline().DataFactory | Имя рабочей области данных или рабочей области Synapse, в которой выполняется запуск конвейера. |
| @pipeline().Pipeline | Имя конвейера |
| @pipeline().RunId | Идентификатор конкретного запуска конвейера |
| @pipeline().TriggerId | Идентификатор триггера, вызывающего конвейер |
| @pipeline().TriggerName | Имя триггера, вызывающего конвейер |
| @pipeline().TriggerTime | Время выполнения триггера, вызвавого конвейер. Это момент, когда триггер фактически запустился, чтобы вызвать запуск конвейера, и он может немного отличаться от запланированного времени триггера. |
| @pipeline().GroupId | Идентификатор группы, к которой принадлежит запуск конвейера. В Microsoft Fabric группа ссылается на коллекцию связанных ресурсов, которые можно управлять вместе. Группы используются для упорядочивания и управления доступом к ресурсам, что упрощает управление разрешениями и мониторинг действий в нескольких конвейерах. |
| @pipeline()?.ЗапущеннаПоИмениКонвейера | Имя конвейера, который активирует запуск конвейера. Применимо, если запуск конвейера активируется действием ExecutePipeline. Оценивать как NULL в других контекстах. Обратите внимание на вопросительный знак после @pipeline() |
| @pipeline()?. ЗапущеноСRunIdКонвейера | Идентификатор запуска конвейера, который активирует запуск конвейера. Применимо, если запуск конвейера активируется действием ExecutePipeline. Оценивать как NULL в других контекстах. Обратите внимание на вопросительный знак после @pipeline() |
Note
Связанные с триггером системные переменные даты и времени (как в области конвейера, так и в области триггеров) возвращают даты UTC в формате ISO 8601, например 2017-06-01T22:20:00.4061448Z.
Строковые функции
Для работы со строками можно использовать эти функции строк, а также некоторые функции коллекций . Строковые функции работают только на строках.
| Строковая функция | Task |
|---|---|
| concat | Объедините две или несколько строк и верните объединенную строку. |
| endsWith | Проверьте, заканчивается ли строка указанной подстрокой. |
| guid | Создайте глобальный уникальный идентификатор (GUID) в виде строки. |
| indexOf | Возвращает начальную позицию для подстроки. |
| lastIndexOf | Возвращает начальную позицию для последнего вхождения подстроки. |
| replace | Замените подстроку указанной строкой и верните обновленную строку. |
| split | Возвращает массив, содержащий подстроки, разделенные запятыми, из большей строки на основе указанного символа разделителя в исходной строке. |
| startsWith | Проверьте, начинается ли строка с определенной подстроки. |
| substring | Возвращает символы из строки, начиная с указанной позиции. |
| toLower | Возвращает строку в нижнем регистре. |
| toUpper | Возвращает строку в верхнем регистре. |
| trim | Удалите начальные и конечные пробелы из строки и верните обновленную строку. |
Функции коллекции
Для работы с коллекциями, как правило, массивами, строками и иногда словарями можно использовать эти функции коллекции.
| Функция коллекции | Task |
|---|---|
| contains | Проверьте, имеет ли коллекция определенный элемент. |
| empty | Проверьте, пуста ли коллекция. |
| first | Возвращает первый элемент из коллекции. |
| intersection | Возвращает коллекцию с только общими элементами в заданных коллекциях. |
| join | Возвращает строку, которая содержит все элементы из массива, разделенные указанным символом. |
| last | Возвращает последний элемент из коллекции. |
| length | Возвращает количество элементов в строке или массиве. |
| skip | Удалите элементы из передней части коллекции и верните все остальные элементы. |
| take | Возвращать элементы из передней части коллекции. |
| union | Возвращает коллекцию, содержащую все элементы из указанных коллекций. |
Логические функции
Эти функции полезны в условиях, их можно использовать для оценки любого типа логики.
| Функция логического сравнения | Task |
|---|---|
| and | Проверьте, являются ли все выражения истинными. |
| equals | Проверьте, эквивалентны ли оба значения. |
| greater | Проверьте, больше ли первое значение, чем второе значение. |
| greaterOrEquals | Проверьте, больше ли первое значение или равно второму значению. |
| if | Проверьте, имеет ли выражение значение true или false. В зависимости от результата возвращается указанное значение. |
| less | Проверьте, меньше ли первое значение, чем второе значение. |
| lessOrEquals | Проверьте, меньше ли первое значение или равно второму значению. |
| not | Проверьте, ложно ли выражение. |
| or | Проверьте, является ли по крайней мере одно выражение истинным. |
Функции преобразования
Эти функции используются для преобразования между каждым из собственных типов на языке:
- string
- integer
- float
- boolean
- arrays
- dictionaries
| Функция преобразования | Task |
|---|---|
| array | Возвращает массив из одного указанного входного значения. Для нескольких входных данных см. createArray. |
| base64 | Возвращает версию в кодировке Base64 для строки. |
| base64ToBinary | Возвращает двоичную версию для строки в кодировке Base64. |
| base64ToString | Возвращает строковую версию для строки в кодировке Base64. |
| binary | Возвращает двоичную версию для входного значения. |
| bool | Возвращает логическое значение для входного значения. |
| coalesce | Возвращает первое значение, отличное от NULL, из одного или нескольких параметров. |
| createArray | Возвращает массив из нескольких входных данных. |
| dataUri | Возвращает URI данных для входного значения. |
| dataUriToBinary | Возвращает двоичную версию для URI данных. |
| dataUriToString | Возвращает строковую версию для URI данных. |
| decodeBase64 | Возвращает строковую версию для строки в кодировке Base64. |
| decodeDataUri | Возвращает двоичную версию для URI данных. |
| decodeUriComponent | Вернуть строку, в которой escape-символы заменены на декодированные версии. |
| encodeUriComponent | Возвращает строку, которая заменяет небезопасные символы URL-адреса escape-символами. |
| float | Возвращает число с плавающей запятой для входного значения. |
| int | Возвращает целочисленную версию строки. |
| json | Возвращает значение типа нотации объектов JavaScript (JSON) или объект для строки или XML. |
| string | Возвращает строковую версию для входного значения. |
| uriComponent | Верните значение, закодированное в формате URI, заменив небезопасные символы URL-адреса кодами экранирования. |
| uriComponentToBinary | Возвращает двоичную версию для строки в кодировке URI. |
| uriComponentToString | Возвращает строковую версию для строки в кодировке URI. |
| xml | Возвращает XML-версию строки. |
| xpath | Проведите проверку XML для узлов или значений, которые соответствуют выражению языка путей XML (XPath), и верните соответствующие узлы или значения. |
Математические функции
Эти функции можно использовать для обоих типов чисел: целых чисел и чисел с плавающей запятой.
| Математические функции | Task |
|---|---|
| add | Возвращает результат сложения двух чисел. |
| div | Возвращает результат деления двух чисел. |
| max | Возвращает наибольшее значение из набора чисел или массива. |
| min | Возвращает наименьшее значение из набора чисел или массива. |
| mod | Верните остаток от деления двух чисел. |
| mul | Возвращает результат умножения двух чисел. |
| rand | Возвращает случайное целое число из указанного диапазона. |
| range | Возвращает целый массив, начинающийся с указанного целого числа. |
| sub | Возвращает результат вычитания второго числа из первого числа. |
Функции работы с датами
| Функция даты или времени | Task |
|---|---|
| addDays | Добавьте несколько дней в метку времени. |
| addHours | Добавьте несколько часов в метку времени. |
| addMinutes | Добавьте несколько минут в метку времени. |
| addSeconds | Добавьте количество секунд в метку времени. |
| addToTime | Добавьте несколько единиц времени в метку времени. См. также getFutureTime. |
| convertFromUtc | Преобразуйте метку времени из универсального часового пояса (UTC) в целевой часовой пояс. |
| convertTimeZone | Преобразуйте метку времени из исходного часового пояса в целевой часовой пояс. |
| convertToUtc | Преобразуйте метку времени из исходного часового пояса в универсальный код времени (UTC). |
| dayOfMonth | Возвращает день компонента месяца из метки времени. |
| dayOfWeek | Возвращает день недели из метки времени. |
| dayOfYear | Возвращает день компонента года из метки времени. |
| formatDateTime | Возвращает метку времени в виде строки в необязательном формате. |
| getFutureTime | Возвращает текущую метку времени и указанные единицы времени. См. также addToTime. |
| getPastTime | Возвращает текущую метку времени минус указанные единицы времени. См. также вычесть из времени. |
| startOfDay | Верните начало дня для временной метки. |
| startOfHour | Возвращает начало часа для метки времени. |
| startOfMonth | Возвращает начало месяца для временной метки. |
| subtractFromTime | Вычесть количество единиц времени из метки времени. См. также getPastTime. |
| ticks | Возвращает значение свойства ticks для указанной метки времени. |
| utcNow | Возвращает текущую метку времени в виде строки. |