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

В этой статье показано, как использовать параметры в конвейерах фабрики данных в Fabric, чтобы можно было создавать гибкие и многократно используемые рабочие процессы.

Использование параметров, выражений и функций в конвейерах фабрики данных

В этом разделе описаны основы создания параметризованных конвейеров в фабрике данных для Fabric, используя четкие примеры по пути. Параметры и динамические выражения помогают экономить время и позволяют создавать гибкие решения Extract, Transform, Load (ETL) или Extract, Load, Transform (ELT). Они снижают жесткое программирование и позволяют повторно использовать объекты и процессы, что упрощает обслуживание конвейеров и позволяет быстрее отправлять новые функции.

Основные понятия параметров и выражений

Параметры можно использовать для передачи внешних значений в конвейеры. После задания параметра его значение остается неизменным на протяжении всего выполнения. Параметры позволяют повторно использовать один конвейер с разными значениями каждый раз. Параметры можно использовать отдельно или внутри выражений; их значения могут быть либо фиксированными, либо вычисляться при запуске конвейера.

Выражения можно размещать в любом месте строкового значения и всегда возвращать другое строковое значение. Например, если используется @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 на вкладке Source на страницах свойств операции Copy.

снимок экрана: вкладка

Откроется окно "Добавить динамическое содержимое". Используйте его для указания любого типа динамического содержимого, включая параметры, системные переменные, функции или переменные конвейера. В этом примере вы выбираете параметр, определенный ранее, и окно динамического содержимого автоматически заполняется правильным выражением для ссылки на него.

снимок экрана: окно добавления динамического содержимого с выбранным параметром конвейера.

Параметризация подключений

Чтобы параметризировать подключения в конвейерах, используйте глобальный уникальный идентификатор (GUID) подключения, который требуется заменить динамически.

  1. Перед тем как динамически изменить подключение в конвейере, получите GUID подключения, которое вы хотите задать.
  2. Перейдите к разделу "Параметры>управления подключениями и шлюзами".
  3. Найдите имя подключения и выберите рядом с ним многоточие (...).
  4. Выберите "Параметры" и скопируйте идентификатор подключения.
  5. Вставьте GUID в строковый параметр и наведите ссылку на этот параметр в динамическом выражении.

Пример сложного выражения

Следующее выражение ссылается на глубокое подполе выходных данных действия. Чтобы сослаться на параметр конвейера, который принимает значение подполя, используйте синтаксис [] вместо оператора точки (.), как в случае с subfield1 и subfield2.

@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*

Редактор динамического содержимого

Редактор динамического содержимого автоматически экранирует символы в вашем содержимом после завершения редактирования. Например, следующее содержимое в редакторе контента представляет собой интерполяцию строк с функцией выражения:

@{toUpper('myData')}

Редактор динамического содержимого преобразует предыдущее содержимое в следующее выражение:

MYDATA

Использование функций и переменных в выражениях

Можно вызывать функции и использовать переменные в выражениях. В следующих разделах содержатся сведения о функциях, которые можно использовать в выражении.

Переменные области конвейера

На эти системные переменные можно ссылаться в любом месте JSON конвейера.

Имя переменной Description
@pipeline().DataFactory Имя рабочей области, в которой выполняется запуск конвейера
@pipeline().Pipeline Имя конвейера
@pipeline().RunId Идентификатор конкретного запуска конвейера
@pipeline().TriggerId Идентификатор триггера, вызывающего конвейер
@pipeline().TriggerName Имя триггера, вызывающего конвейер
@pipeline().TriggerTime Время выполнения триггера, вызвавого конвейер. Это значение представляет собой время, когда триггер фактически сработал для запуска выполнения конвейера, и оно может немного отличаться от запланированного времени срабатывания триггера.
@pipeline().GroupId Идентификатор группы, к которой принадлежит запуск конвейера. В Microsoft Fabric группа — это коллекция связанных ресурсов, которыми вы управляете вместе. Группы упорядочивают и управляют доступом к ресурсам, что упрощает управление разрешениями и мониторинг действий в нескольких конвейерах.
@pipeline()?.ЗапущеннаПоИмениКонвейера Имя конвейера, который активирует запуск конвейера. Применяется, когда действие «Выполнение конвейера» активирует выполнение конвейера. В остальных случаях возвращает Null. Обратите внимание на вопросительный знак после @pipeline().
@pipeline()?. ЗапущеноСRunIdКонвейера Идентификатор запуска конвейера, который активирует запуск конвейера. Применяется, когда действие «Выполнение конвейера» запускает конвейер. В других случаях принимает значение 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 Возвращает текущую метку времени в виде строки.