Параметры фабрики данных в Microsoft Fabric

В этом руководстве показано, как использовать параметры в конвейерах фабрики данных в 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 подключения, который требуется заменить динамически.

  1. Прежде чем динамически изменить подключение в конвейере, необходимо получить GUID для подключения, которое вы хотите задать.
  2. Перейти к параметрам | Управление подключениями и шлюзами
  3. Найдите имя подключения и щелкните многоточие рядом с именем подключения.
  4. Выберите параметры и скопируйте идентификатор подключения
  5. Использование строкового параметра для вставки 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 Возвращает текущую метку времени в виде строки.