Поделиться через


Преобразование данных с помощью действия 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:

  • База данных Azure для PostgreSQL (версия 2.0)
  • База данных SQL Azure
  • Azure Synapse Analytics
  • База данных SQL Server. Если вы используете SQL Server, установите локальную среду выполнения интеграции на том же компьютере, где размещена база данных или на отдельном компьютере с доступом к базе данных. Локальная среда выполнения интеграции — это компонент, который обеспечивает безопасное и управляемое подключение локальных источников данных или данных виртуальной машины Azure к облачным службам. Дополнительные сведения см. в статье Создание и настройка локальной среды выполнения интеграции.
  • Oracle
  • Снежинка

Скрипт может содержать одну инструкцию SQL или несколько инструкций SQL, которые выполняются последовательно. Задача «Скрипт» позволяет выполнять следующее:

  • Укоротите таблицу для подготовки к вставке данных.
  • создание, изменение и удаление объектов базы данных, таких как таблицы и представления;
  • повторное создание таблиц фактов и таблиц измерений перед загрузкой данных;
  • Запустите хранимые процедуры. Если инструкция SQL вызывает хранимую процедуру, возвращающую результаты из временной таблицы, используйте параметр WITH RESULT SETS для определения метаданных набора результатов.
  • Сохраните набор строк, полученный в результате запроса, в качестве выходных данных активности для последующего использования.

Сведения о синтаксисе

Ниже приведен формат JSON для определения действия скрипта:

{ 
   "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:

Имя свойства Описание Обязательное поле
имя Название мероприятия. Да
тип Тип действия, установлен в "Скрипт". Да
свойстваТипа Укажите свойства для настройки операции Script Activity. Да
linkedServiceName Целевая база данных, в которой выполняется скрипт. Это должна быть ссылка на связанную службу. Да
Скрипты Массив объектов, представляющих скрипт. Нет
скрипты.текст Обычный текст блока запросов. Нет
скрипты.тип Тип блока запросов. Может иметь значение Query или NonQuery. Значение по умолчанию: Запрос. Нет
скрипты.параметр Массив параметров скрипта. Нет
scripts.parameter.name Имя параметра. Нет
scripts.parameter.value Значение параметра . Нет
скрипты.параметр.тип Тип данных параметра. Тип является логическим и соответствует сопоставлению типов для каждого соединителя. Нет
scripts.parameter.direction Направление параметра. Возможные значения: Input, Output, InputOutput. Значение игнорируется, если направление задано как Output. Тип ReturnValue не поддерживается. Установите значение возврата SP в выходной параметр, чтобы извлечь его. Нет
параметры скрипта размера Максимальный размер параметра. Применяется только к параметру направления Output и InputOutput типа string или byte[]. Нет
тайм-аут выполнения блока скрипта Время выполнения операции блока скрипта до истечения тайм-аута. Нет
настройки логирования Параметры для хранения журналов вывода. Если не указан, то журнал скриптов отключен. Нет
logSettings.logDestination Место назначения вывода журнала. Это может быть ActivityOutput или ExternalStore. Значение по умолчанию: ActivityOutput. Нет
logSettings.logLocationSettings Параметры целевого расположения, если logDestination имеет значение ExternalStore. Нет
logSettings.logLocationSettings.linkedServiceName Связанная служба целевого местоположения. Поддерживается только хранилище BLOB-объектов. Нет
logSettings.logLocationSettings.path Путь к папке, в которой хранятся журналы. Нет

Выходные данные операции

Образец вывода:

{ 
    "resultSetCount": 2, 
    "resultSets": [ 
        { 
            "rowCount": 10, 
            "rows":[ 
                { 
                    "<columnName1>": "<value1>", 
                    "<columnName2>": "<value2>", 
                    ... 
                } 
            ] 
        }, 
        ... 
    ], 
    "recordsAffected": 123, 
    "outputParameters":{ 
        "<parameterName1>": "<value1>", 
        "<parameterName2>": "<value2>" 
    }, 
    "outputLogs": "<logs>", 
    "outputLogsLocation": "<folder path>", 
    "outputTruncated": true, 
    ... 
} 
Имя свойства Описание Условие
количествоРезультатовНабора Число результирующих наборов, возвращаемых скриптом. Всегда
наборы результатов Массив, содержащий все результирующие наборы. Всегда
resultSets.rowCount Общее число строк в результирующем наборе. Всегда
наборыРезультатов.строки Массив строк в результирующем наборе. Всегда
затронутые записи Число строк, затронутых скриптом. Если scriptType равно NonQuery
выходные параметры Выходные параметры скрипта. Если параметр имеет тип Output или InputOutput.
outputLogs Журналы, записываемые скриптом (например, инструкцией PRINT). Если соединитель поддерживает инструкцию журнала и enableScriptLogs имеет значение true, а logLocationSettings не предоставляется.
outputLogsPath Полный путь к файлу журнала. Если enableScriptLogs имеет значение true и указан logLocationSettings.
outputTruncated Индикатор того, что выходные данные превышают предельные значения и они будут усечены. Если выходные данные превышают предельные значения.

Примечание.

  • Выходные данные собираются при каждом выполнении блока скрипта. Окончательные выходные данные — это объединенный результат всех выходных данных блока скрипта. Параметр вывода с тем же именем в другом блоке сценария будет перезаписан.
  • Так как выходные данные имеют ограничение размера и строк, выходные данные будут усечены в следующем порядке: журналы —> параметры —> строки. Это относится к одному блоку скрипта, что означает, что выходные строки следующего блока скрипта не вытеснит предыдущие журналы.
  • Любая ошибка, вызванная логом, не приведет к сбою действия.
  • Сведения об использовании выходных наборов результатов действий в нижнем потоке см. в документации по результату действия поиска.
  • Используйте outputLogs при использовании инструкций PRINT для ведения журнала. Если запрос возвращает наборы результатов, они будут доступны в выводе действия и будут ограничены 5000 строками / ограничением размера 4 МБ.

Настройка действия Script с помощью пользовательского интерфейса

Встроенный скрипт

Снимок экрана: пользовательский интерфейс для настройки встроенного скрипта.

Встроенные скрипты хорошо интегрируются с операциями CI/CD конвейера, так как скрипт сохраняется как часть метаданных конвейера.

Ведение журнала

Снимок экрана: пользовательский интерфейс для параметров ведения журнала для скрипта.

Параметры ведения журнала:

  • Disable (Отключить) — выходные данные выполнения не регистрируются.
  • Выходные данные действия — выходные данные выполнения скрипта добавляются к выходным данным действия. Затем последующие действия могут использовать его. Размер выходных данных ограничен 4 МБ.
  • Внешнее хранилище — сохраняет выходные данные в хранилище. Используйте этот параметр, если размер выходных данных превышает 2 МБ или вы хотите явно сохранить выходные данные в учетной записи хранения.

Примечание.

Выставление счетов — действие Script будет оплачиваться как действия конвейера.

Ознакомьтесь со следующими ссылками, в которых описаны способы преобразования данных другими способами: