Преобразование данных с помощью действия Script в Фабрике данных Azure или Synapse Analytics
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
Действия преобразования данных в конвейере Фабрики данных или Synapse позволяют преобразовать необработанные данные в прогнозы и аналитические сведения. Действие Script — это одно из действий преобразования данных, которые поддерживает конвейер. Данная статья основана на материалах статьи о преобразовании данных, в которой приведен общий обзор преобразования данных и список поддерживаемых действий преобразования.
С помощью действия Script можно выполнять стандартные операции на языках DML и DDL. Инструкции DML, такие как INSERT, UPDATE, DELETE и SELECT, позволяют пользователям вставлять, изменять, удалять и извлекать данные в базе данных. Инструкции DDL, такие как CREATE, ALTER и DROP, позволяют диспетчеру баз данных создавать, изменять и удалять объекты базы данных, в том числе таблицы, индексы и пользователей.
С помощью действия Script можно вызвать скрипт SQL в одном из приведенных ниже хранилищ данных вашего предприятия или на виртуальной машине Azure:
- База данных SQL Azure
- Azure Synapse Analytics
- База данных SQL Server. Если вы используете SQL Server, установите локальную среду выполнения интеграции на том же компьютере, на котором размещена база данных, или на отдельном компьютере, имеющем доступ к базе данных. Локальная среда выполнения интеграции — это компонент, который обеспечивает безопасное и управляемое подключение локальных источников данных или данных виртуальной машины Azure к облачным службам. Дополнительные сведения см. в статье Создание и настройка локальной среды выполнения интеграции.
- Oracle
- Снежинка
Скрипт может содержать одну инструкцию SQL или несколько инструкций SQL, которые выполняются последовательно. Задача «Скрипт» позволяет выполнять следующее:
- усечение таблицы в процессе подготовки для вставки данных;
- создание, изменение и удаление объектов базы данных, таких как таблицы и представления;
- повторное создание таблиц фактов и таблиц измерений перед загрузкой данных;
- выполнение хранимых процедур; Если инструкция SQL вызывает хранимую процедуру, возвращающую результаты из временной таблицы, используйте параметр WITH RESULT SETS для определения метаданных набора результатов.
- Сохранение набора строк, возвращенного запросом, в качестве выходных данных действия для дальнейшего использования.
Сведения о синтаксисе
Ниже приведен формат JSON для определения действия Script:
{
"name": "<activity name>",
"type": "Script",
"linkedServiceName": {
"referenceName": "<name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"scripts" : [
{
"text": "<Script Block>",
"type": "<Query> or <NonQuery>",
"parameters":[
{
"name": "<name>",
"value": "<value>",
"type": "<type>",
"direction": "<Input> or <Output> or <InputOutput>",
"size": 256
},
...
]
},
...
],
...
]
},
"scriptBlockExecutionTimeout": "<time>",
"logSettings": {
"logDestination": "<ActivityOutput> or <ExternalStore>",
"logLocationSettings":{
"linkedServiceName":{
"referenceName": "<name>",
"type": "<LinkedServiceReference>"
},
"path": "<folder path>"
}
}
}
}
В следующей таблице описаны эти свойства JSON:
Имя свойства | Description | Обязательное поле |
---|---|---|
name | Имя действия. | Да |
type | Тип действия, для параметра "Скрипт". | Да |
typeProperties | Укажите свойства для настройки действия Script. | Да |
linkedServiceName | Целевая база данных, в которой выполняется скрипт. Это должна быть ссылка на связанную службу. | Да |
Скрипты | Массив объектов, представляющих скрипт. | No |
scripts.text | Обычный текст блока запросов. | No |
scripts.type | Тип блока запросов. Может иметь значение Query или NonQuery. Значение по умолчанию: Query. | No |
scripts.parameter | Массив параметров скрипта. | No |
scripts.parameter.name | Имя параметра. | No |
scripts.parameter.value | Значение параметра . | No |
scripts.parameter.type | Тип данных параметра. Тип является логическим и соответствует сопоставлению типов для каждого соединителя. | No |
scripts.parameter.direction | Направление параметра. Возможные значения: Input, Output, InputOutput. Значение игнорируется, если задано направление Output. Тип ReturnValue не поддерживается. Установите возвращаемое значение SP для параметра вывода, чтобы получать его. | No |
scripts.parameter.size | Максимальный размер параметра. Применяется только к параметру направления Output и InputOutput типа string или byte[]. | No |
scriptBlockExecutionTimeout | Время ожидания завершения операции выполнения блока скрипта до истечения времени ожидания. | No |
logSettings | Параметры для хранения журналов вывода. Если не указан, то журнал скриптов отключен. | No |
logSettings.logDestination | Назначение выходных данных журнала. Возможные значения: ActivityOutput или ExternalStore. Значение по умолчанию: ActivityOutput. | No |
logSettings.logLocationSettings | Параметры целевого расположения, если logDestination имеет значение ExternalStore. | No |
logSettings.logLocationSettings.linkedServiceName | Связанная служба целевого расположения. Поддерживается только хранилище BLOB-объектов. | No |
logSettings.logLocationSettings.path | Путь к папке, в которой хранятся журналы. | No |
Выходные данные действия
Образец вывода:
{
"resultSetCount": 2,
"resultSets": [
{
"rowCount": 10,
"rows":[
{
"<columnName1>": "<value1>",
"<columnName2>": "<value2>",
...
}
]
},
...
],
"recordsAffected": 123,
"outputParameters":{
"<parameterName1>": "<value1>",
"<parameterName2>": "<value2>"
},
"outputLogs": "<logs>",
"outputLogsLocation": "<folder path>",
"outputTruncated": true,
...
}
Имя свойства | Description | Условие |
---|---|---|
resultSetCount | Число результирующих наборов, возвращаемых скриптом. | Всегда |
resultSets | Массив, содержащий все результирующие наборы. | Всегда |
resultSets.rowCount | Общее число строк в результирующем наборе. | Всегда |
resultSets.rows | Массив строк в результирующем наборе. | Всегда |
recordsAffected | Число строк, затронутых скриптом. | Значение "Если scriptType is NonQuery" |
outputParameters | Выходные параметры скрипта. | Если параметр имеет тип Output или InputOutput. |
outputLogs | Журналы, записываемые скриптом (например, инструкцией PRINT). | Если соединитель поддерживает инструкцию журнала и enableScriptLogs имеет значение true, а logLocationSettings не предоставляется. |
outputLogsPath | Полный путь к файлу журнала. | Если enableScriptLogs имеет значение true и указан logLocationSettings. |
outputTruncated | Индикатор того, что выходные данные превышают предельные значения и они будут усечены. | Если выходные данные превышают предельные значения. |
Примечание.
- Выходные данные собираются при каждом выполнении блока скрипта. Окончательные выходные данные — это объединенный результат всех выходных данных блока скрипта. Параметр вывода таким же именем в другом блоке скрипта будет перезаписан.
- Так как выходные данные имеют ограничение размера и строк, они усекаются в следующем порядке: журналы > параметры > строки. Обратите внимание на то, что это относится к одному блоку скрипта. Это означает, что выходные строки следующего блока скрипта не приведут к исключению предыдущих журналов.
- Любая ошибка, вызванная журналом, не приведет к сбою действия.
- Использование выходных данных resultSets действия в нисходящем действии описывается в документации по действию Lookup.
- Используйте outputLogs при использовании инструкций PRINT для ведения журнала. Если запрос возвращает результирующий набор, он будет доступен в выходных данных действия и будет ограничен 5000 строками/ ограничением размера 4 МБ.
Настройка действия Script с помощью пользовательского интерфейса
Встроенный скрипт
Встроенные скрипты хорошо интегрируются с операциями CI/CD конвейера, так как скрипт сохраняется как часть метаданных конвейера.
Ведение журнала
Параметры ведения журнала:
- Disable (Отключить) — выходные данные выполнения не регистрируются.
- Выходные данные действия — выходные данные выполнения скрипта добавляются к выходным данным действия. Затем подчиненные действия могут использовать его. Размер выходных данных ограничен 4 МБ.
- Внешнее хранилище — сохраняет выходные данные в хранилище. Используйте этот параметр, если размер выходных данных превышает 2 МБ или вы хотите явно сохранить выходные данные в учетной записи хранения.
Примечание.
Выставление счетов — действие Script будет оплачиваться как действия конвейера.
Связанный контент
Ознакомьтесь со следующими ссылками, в которых описаны способы преобразования данных другими способами: