Настройка среды выполнения интеграции 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®ions=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®ions=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 — это количество пакетов, выполненных за один час. Обратите внимание, что это только результат теста одного пакета, использующего память. Если вы хотите уточнить пропускную способность своего пакета, рекомендуется провести тест самостоятельно.
Настройка общей пропускной способности
Если у вас есть много пакетов, и для вас важна общая пропускная способность, используйте информацию на следующей схеме, чтобы выбрать тип виртуальной машины, подходящий для вашего сценария.
Ось Y — это количество пакетов, выполненных за один час. Обратите внимание, что это только результат теста одного пакета, использующего память. Если вы хотите уточнить пропускную способность своего пакета, рекомендуется провести тест самостоятельно.
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.
- Сначала задайте для него небольшое значение.
- Немного увеличьте его, чтобы проверить, улучшилась ли общая пропускная способность.
- Перестаньте увеличивать значение, когда общая пропускная способность достигнет максимального значения.
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 в этом разделе.