Настройка среды выполнения интеграции Azure-SSIS для высокой производительности;

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

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

В этой статье описывается настройка среды выполнения интеграции Azure-SSIS для высокой производительности. Azure SSIS IR можно использовать для развертывания и запуска пакетов SQL Server Integration Services (SSIS) в Azure. Дополнительные сведения о среде выполнения интеграции Azure-SSIS IR см. в этом разделе. Сведения о развертывании и запуске пакетов SQL Server Integration Services (SSIS) в Azure см. в статье Lift and shift SQL Server Integration Services workloads to the cloud (Перенос рабочих нагрузок SQL Server Integration Services в облако).

Внимание

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

Свойства, которые нужно настроить

В следующей части сценария конфигурации приведены свойства, которые можно настроить при создании среды выполнения интеграции Azure-SSIS. Полный сценарий и описание PowerShell см. в статье Развертывание пакетов служб интеграции SQL Server (SSIS) в Azure.

# If your input contains a PSH special character, e.g. "$", precede it with the escape character "`" like "`$"
$SubscriptionName = "[your Azure subscription name]"
$ResourceGroupName = "[your Azure resource group name]"
$DataFactoryName = "[your data factory name]"
# For supported regions, see https://azure.microsoft.com/global-infrastructure/services/?products=data-factory&regions=all
$DataFactoryLocation = "EastUS"

### Azure-SSIS integration runtime information - This is a Data Factory compute resource for running SSIS packages
$AzureSSISName = "[specify a name for your Azure-SSIS IR]"
$AzureSSISDescription = "[specify a description for your Azure-SSIS IR]"
# For supported regions, see https://azure.microsoft.com/global-infrastructure/services/?products=data-factory&regions=all
$AzureSSISLocation = "EastUS"
# For supported node sizes, see https://azure.microsoft.com/pricing/details/data-factory/ssis/
$AzureSSISNodeSize = "Standard_D8_v3"
# 1-10 nodes are currently supported
$AzureSSISNodeNumber = 2
# Azure-SSIS IR edition/license info: Standard or Enterprise
$AzureSSISEdition = "Standard" # Standard by default, while Enterprise lets you use advanced/premium features on your Azure-SSIS IR
# Azure-SSIS IR hybrid usage info: LicenseIncluded or BasePrice
$AzureSSISLicenseType = "LicenseIncluded" # LicenseIncluded by default, while BasePrice lets you bring your existing SQL Server license with Software Assurance to earn cost savings from Azure Hybrid Benefit (AHB) option
# For a Standard_D1_v2 node, up to 4 parallel executions per node are supported, but for other nodes, up to max(2 x number of cores, 8) are currently supported
$AzureSSISMaxParallelExecutionsPerNode = 8
# Custom setup info
$SetupScriptContainerSasUri = "" # OPTIONAL to provide SAS URI of blob container where your custom setup script and its associated files are stored
# Virtual network info: Classic or Azure Resource Manager
$VnetId = "[your virtual network resource ID or leave it empty]" # REQUIRED if you use Azure SQL Database with virtual network service endpoints/SQL Managed Instance/on-premises data, Azure Resource Manager virtual network is recommended, Classic virtual network will be deprecated soon
$SubnetName = "[your subnet name or leave it empty]" # WARNING: Please use the same subnet as the one used with your Azure SQL Database with virtual network service endpoints or a different subnet than the one used for your SQL Managed Instance

### SSISDB info
$SSISDBServerEndpoint = "[your server name or managed instance name.DNS prefix].database.windows.net" # WARNING: Please ensure that there is no existing SSISDB, so we can prepare and manage one on your behalf
# Authentication info: SQL or Entra ID
$SSISDBServerAdminUserName = "[your server admin username for SQL authentication or leave it empty for AAD authentication]"
$SSISDBServerAdminPassword = "[your server admin password for SQL authentication or leave it empty for AAD authentication]"
$SSISDBPricingTier = "[Basic|S0|S1|S2|S3|S4|S6|S7|S9|S12|P1|P2|P4|P6|P11|P15|…|ELASTIC_POOL(name = <elastic_pool_name>) for Azure SQL Database or leave it empty for SQL Managed Instance]"

AzureSSISLocation

AzureSSISLocation — расположение для рабочего узла среды выполнения интеграции. Рабочий узел поддерживает постоянное подключение к базе данных каталога SSIS (SSISDB) в Базе данных Azure SQL. Задайте для AzureSSISLocation то же расположение, что и для логического сервера SQL, на котором размещена SSISDB, что позволяет среде выполнения интеграции работать максимально эффективно.

AzureSSISNodeSize

Служба "Фабрика данных Azure", включая среду выполнения интеграции MSSQL Integration Services Azure, поддерживает следующие параметры:

  • Standard_A4_v2
  • Standard_A8_v2
  • Standard_D1_v2
  • Standard_D2_v2
  • Standard_D3_v2
  • Standard_D4_v2
  • Standard_D2_v3
  • Standard_D4_v3
  • Standard_D8_v3
  • Standard_D16_v3
  • Standard_D32_v3
  • Standard_D64_v3
  • Standard_E2_v3
  • Standard_E4_v3
  • Standard_E8_v3
  • Standard_E16_v3
  • Standard_E32_v3
  • Standard_E64_v3

В неофициальном внутреннем тестировании командой разработчиков служб SSIS оказалось, что устройства серии D (а не серии A) лучше использовать для выполнения пакета служб SSIS.

  • Соотношение производительности и цены у серии D лучше, чем у серии A, а у серии v3 — лучше, чем у серии v2.
  • Пропускная способность у серии D выше, чем у серии A с той же ценой, а у серии v3 — выше, чем у серии v2 с той же ценой.
  • Узлы версии 2 Azure-SSIS IR не подходят для пользовательской установки, поэтому рекомендуется использовать вместо них узлы версии 3. Если вы уже используете узлы версии 2, перейдите на узлы версии 3 как можно скорее.
  • Серия E — это оптимизированные для памяти варианты размера виртуальных машин, обеспечивающие лучшее соотношение объема памяти и ЦП, чем у других компьютеров. Если для вашего пакета требуется много памяти, можно выбрать виртуальную машину серии E.

Настройка скорости выполнения

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

Далее предоставлены данные о выполнении одного пакета на одном рабочем узле. Этот пакет загружает 3 миллиона записей столбцов с именами и фамилиями из хранилища BLOB-объектов Azure, создает столбец с полным именем и записи с полным именем длиной более 20 символов в хранилище BLOB-объектов Azure.

Ось Y — это количество пакетов, выполненных за один час. Обратите внимание, что это только результат теста одного пакета, использующего память. Если вы хотите уточнить пропускную способность своего пакета, рекомендуется провести тест самостоятельно.

Скорость выполнения пакета среды выполнения интеграции SSIS

Настройка общей пропускной способности

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

Ось Y — это количество пакетов, выполненных за один час. Обратите внимание, что это только результат теста одного пакета, использующего память. Если вы хотите уточнить пропускную способность своего пакета, рекомендуется провести тест самостоятельно.

Максимальная общая пропускная способность среды выполнения интеграции SSIS

AzureSSISNodeNumber

AzureSSISNodeNumber корректирует масштабируемость среды выполнения интеграции. Пропускная способность среды выполнения интеграции пропорциональна AzureSSISNodeNumber. Сначала задайте для AzureSSISNodeNumber небольшое значение, контролируйте пропускную способность среды выполнения интеграции, а затем измените значение для своего сценария. Чтобы узнать, как изменить количество рабочих узлов, см. статью Управление средой выполнения интеграции Azure SSIS.

AzureSSISMaxParallelExecutionsPerNode

Если вы уже используете мощный рабочий узел для запуска пакетов, увеличение значения AzureSSISMaxParallelExecutionsPerNode может повысить общую пропускную способность среды выполнения интеграции. Если вам нужно увеличить максимальное значение, вам потребуется обновить AzureSSISMaxParallelExecutionsPerNode с помощью Azure PowerShell. Вы можете определить подходящее значение на основе стоимости пакета и следующих конфигураций для рабочих узлов. Дополнительные сведения см. в статье Размеры виртуальных машин общего назначения.

Размер Виртуальные ЦП Память, ГиБ Временное хранилище (SSD): ГиБ Максимальная пропускная способность временного хранилища: операций ввода-вывода в секунду / скорость чтения (МБит/с) / скорость записи (МБит/с) Макс. число дисков данных / пропускная способность: операций ввода-вывода в секунду Максимальное число сетевых адаптеров и ожидаемая производительность сети (Мбит/с)
Standard_D1_v2 1 3.5 50 3000 / 46 / 23 2 / 2x500 2 / 750
Standard_D2_v2 2 7 100 6000 / 93 / 46 4 / 4x500 2 / 1500
Standard_D3_v2 4 14 200 12000 / 187 / 93 8 / 8x500 4 / 3000
Standard_D4_v2 8 28 400 24000 / 375 / 187 16 / 16x500 8 / 6000
Standard_A4_v2 4 8 40 4000 / 80 / 40 8 / 8x500 4 / 1000
Standard_A8_v2 8 16 80 8000 / 160 / 80 16 / 16x500 8 / 2000
Standard_D2_v3 2 8 50 3000 / 46 / 23 4 / 6x500 2 / 1000
Standard_D4_v3 4 16 100 6000 / 93 / 46 8 / 12x500 2 / 2000
Standard_D8_v3 8 32 200 12000 / 187 / 93 16 / 24x500 4 / 4000
Standard_D16_v3 16 64 400 24000 / 375 / 187 32/ 48x500 8/8000
Standard_D32_v3 32 128 800 48000 / 750 / 375 32 / 96x500 8 / 16 000
Standard_D64_v3 64 256 1600 96 000 / 1000 / 500 32 / 192x500 8/30 000
Standard_E2_v3 2 16 50 3000 / 46 / 23 4 / 6x500 2 / 1000
Standard_E4_v3 4 32 100 6000 / 93 / 46 8 / 12x500 2 / 2000
Standard_E8_v3 8 64 200 12000 / 187 / 93 16 / 24x500 4 / 4000
Standard_E16_v3 16 128 400 24000 / 375 / 187 32 / 48x500 8/8000
Standard_E32_v3 32 256 800 48000 / 750 / 375 32 / 96x500 8 / 16 000
Standard_E64_v3 64 432 1600 96 000 / 1000 / 500 32 / 192x500 8/30 000

Ниже приведены рекомендации по настройке правильного значения для свойства AzureSSISMaxParallelExecutionsPerNode.

  1. Сначала задайте для него небольшое значение.
  2. Немного увеличьте его, чтобы проверить, улучшилась ли общая пропускная способность.
  3. Перестаньте увеличивать значение, когда общая пропускная способность достигнет максимального значения.

SSISDBPricingTier

Ценовая категория SSISDBPricingTier предназначена для базы данных каталога SSIS (SSISDB) в базе данных Azure SQL. Этот параметр влияет на максимальное число рабочих ролей в экземпляре IR, на скорость помещения операции выполнения пакета в очередь, а также на скорость загрузки журнала выполнения.

  • Если для вас не имеет значения скорость помещения операции выполнения пакета в очередь и загрузки журнала выполнения, вы можете выбрать самый низкий уровень ценовой категории для базы данных. База данных SQL Azure с ценовой категорией "Базовый" поддерживает 8 рабочих ролей в экземпляре среды выполнения интеграции.

  • Выберите более эффективную базу данных, чем базовая, если вам требуется больше 8 рабочих ролей или больше 50 ядер. В противном случае база данных станет узким местом для экземпляра среды выполнения интеграции и отрицательно повлияет на общую производительность.

  • Для ведения журнала на уровне "Подробный" выберите более мощную базу данных, например s3. По результатам нашего неофициального тестирования, ценовая категория s3 поддерживает выполнение пакетов служб SSIS с 2 узлами, 128 параллельных вычислений и подробный уровень ведения журнала.

Вы также можете настроить ценовую категорию базы данных на основе информации об использовании единицы транзакций базы данных (DTU), доступной на портале Azure.

Проектирование для обеспечения высокой производительности

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

Узнайте больше о среде выполнения интеграции Azure-SSIS в этом разделе.