Преобразование данных с помощью действия хранимой процедуры SQL Server в Azure Data Factory или Synapse Analytics

ПРИМЕНИМО К: Azure Data Factory Azure Synapse Analytics

Совет

Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.

Действия преобразования данных в конвейере Фабрики данных или Synapse позволяют преобразовать необработанные данные в прогнозы и аналитические сведения. Действие хранимой процедуры — это одно из действий преобразования, которые поддерживает конвейер. Данная статья основана на материалах статьи о преобразовании данных, в которой приведен общий обзор преобразования данных и список поддерживаемых действий преобразования.

Примечание.

Если вы не знакомы с Azure Data Factory, ознакомьтесь с Introduction в Azure Data Factory и выполните инструкции: Tutorial: преобразование данных перед чтением этой статьи. Чтобы узнать больше о Synapse Analytics, прочитайте статью Что такое Azure Synapse Analytics.

Действие хранимой процедуры можно использовать для вызова хранимой процедуры в одном из следующих хранилищ данных в организации или на виртуальной машине Azure:

  • Azure SQL Database
  • Azure Synapse Analytics
  • база данных SQL Server. Если вы используете SQL Server, установите локальную среду выполнения интеграции на том же компьютере, где размещена база данных или на отдельном компьютере с доступом к базе данных. Self-Hosted среда выполнения интеграции — это компонент, который подключает источники данных на локальных серверах или виртуальных машинах Azure с облачными службами, обеспечивая безопасность и управление. Дополнительные сведения см. в статье Создание и настройка локальной среды выполнения интеграции.

Внимание

При копировании данных в Azure SQL Database или SQL Server можно настроить SqlSink в действии копирования для вызова хранимой процедуры с помощью свойства sqlWriterStoredProcedureName. Дополнительные сведения о свойстве см. в следующих статьях соединителя: Azure SQL Database, SQL Server. Вызов хранимой процедуры при копировании данных в Azure Synapse Analytics с помощью действия копирования не поддерживается. Но можно использовать действие хранимой процедуры для вызова хранимой процедуры в Azure Synapse Analytics.

При копировании данных из Azure SQL Database или SQL Server или Azure Synapse Analytics можно настроить SqlSource в действии копирования для вызова хранимой процедуры для чтения данных из исходной базы данных с помощью свойства sqlReaderStoredProcedureName. Дополнительные сведения см. в следующих статьях соединителя: Azure SQL Database, SQL Server, Azure Synapse Analytics

Если хранимая процедура имеет выходные параметры, вместо действия с хранимой процедурой используйте действие поиска и действие выполнения скрипта. Действие хранимой процедуры пока не поддерживает вызов SPs с параметром Output.

При вызове хранимой процедуры с выходными параметрами с помощью действия хранимой процедуры возникает следующая ошибка.

Ошибка выполнения на SQL Server. Если вам нужна дополнительная поддержка, обратитесь к SQL Server группе. Номер ошибки SQL: 201. Сообщение об ошибке: процедура или функция "sp_name" ожидает параметр "@output_param_name", который не был указан.

Создайте действие с хранимой процедурой с использованием пользовательского интерфейса

Чтобы использовать действие Stored Procedure в конвейере, выполните следующие действия:

  1. Выполните поиск Stored Procedure в области "Действия" конвейера и перетащите действие Stored Procedure на холст конвейера.

  2. Выберите новое действие хранимой процедуры на холсте, если оно еще не выбрано, и перейдите на вкладку Параметры, чтобы отредактировать его настройки.

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

  3. Выберите существующую или создайте связанную службу в Azure SQL Database, Azure Synapse Analytics или SQL Server.

  4. Выберите хранимую процедуру и укажите параметры ее выполнения.

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

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

{
    "name": "Stored Procedure Activity",
    "description":"Description",
    "type": "SqlServerStoredProcedure",
    "linkedServiceName": {
        "referenceName": "AzureSqlLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "storedProcedureName": "usp_sample",
        "storedProcedureParameters": {
            "identifier": { "value": "1", "type": "Int" },
            "stringData": { "value": "str1" }

        }
    }
}

В следующей таблице описаны эти свойства JSON:

Свойство Описание: Обязательное поле
имя Название деятельности. Да
описание Текст, описывающий, для чего используется действие Нет
тип Для действия хранимой процедуры используется тип действия SqlServerStoredProcedure. Да
linkedServiceName Ссылка на Azure SQL Database или Azure Synapse Analytics или SQL Server зарегистрирована как связанная служба в Data Factory. Чтобы узнать больше об этой связанной службе, см. статью Связанные службы вычислений. Да
storedProcedureName (имя хранимой процедуры) Укажите имя хранимой процедуры, которую нужно вызвать. Да
параметры хранимой процедуры Укажите значения для параметров хранимой процедуры. Используйте "param1": { "value": "param1Value","type":"param1Type" }, чтобы передать значения параметра и их тип, поддерживаемый источником данных. Если для параметра необходимо передать значение null, используйте синтаксис "param1": { "value": null } (все знаки в нижнем регистре). Нет

Сопоставление типов данных параметров

Тип данных, указываемый для параметра, представляет собой тип внутреннего сервиса, который сопоставляется с типом в источнике данных, который вы используете. Сопоставления типов данных для источника данных описаны в документации по соединителям. Например:

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