Настройка локальной среды IR в качестве прокси-сервера для Azure-SSIS IR

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этой статье описывается, как запускать пакеты SQL Server Integration Services (SSIS) в Azure-SSIS Integration Runtime (Azure-SSIS IR) с помощью локальной среды выполнения интеграции (IR), настроенной в качестве прокси.

С помощью этой функции можно получать доступ к данным и запускать задачи в локальной среде без обязательного присоединения Azure-SSIS IR к виртуальной сети. Эта функция полезна, если у корпоративной сети слишком сложная конфигурация или слишком сильные ограничения политики, которые не позволяют встроить в нее свою среду Azure-SSIS IR.

На данный момент эту функцию можно включить только для задачи потока данных SSIS и задач "Выполнить код SQL" / "Выполнить процесс".

Если эта функция включена для задачи потока данных, она разбивает ее на две промежуточные задачи, если существует такая возможность:

  • Локальная промежуточная задача — обеспечивает выполнение компонента потока данных, который подключается к локальному хранилищу данных в локальной среде IR. Эта задача перемещает данные из локального хранилища данных в промежуточную область, располагающуюся в хранилище BLOB-объектов Azure, или наоборот.
  • Облачная промежуточная задача — обеспечивает выполнение компонента потока данных, который не подключается к локальному хранилищу данных в вашей среде Azure-SSIS IR. Эта задача перемещает данные из промежуточной области хранилища BLOB-объектов Azure в облачное хранилище данных и наоборот.

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

Если функция включена для задач "Выполнить код SQL" / "Выполнить процесс", она будет запускать эти задачи в вашей локальной среде выполнения интеграции.

Другие преимущества и возможности этой функции позволяют, например, настроить локальную среду IR в регионах, которые еще не поддерживаются Azure-SSIS IR, и открыть доступ с общедоступного статического IP-адреса локальной среды IR на брандмауэре источников данных.

Подготовка к работе локальной среды IR

Чтобы использовать эту функцию, сначала создайте фабрику данных и настройте в ней Azure-SSIS IR. Если вы еще этого не сделали, следуйте инструкциям в статье "Подготовка среды выполнения интеграции Azure-SSIS в Фабрике данных Azure".

Затем необходимо настроить локальную среду IR в той же фабрике данных, в которой у вас настроена Azure-SSIS IR. Дополнительные сведения см. в статье "Создание и настройка локальной среды выполнения интеграции".

В заключение необходимо скачать и установить последнюю версию локальной среды IR, а также дополнительные драйверы и среду выполнения на локальном компьютере или виртуальной машине Azure, как описано ниже.

  • Скачайте и установите последнюю версию локальной среды IR.

  • Включите выполнение пакета служб SSIS на локальном узле среды выполнения интеграции, если локальная версия IR — 5.28.0 или более поздняя.

    Свойство ExecuteSsisPackage впервые представлено из локальной среды IR версии 5.28.0. Используйте ниже действие командной строки локальной среды IR, чтобы включить или отключить выполнение пакета SSIS:

    • -EnableExecuteSsisPackage Enable SSIS package execution on self-hosted IR node.

    • -DisableExecuteSsisPackage Disable SSIS package execution on self-hosted IR node.

    • -GetExecuteSsisPackage

    Сведения о командной строке локальной среды ir см. в статье "Настройка существующей локальной среды ir через локальную среду PowerShell".

    Недавно установленный узел локальной среды IR с версией 5.28.0 или более поздней, свойство ExecuteSsisPackage по умолчанию отключено.

    Существующий локальный узел IR, обновленный до версии 5.28.0 или более поздней, свойство ExecuteSsisPackage по умолчанию включено

  • Если вы используете в своих пакетах соединители OLEDB, ODBC или ADO.NET, скачайте и установите соответствующие драйверы на том же компьютере, где установлена локальная среда IR, если это еще не сделано.

    Если вы пользуетесь более ранней версией драйвера OLEDB для SQL Server (SQL Server Native Client [SQLNCLI]), скачайте 64-разрядную версию.

    Если вы пользуетесь последней версией драйвера OLEDB для SQL Server (MSOLEDBSQL), скачайте 64-разрядную версию.

    Если вы используете драйверы OLEDB, ODBC или ADO.NET для других систем баз данных, таких как PostgreSQL, MySQL, Oracle и т. д., можно загрузить их 64-разрядные версии с соответствующих веб-сайтов.

  • Если вы используете компоненты потока данных из пакета компонентов Azure в своих пакетах, скачайте и установите пакет компонентов Azure для SQL Server 2017 на том же компьютере, где установлена локальная среда IR, если это еще не сделано.

  • Если вы еще этого не сделали, скачайте и установите 64-разрядную версию среды выполнения Visual C++ (VC) на том же компьютере, где установлена локальная среда IR.

Включение проверки подлинности Windows для локальных промежуточных задач

Если для локальных промежуточных задач и задач "Выполнить код SQL" / "Выполнить процесс" в вашей локальной среде IR требуется проверка подлинности Windows, вам необходимо также настроить функцию проверки подлинности Windows на Azure-SSIS IR.

Для вызова локальных промежуточных задач и задач "Выполнить код SQL" / "Выполнить процесс" будет использоваться учетная запись локальной службы IR (по умолчаниюNT SERVICE\DIAHostService), а для доступа к хранилищам данных — учетная запись проверки подлинности Windows. Обеим учетным записям необходимо назначить определенные политики безопасности. На компьютере, где установлена локальная среда IR, перейдите в раздел Локальная политика безопасности>Локальные политики>Назначение прав пользователя и выполните следующие действия.

  1. Назначьте для учетной записи локальной среды IR политики Настройка квот памяти для процесса и Замена маркера уровня процесса. Это должно происходить автоматически при установке локальной среды IR с использованием учетной записи службы по умолчанию. Если этого не произошло, назначьте эти политики вручную. Если вы используете другую учетную запись службы, назначьте ей те же политики.

  2. Назначьте учетной записи проверки подлинности Windows политику Вход в качестве службы.

Подготовка связанной службы Хранилища BLOB-объектов Azure для промежуточного хранения

Если вы еще этого не сделали, создайте связанную службу Хранилища BLOB-объектов Azure в той же фабрике данных, в которой настроена среда Azure-SSIS IR. О том, как это сделать, см. в разделе Создание связанной службы для Фабрики данных Azure. Обязательно сделайте следующее:

  • В качестве хранилища данных выберите Хранилище BLOB-объектов Azure.
  • В раскрывающемся списке Среда выполнения интеграции для подключения выберите AutoResolveIntegrationRuntime (не локальную среду IR), чтобы мы могли проигнорировать эту среду и использовать вместо нее среду Azure-SSIS IR для получения учетных данных доступа к Хранилищу BLOB-объектов Azure.
  • В раскрывающемся списке Способ проверки подлинности выберите вариант Ключ учетной записи, URI SAS, Субъект-служба, Управляемое удостоверение или Управляемое удостоверение, назначаемое пользователем.

Совет

Если экземпляр фабрики данных включен с поддержкой Git, связанная служба без проверки подлинности ключа не будет немедленно опубликована, что означает, что нельзя сохранить среду выполнения интеграции, зависящую от связанной службы в вашей ветви функций. Проверка подлинности с помощью ключа учетной записи или URI SAS немедленно публикует связанную службу.

Совет

Если выбран способ Субъект-служба, предоставьте субъекту-службе по крайней мере роль Участник для данных BLOB-объектов хранилища. Дополнительные сведения см. в статье "Копирование и преобразование данных в Хранилище BLOB-объектов Azure с помощью Фабрики данных Azure". Если вы выберете метод Управляемое удостоверение/Управляемое удостоверение, назначаемое пользователем, предоставьте указанному управляемому удостоверению для ADF, назначаемому системой или пользователем, надлежащую роль для доступа к Хранилищу BLOB-объектов Azure. Дополнительные сведения см. в статье Access Хранилище BLOB-объектов Azure с помощью проверки подлинности Microsoft Entra с указанным управляемым удостоверением, назначенным системой или пользователем для ADF.

Prepare the Azure Blob storage-linked service for staging

Настройка Azure-SSIS IR для работы с локальной средой IR в качестве прокси

Подготовив для промежуточного хранения локальную среду IR и службу, связанную с Хранилищем BLOB-объектов Azure, можно теперь настроить новую или существующую среду Azure-SSIS IR для работы с локальной средой IR в качестве прокси на портале или в приложении Фабрики данных. Перед этим, если у вас уже есть работающая среда Azure-SSIS IR, ее можно остановить, изменить или перезапустить.

  1. В области Настройка среды выполнения интеграции пропустите разделы Общие параметры и Параметры развертывания, нажав кнопку Продолжить .

  2. На странице Дополнительные параметры выполните следующие действия.

    1. Установите флажок Настроить локальную среду выполнения интеграции в качестве прокси для Azure-SSIS Integration Runtime.

    2. В раскрывающемся списке Локальная среда выполнения интеграции выберите имеющуюся локальную среду IR в качестве прокси для Azure-SSIS IR.

    3. В раскрывающемся списке Служба, связанная с промежуточным хранилищем выберите существующую службу, связанную с Хранилищем BLOB-объектов Azure, или создайте новую службу для промежуточного хранения.

    4. В поле Промежуточный путь укажите контейнер BLOB-объектов в выбранной учетной записи службы хранилища Azure или оставьте это поле пустым, чтобы использовать для промежуточного хранения заданный по умолчанию контейнер.

    5. Нажмите кнопку Продолжить.

    Advanced settings with a self-hosted IR

Настроить новую или существующую среду Azure-SSIS IR для работы с локальной средой IR в качестве прокси можно также с помощью PowerShell.

$ResourceGroupName = "[your Azure resource group name]"
$DataFactoryName = "[your data factory name]"
$AzureSSISName = "[your Azure-SSIS IR name]"
# Self-hosted integration runtime info - This can be configured as a proxy for on-premises data access 
$DataProxyIntegrationRuntimeName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingLinkedServiceName = "" # OPTIONAL to configure a proxy for on-premises data access 
$DataProxyStagingPath = "" # OPTIONAL to configure a proxy for on-premises data access 

# Add self-hosted integration runtime parameters if you configure a proxy for on-premises data access
if(![string]::IsNullOrEmpty($DataProxyIntegrationRuntimeName) -and ![string]::IsNullOrEmpty($DataProxyStagingLinkedServiceName))
{
    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
        -DataFactoryName $DataFactoryName `
        -Name $AzureSSISName `
        -DataProxyIntegrationRuntimeName $DataProxyIntegrationRuntimeName `
        -DataProxyStagingLinkedServiceName $DataProxyStagingLinkedServiceName

    if(![string]::IsNullOrEmpty($DataProxyStagingPath))
    {
        Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
            -DataFactoryName $DataFactoryName `
            -Name $AzureSSISName `
            -DataProxyStagingPath $DataProxyStagingPath
    }
}
Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName `
    -DataFactoryName $DataFactoryName `
    -Name $AzureSSISName `
    -Force

Разрешение подключения пакетов SSIS для использования прокси-сервера

Если вы используете последнюю версию SSDT в виде расширения SSIS Projects для Visual Studio или автономного установщика, то найдете новое свойство ConnectByProxy в диспетчере подключений для поддерживаемых компонентов потока данных и свойство ExecuteOnProxy в задачах "Выполнить код SQL" / "Выполнить процесс".

При проектировании новых пакетов, содержащих задачи потока данных с компонентами, которые обращаются к локальным данным, можно включить свойство ConnectByProxy, задав для него значение True в области Свойства соответствующих диспетчеров подключений.

При проектировании новых пакетов, содержащих задачи "Выполнить код SQL" / "Выполнить процесс", которые запускаются в локальной среде, можно включить свойство ExecuteOnProxy, задав для него значение True в области Свойства соответствующих задач.

Enable ConnectByProxy/ExecuteOnProxy property

Вы также можете включить свойства ConnectByProxy/ExecuteOnProxy при запуске существующих пакетов без необходимости вручную менять их по одному. Существует два варианта.

  • Вариант A: открытие, перестроить и повторно развернуть проект, содержащий эти пакеты, с последним SSDT для запуска в Azure-SSIS IR. Кроме того, свойство ConnectByProxy можно включить, задав для него значение True в соответствующих диспетчерах подключений, которые отображаются на вкладке Диспетчеры подключений всплывающего окна Выполнение пакета при выполнении пакетов из SSMS.

    Enable ConnectByProxy/ExecuteOnProxy property2

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

    Enable ConnectByProxy/ExecuteOnProxy property3

  • Вариант B: повторно развернуть проект, содержащий эти пакеты, для выполнения в вашей среде SSIS IR. Затем можно включить свойства ConnectByProxy/ExecuteOnProxy, указав к ним пути, \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy], и задав для них значение True в качестве переопределения свойства на вкладке Дополнительно во всплывающем окне Выполнение пакета при выполнении пакетов из SSMS.

    Enable ConnectByProxy/ExecuteOnProxy property4

    Можно также включить свойства ConnectByProxy/ExecuteOnProxy, указав к ним пути, \Package.Connections[YourConnectionManagerName].Properties[ConnectByProxy]/\Package\YourExecuteSQLTaskName.Properties[ExecuteOnProxy]/\Package\YourExecuteProcessTaskName.Properties[ExecuteOnProxy], и задав для них значение True в качестве переопределения свойства на вкладке Переопределения свойств действия Выполнение пакета SSIS при выполнении пакетов в конвейерах Фабрики данных.

    Enable ConnectByProxy/ExecuteOnProxy property5

Отладка локальных и облачных промежуточных задач

В локальной среде IR журналы среды выполнения можно найти в папке C:\ProgramData\SSISTelemetry, а журналы выполнения локальных промежуточных задач и задач "Выполнить код SQL" / "Выполнить процесс" — в папке C:\ProgramData\SSISTelemetry\ExecutionLog. Журналы выполнения облачных промежуточных задач можно найти в SSISDB, по указанным путям к файлам журналов или в Azure Monitor в зависимости от того, хранятся ли пакеты в SSISDB, включена ли интеграция с Azure Monitorи т. д. Кроме того, уникальные идентификаторы локальных промежуточных задач можно найти в журналах выполнения облачных промежуточных задач.

Unique ID of the first staging task

Если вы направляли запросы в службу поддержки клиентов, то можете нажать кнопку Отправить журналы на вкладке Диагностика средства Microsoft Integration Runtime Configuration Manager, установленного в локальной среде IR, чтобы отправить на исследование в Майкрософт последние журналы операций или выполнения.

Выставление счетов за локальные и облачные промежуточные задачи

Счета за локальные промежуточные задачи и задачи "Выполнить код SQL" / "Выполнить процесс", выполняемые в локальной среде IR, выставляются отдельно, как и за любые действия по перемещению данных, которые выполняются в локальной среде IR. Это указано на странице "Ценообразование конвейера данных".

Отдельные счета за оплату облачных промежуточных задач, выполняемых в среде Azure-SSIS IR, не выставляются, но выставляются счета за использование Azure-SSIS IR, как указано на странице "Ценообразование на службы SQL Server Integration Services".

Принудительное применение TLS 1.2

Если необходимо получить доступ к хранилищам данных, которые были настроены для использования только наиболее надежного шифрования или наиболее безопасного сетевого протокола (TLS 1.2), включая службу хранилища больших двоичных объектов Azure для промежуточного хранения, в локальной среде IR необходимо включить только TLS 1.2 и одновременно отключить старые версии SSL/TLS. Для этого можно загрузить и запустить сценарий main.cmd, который находится в папке CustomSetupScript/UserScenarios/TLS 1.2 в контейнере больших двоичных объектов в версии общедоступной предварительной версии. В Обозревателе службы хранилища Azure вы можете подключиться к нашему общедоступному контейнеру BLOB-объектов предварительной версии, введя следующий URI SAS:

https://ssisazurefileshare.blob.core.windows.net/publicpreview?sp=rl&st=2020-03-25T04:00:00Z&se=2025-03-25T04:00:00Z&sv=2019-02-02&sr=c&sig=WAD3DATezJjhBCO3ezrQ7TUZ8syEUxZZtGIhhP6Pt4I%3D

Текущие ограничения

  • В настоящее время поддерживаются только компоненты потока данных, встроенные или предварительно установленные в Azure-SSIS IR Standard Edition, за исключением компонентов Hadoop/HDFS/DQS — см. статью "Встроенные и предварительно установленные компоненты в Azure-SSIS IR".
  • В настоящее время поддерживаются только пользовательские или сторонние компоненты потока данных, написанные в управляемом коде (на платформе .NET Framework). Компоненты, написанные в машинном коде (на языке C++), сейчас не поддерживаются.
  • Изменение значений переменных в локальных и облачных промежуточных задачах в настоящее время не поддерживается.
  • Изменение значений переменных типа Object в локальных промежуточных задачах не будет отражено в других задачах.
  • Свойство ParameterMapping в источнике OLEDB в настоящее время не поддерживается. В качестве обходного решения задайте значение Команда SQL из переменной для свойства AccessMode и используйте выражение для вставки переменных или параметров в команду SQL. Иллюстрацию см. в пакете ParameterMappingSample.dtsx, который находится в папке SelfHostedIRProxy/Limitations нашего общедоступного контейнера BLOB-объектов предварительной версии. В Обозревателе службы хранилища Azure вы можете подключиться к нашему общедоступному контейнеру BLOB-объектов предварительной версии, введя указанный выше URI SAS.

После настройки локальной среды IR в качестве прокси для Azure-SSIS IR вы можете развертывать и запускать пакеты для локального доступа к данным и (или) запуска любых инструкций/процессов SQL в качестве действий "Выполнить пакет SSIS" в конвейерах Фабрики данных. Дополнительные сведения см. в статье "Запуск пакетов служб SSIS как действий ''Выполнение пакета SSIS'' в конвейерах Фабрики данных". См. также наши блоги: Запуск любого SQL в любом месте с помощью SSIS в Фабрике данных Azure: 3 простых действия и Выполнение любого процесса в любом месте с помощью SSIS в Фабрике данных Azure: 3 простых шага.