Partilhar via


Configurar o Tempo de Execução de Integração Azure-SSIS para alto desempenho

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Este artigo descreve como configurar um Azure-SSIS Integration Runtime (IR) para alto desempenho. O IR do Azure-SSIS permite implantar e executar pacotes do SQL Server Integration Services (SSIS) no Azure. Para obter mais informações sobre o Azure-SSIS IR, consulte o artigo Tempo de execução de integração. Para obter informações sobre como implantar e executar pacotes SSIS no Azure, consulte Elevar e deslocar cargas de trabalho do SQL Server Integration Services para a nuvem.

Importante

Este artigo contém resultados de desempenho e observações de testes internos feitos por membros da equipe de desenvolvimento do SSIS. Os seus resultados podem variar. Faça seus próprios testes antes de finalizar as definições de configuração, que afetam o custo e o desempenho.

Propriedades a configurar

A parte a seguir de um script de configuração mostra as propriedades que você pode configurar ao criar um Tempo de Execução de Integração Azure-SSIS. Para obter o script e a descrição completos do PowerShell, consulte Implantar pacotes do SQL Server Integration Services no 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 é o local para o nó de trabalhador do tempo de execução de integração. O nó de trabalho mantém uma conexão constante com o banco de dados do Catálogo SSIS (SSISDB) no Banco de Dados SQL do Azure. Defina o AzureSSISLocation para o mesmo local do servidor SQL lógico que hospeda o SSISDB, o que permite que o tempo de execução da integração funcione da forma mais eficiente possível.

AzureSSISNodeSize

O Data Factory, incluindo o IR do Azure-SSIS, suporta as seguintes opções:

  • 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

Nos testes internos não oficiais realizados pela equipe de engenharia do SSIS, a série D parece ser mais adequada para a execução de pacotes SSIS do que a série A.

  • A relação desempenho/preço da série D é superior à série A e a relação desempenho/preço da série v3 é superior à série v2.
  • A taxa de transferência para a série D é maior do que a série A ao mesmo preço e a taxa de transferência para a série v3 é maior do que a série v2 ao mesmo preço.
  • Os nós da série v2 do Azure-SSIS IR não são adequados para configuração personalizada, portanto, use os nós da série v3. Se você já usa os nós da série v2, mude para usar os nós da série v3 o mais rápido possível.
  • A série E é um tamanho de VM otimizado para memória que fornece uma relação memória/CPU mais alta do que outras máquinas. Se o seu pacote requer muita memória, você pode considerar escolher a VM da série E.

Configurar para velocidade de execução

Se você não tiver muitos pacotes para executar e quiser que os pacotes sejam executados rapidamente, use as informações no gráfico a seguir para escolher um tipo de máquina virtual adequado para seu cenário.

Esses dados representam uma única execução de pacote em um único nó de trabalho. O pacote carrega 3 milhões de registros com colunas de nome e sobrenome do Armazenamento de Blobs do Azure, gera uma coluna de nome completo e grava os registros que têm o nome completo com mais de 20 caracteres no Armazenamento de Blobs do Azure.

O eixo y é o número de pacotes que concluíram a execução em uma hora. Observe que este é apenas um resultado de teste de um pacote que consome memória. Se você quiser saber a taxa de transferência do seu pacote, é recomendável realizar o teste sozinho.

Velocidade de execução do pacote SSIS Integration Runtime

Configurar para taxa de transferência geral

Se você tiver muitos pacotes para executar e se preocupar mais com a taxa de transferência geral, use as informações no gráfico a seguir para escolher um tipo de máquina virtual adequado para seu cenário.

O eixo y é o número de pacotes que concluíram a execução em uma hora. Observe que este é apenas um resultado de teste de um pacote que consome memória. Se você quiser saber a taxa de transferência do seu pacote, é recomendável realizar o teste sozinho.

Taxa de transferência geral máxima do SSIS Integration Runtime

AzureSSISNodeNumber

AzureSSISNodeNumber ajusta a escalabilidade do tempo de execução da integração. A taxa de transferência do tempo de execução de integração é proporcional ao AzureSSISNodeNumber. Defina o AzureSSISNodeNumber como um valor pequeno em primeiro lugar, monitore a taxa de transferência do tempo de execução da integração e, em seguida, ajuste o valor para o seu cenário. Para reconfigurar a contagem de nós de trabalho, consulte Gerenciar um tempo de execução de integração Azure-SSIS.

AzureSSISMaxParallelExecutionsPerNode

Quando você já estiver usando um nó de trabalho poderoso para executar pacotes, aumentar o AzureSSISMaxParallelExecutionsPerNode pode aumentar a taxa de transferência geral do tempo de execução da integração. Se quiser aumentar o valor máximo, você precisa usar o Azure PowerShell para atualizar AzureSSISMaxParallelExecutionsPerNode. Você pode estimar o valor apropriado com base no custo do seu pacote e nas seguintes configurações para os nós de trabalho. Para obter mais informações, consulte Tamanhos de máquinas virtuais de uso geral.

Tamanho vCPU Memória: GiB Armazenamento (SSD) temporário GiB Débito do armazenamento temporário máximo: IOPS/MBps de Leitura/MBps de Escrita Máximo do disco de dados/débito: IOPS NICs. Máx. / Desempenho de rede esperado (Mbps)
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 / 16000
Standard_D64_v3 64 256 1600 96000 / 1000 / 500 32 / 192x500 8 / 30000
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 / 16000
Standard_E64_v3 64 432 1600 96000 / 1000 / 500 32 / 192x500 8 / 30000

Aqui estão as diretrizes para definir o valor certo para a propriedade AzureSSISMaxParallelExecutionsPerNode :

  1. Defina inicialmente para um valor pequeno.
  2. Aumente em uma pequena quantidade para verificar se a taxa de transferência geral foi melhorada.
  3. Pare de aumentar o valor quando a taxa de transferência geral atingir o valor máximo.

SSISDBPricingTier

SSISDBPricingTier é a camada de preços para o banco de dados do Catálogo SSIS (SSISDB) no Banco de Dados SQL do Azure. Essa configuração afeta o número máximo de trabalhadores na instância de RI, a velocidade para enfileirar uma execução de pacote e a velocidade para carregar o log de execução.

  • Se você não se importar com a velocidade de execução do pacote em fila e carregar o log de execução, poderá escolher o nível de preço mais baixo do banco de dados. O Banco de Dados SQL do Azure com preços Basic dá suporte a 8 trabalhadores em uma instância de tempo de execução de integração.

  • Escolha um banco de dados mais poderoso do que o Basic se a contagem de trabalhadores for maior que 8 ou se a contagem de núcleos for superior a 50. Caso contrário, o banco de dados se tornará o gargalo da instância de tempo de execução de integração e o desempenho geral será afetado negativamente.

  • Escolha um banco de dados mais poderoso, como o s3, se o nível de log estiver definido como detalhado. De acordo com nossos testes internos não oficiais, o nível de preço do s3 pode suportar a execução de pacotes SSIS com 2 nós, 128 contagens paralelas e nível de registro detalhado.

Você também pode ajustar a camada de preço do banco de dados com base nas informações de uso da unidade de transação de banco de dados (DTU) disponíveis no portal do Azure.

Conceber para elevado desempenho

Projetar um pacote SSIS para ser executado no Azure é diferente de projetar um pacote para execução local. Em vez de combinar várias tarefas independentes no mesmo pacote, separe-as em vários pacotes para uma execução mais eficiente no IR do Azure-SSIS. Crie uma execução de pacote para cada pacote, para que eles não tenham que esperar um pelo outro para terminar. Essa abordagem se beneficia da escalabilidade do tempo de execução de integração Azure-SSIS e melhora a taxa de transferência geral.

Saiba mais sobre o Tempo de Execução de Integração Azure-SSIS. Consulte Azure-SSIS Integration Runtime.