Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать параметры в конвейерах фабрики данных в 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) подключения, который требуется заменить динамически.
- Перед тем как динамически изменить подключение в конвейере, получите GUID подключения, которое вы хотите задать.
- Перейдите к разделу "Параметры>управления подключениями и шлюзами".
- Найдите имя подключения и выберите рядом с ним многоточие (...).
- Выберите "Параметры" и скопируйте идентификатор подключения.
- Вставьте 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 | Возвращает текущую метку времени в виде строки. |