Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом документе описывается, как использовать параметры в конвейерах для Data Factory в Fabric.
Использование параметров, выражений и функций в конвейерах Data Factory в Fabric
В этом документе мы сосредоточимся на обучении фундаментальных концепций с различными примерами для изучения возможности создания параметризованных конвейеров данных в Фабрике данных в Fabric. Параметризация и динамические выражения могут сэкономить огромное время и обеспечить гораздо более гибкое решение Extract, Transform, Load (ETL) или Extract, Load, Transform (ELT), что значительно снижает затраты на обслуживание решения и ускоряет реализацию новых функций в существующих конвейерах. Эти преимущества обусловлены тем, что параметризация сводит к минимуму объем жесткого кодирования и увеличивает количество многократно используемых объектов и процессов в решении.
Основные понятия параметров и выражений
Параметры можно использовать для передачи внешних значений в конвейеры. После того как параметр передается в ресурс, его нельзя изменить. Параметризуя ресурсы, их можно повторно использовать с разными значениями каждый раз. Параметры можно использовать отдельно или как часть выражений. Значения параметров в определении могут быть литеральными или выражениями, которые вычисляются во время выполнения.
Выражения могут отображаться в любом месте строкового значения и всегда создавать другое строковое значение. Здесь пароль является параметром конвейера в выражении. Если значение параметра является выражением, текст выражения извлекается путем удаления объекта at-sign (@). Если требуется литеральная строка, которая начинается с @, она должна быть экранирована с помощью @@. В следующих примерах показано, как вычисляются выражения.
Значение параметра | Результат |
---|---|
"параметры" | Возвращается слово "параметры". |
параметры[1] | Символы "parameters[1]" возвращаются. |
"@@" | Возвращается 1 символьная строка, содержащая "@". |
" @" | Возвращается 2 символьная строка, содержащая @. |
Выражения также могут отображаться внутри строк, используя функцию интерполяции строк, где выражения упаковываются в @{ ... }
. Например, следующая строка включает значения параметров и литеральные строковые значения:
"Имя: @{pipeline().parameters.firstName} Фамилия: @{pipeline().parameters.lastName}"
С помощью интерполяции строк результат всегда является строкой. Например, если вы определили myNumber
как 42
и myString
как foo
:
Значение параметра | Результат |
---|---|
"@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 на вкладке Источник страниц свойств действия копирования.
Отображается окно добавления динамического содержимого, позволяющее указать любое динамическое содержимое, включая параметры, системные переменные, функцииили переменные конвейера. В этом примере выбран ранее определенный параметр, а окно динамического содержимого автоматически заполняется правильным выражением для ссылки на параметр.
Пример сложного выражения
В следующем примере показан сложный случай, который ссылается на глубинное подполе результатов деятельности. Чтобы ссылаться на параметр конвейера, вычисляющий подфилд, используйте синтаксис [] вместо оператора dot(.) (как и подфилд1 и подфилд2).
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
Редактор динамического содержимого
Редактор динамического содержимого автоматически экранирует символы в вашем содержимом после завершения редактирования. Например, следующее содержимое в редакторе контента представляет собой интерполяцию строк с функцией выражения:
@{toUpper('myData')}
Редактор динамического содержимого преобразует предыдущее содержимое в следующее выражение:
MYDATA
Использование функций и переменных в выражениях
Можно вызывать функции и использовать переменные в выражениях. В следующих разделах содержатся сведения о функциях, которые можно использовать в выражении.
Переменные области конвейера
Эти системные переменные можно ссылаться в любом месте конвейера JSON.
Имя переменной | Описание |
---|---|
@pipeline().DataFactory | Имя рабочей области данных или рабочей области Synapse, в которой выполняется запуск конвейера. |
@pipeline().Pipeline | Имя конвейера |
@pipeline().RunId | Идентификатор конкретного запуска конвейера |
@pipeline().TriggerId | Идентификатор триггера, вызывающего конвейер |
@pipeline().TriggerName | Имя триггера, вызывающего конвейер |
@pipeline().TriggerTime | Время выполнения триггера, вызвавого конвейер. Это момент, когда триггер фактически запустился, чтобы вызвать запуск конвейера, и он может немного отличаться от запланированного времени триггера. |
@pipeline().GroupId | Идентификатор группы, к которой принадлежит запуск конвейера. В Microsoft Fabric группа ссылается на коллекцию связанных ресурсов, которые можно управлять вместе. Группы используются для упорядочивания и управления доступом к ресурсам, что упрощает управление разрешениями и мониторинг действий в нескольких конвейерах. |
@pipeline()?. ЗапущеноПоИмениКонвейера | Имя конвейера, который активирует запуск конвейера. Применимо, если запуск конвейера активируется действием ExecutePipeline. Оценивать как NULL в других контекстах. Обратите внимание на вопросительный знак после @pipeline() |
@pipeline()?. TriggeredByPipelineRunId | Идентификатор запуска конвейера, который активирует запуск конвейера. Применимо, если запуск конвейера активируется действием ExecutePipeline. При использовании в других обстоятельствах равен Null. Обратите внимание на вопросительный знак после @pipeline() |
Заметка
Связанные с триггером системные переменные даты и времени (как в области конвейера, так и в области триггеров) возвращают даты UTC в формате ISO 8601, например 2017-06-01T22:20:00.4061448Z
.
Строковые функции
Для работы со строками можно использовать эти функции строк, а также некоторые функции коллекций . Строковые функции работают только на строках.
Строковая функция | Задача |
---|---|
сцепить | Объедините две или несколько строк и верните объединенную строку. |
заканчивается | Проверьте, заканчивается ли строка указанной подстрокой. |
глобальный уникальный идентификатор | Создайте глобальный уникальный идентификатор (GUID) в виде строки. |
indexOf | Возвращает начальную позицию для подстроки. |
lastIndexOf | Возвращает начальную позицию для последнего вхождения подстроки. |
заменить | Замените подстроку указанной строкой и верните обновленную строку. |
разделение | Возвращает массив, содержащий подстроки, разделенные запятыми, из большей строки на основе указанного символа разделителя в исходной строке. |
начинается с | Проверьте, начинается ли строка с определенной подстроки. |
подстрока | Возвращает символы из строки, начиная с указанной позиции. |
toLower | Возвращает строку в нижнем регистре. |
в верхний регистр | Возвращает строку в верхнем регистре. |
отделка | Удалите начальные и конечные пробелы из строки и верните обновленную строку. |
Функции коллекции
Для работы с коллекциями, как правило, массивами, строками и иногда словарями можно использовать эти функции коллекции.
Функция коллекции | Задача |
---|---|
содержит | Проверьте, имеет ли коллекция определенный элемент. |
пустой | Проверьте, пуста ли коллекция. |
первого | Возвращает первый элемент из коллекции. |
пересечения | Возвращает коллекцию с только общими элементами в заданных коллекциях. |
присоединяется к | Возвращает строку, которая содержит все элементы из массива, разделенные указанным символом. |
последние | Возвращает последний элемент из коллекции. |
длину | Возвращает количество элементов в строке или массиве. |
пропустить | Удалите элементы из передней части коллекции и верните все остальные элементы. |
взять | Возвращать элементы из передней части коллекции. |
объединения | Возвращает коллекцию, содержащую все элементы из указанных коллекций. |
Логические функции
Эти функции полезны в условиях, их можно использовать для оценки любого типа логики.
Функция логического сравнения | Задача |
---|---|
и | Проверьте, являются ли все выражения истинными. |
равно | Проверьте, эквивалентны ли оба значения. |
больше | Проверьте, больше ли первое значение, чем второе значение. |
больше или равно | Проверьте, больше ли первое значение или равно второму значению. |
, если | Проверьте, имеет ли выражение значение true или false. В зависимости от результата возвращается указанное значение. |
меньше | Проверьте, меньше ли первое значение, чем второе значение. |
меньше или равно | Проверьте, меньше ли первое значение или равно второму значению. |
не | Проверьте, ложно ли выражение. |
или | Проверьте, является ли по крайней мере одно выражение истинным. |
Функции преобразования
Эти функции используются для преобразования между каждым из собственных типов на языке:
- струна
- целое число
- плавать
- булев
- Массивы
- Словари
Функция преобразования | Задача |
---|---|
массива | Возвращает массив из одного указанного входного значения. Для нескольких входных данных см. createArray. |
base64 | Возвращает версию в кодировке Base64 для строки. |
base64ToBinary | Возвращает двоичную версию для строки в кодировке Base64. |
base64ToString | Возвращает строковую версию для строки в кодировке Base64. |
бинарный | Возвращает двоичную версию для входного значения. |
bool | Возвращает логическое значение для входного значения. |
объединяться | Возвращает первое значение, отличное от NULL, из одного или нескольких параметров. |
createArray | Возвращает массив из нескольких входных данных. |
dataUri | Возвращает URI данных для входного значения. |
dataUriToBinary | Возвращает двоичную версию для URI данных. |
dataUriToString | Возвращает строковую версию для URI данных. |
декодированиеBase64 | Возвращает строковую версию для строки в кодировке Base64. |
декодироватьDataUri | Возвращает двоичную версию для URI данных. |
decodeUriComponent | Вернуть строку, в которой escape-символы заменены на декодированные версии. |
кодирование компонента URI | Возвращает строку, которая заменяет небезопасные символы URL-адреса escape-символами. |
float | Возвращает число с плавающей запятой для входного значения. |
int | Возвращает целочисленную версию строки. |
json | Возвращает значение типа нотации объектов JavaScript (JSON) или объект для строки или XML. |
строка | Возвращает строковую версию для входного значения. |
URIComponent | Верните значение, закодированное в формате URI, заменив небезопасные символы URL-адреса кодами экранирования. |
uriComponentToBinary | Возвращает двоичную версию для строки в кодировке URI. |
uriComponentToString | Возвращает строковую версию для строки в кодировке URI. |
XML | Возвращает XML-версию строки. |
xpath | Проведите проверку XML для узлов или значений, которые соответствуют выражению языка путей XML (XPath), и верните соответствующие узлы или значения. |
Математические функции
Эти функции можно использовать для обоих типов чисел: целых чисел и чисел с плавающей запятой.
Математические функции | Задача |
---|---|
добавить | Возвращает результат сложения двух чисел. |
div | Возвращает результат деления двух чисел. |
максимальное | Возвращает наибольшее значение из набора чисел или массива. |
мин | Возвращает наименьшее значение из набора чисел или массива. |
mod | Верните остаток от деления двух чисел. |
умножить на | Возвращает результат умножения двух чисел. |
rand | Возвращает случайное целое число из указанного диапазона. |
диапазон | Возвращает целый массив, начинающийся с указанного целого числа. |
sub | Возвращает результат вычитания второго числа из первого числа. |
Функции даты
Функция даты или времени | Задача |
---|---|
addDays | Добавьте несколько дней в метку времени. |
addHours | Добавьте несколько часов в метку времени. |
добавить минуты | Добавьте несколько минут в метку времени. |
addSeconds | Добавьте количество секунд в метку времени. |
addToTime | Добавьте несколько единиц времени в метку времени. См. также getFutureTime. |
convertFromUtc | Преобразуйте метку времени из универсального часового пояса (UTC) в целевой часовой пояс. |
convertTimeZone | Преобразуйте метку времени из исходного часового пояса в целевой часовой пояс. |
преобразовать в UTC | Преобразуйте метку времени из исходного часового пояса в универсальный код времени (UTC). |
деньМесяца | Возвращает день компонента месяца из метки времени. |
деньНедели | Возвращает день недели из метки времени. |
деньГода | Возвращает день компонента года из метки времени. |
formatDateTime | Возвращает метку времени в виде строки в необязательном формате. |
getFutureTime | Возвращает текущую метку времени и указанные единицы времени. См. также addToTime. |
получитьПрошедшееВремя | Возвращает текущую метку времени минус указанные единицы времени. См. также вычесть из времени. |
началоДня | Верните начало дня для временной метки. |
началоЧаса | Возвращает начало часа для метки времени. |
началоМесяца | Возвращает начало месяца для временной метки. |
вычитать из времени | Вычесть количество единиц времени из метки времени. См. также getPastTime. |
метки | Возвращает значение свойства ticks для указанной метки времени. |
utcNow | Возвращает текущую метку времени в виде строки. |