Dela via


Konfigurera Azure-SSIS Integration Runtime för höga prestanda

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln beskriver hur du konfigurerar en Azure-SSIS Integration Runtime (IR) för höga prestanda. Med Azure-SSIS IR kan du distribuera och köra SSIS-paket (SQL Server Integration Services) i Azure. Mer information om Azure-SSIS IR finns i artikeln Om integrationskörning . Information om hur du distribuerar och kör SSIS-paket i Azure finns i Lift and shift SQL Server Integration Services workloads to the cloud (Lyfta och flytta SQL Server Integration Services-arbetsbelastningar till molnet).

Viktigt!

Den här artikeln innehåller prestandaresultat och observationer från interna tester som utförts av medlemmar i SSIS-utvecklingsteamet. Dina resultat kan variera. Gör din egen testning innan du slutför konfigurationsinställningarna, vilket påverkar både kostnad och prestanda.

Egenskaper som ska konfigureras

Följande del av ett konfigurationsskript visar de egenskaper som du kan konfigurera när du skapar en Azure-SSIS Integration Runtime. Det fullständiga PowerShell-skriptet och beskrivningen finns i Distribuera SQL Server Integration Services-paket till 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 är platsen för integration runtime-arbetsnoden. Arbetsnoden upprätthåller en konstant anslutning till SSIS-katalogdatabasen (SSISDB) i Azure SQL Database. Ställ in AzureSSISLocation på samma plats som den logiska SQL-servern som är värd för SSISDB, vilket gör att integreringskörningen kan fungera så effektivt som möjligt.

AzureSSISNodeSize

Data Factory, inklusive Azure-SSIS IR, stöder följande alternativ:

  • 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

I den inofficiella interna testningen av SSIS-teknikteamet verkar D-serien vara mer lämplig för SSIS-paketkörning än A-serien.

  • Prestanda/prisförhållandet för D-serien är högre än A-serien och förhållandet mellan prestanda och pris för v3-serien är högre än v2-serien.
  • Dataflödet för D-serien är högre än A-serien till samma pris och dataflödet för v3-serien är högre än v2-serien till samma pris.
  • Noderna i v2-serien i Azure-SSIS IR är inte lämpliga för anpassad konfiguration, så använd noderna i v3-serien i stället. Om du redan använder noderna i v2-serien växlar du till att använda noderna i v3-serien så snart som möjligt.
  • E-serien är minnesoptimerade VM-storlekar som ger ett högre förhållande mellan minne och CPU än andra datorer. Om paketet kräver mycket minne kan du överväga att välja virtuell dator i E-serien.

Konfigurera för körningshastighet

Om du inte har många paket att köra och du vill att paketen ska köras snabbt använder du informationen i följande diagram för att välja en typ av virtuell dator som passar ditt scenario.

Dessa data representerar en enda paketkörning på en enda arbetsnod. Paketet läser in 3 miljoner poster med kolumner med förnamn och efternamn från Azure Blob Storage, genererar en fullständig namnkolumn och skriver de poster som har det fullständiga namnet längre än 20 tecken till Azure Blob Storage.

Y-axeln är antalet paket som slutförde körningen på en timme. Observera att detta bara är ett testresultat av ett minneskrävande paket. Om du vill veta dataflödet för ditt paket rekommenderar vi att du utför testet själv.

Körningshastighet för SSIS Integration Runtime-paket

Konfigurera för övergripande dataflöde

Om du har många paket att köra, och du bryr dig mest om det övergripande dataflödet, använder du informationen i följande diagram för att välja en typ av virtuell dator som passar ditt scenario.

Y-axeln är antalet paket som slutförde körningen på en timme. Observera att detta bara är ett testresultat av ett minneskrävande paket. Om du vill veta dataflödet för ditt paket rekommenderar vi att du utför testet själv.

Maximalt totalt dataflöde för SSIS Integration Runtime

AzureSSISNodeNumber

AzureSSISNodeNumber justerar skalbarheten för integreringskörningen. Dataflödet för integrationskörningen är proportionellt mot AzureSSISNodeNumber. Ställ först in AzureSSISNodeNumber till ett litet värde, övervaka dataflödet för integreringskörningen och justera sedan värdet för ditt scenario. Information om hur du konfigurerar om antalet arbetsnoder finns i Hantera en Azure-SSIS-integreringskörning.

AzureSSISMaxParallelExecutionsPerNode

Om du redan använder en kraftfull arbetsnod för att köra paket kan det öka det totala dataflödet för integreringskörningen genom att öka AzureSSISMaxParallelExecutionsPerNode . Om du vill öka maxvärdet måste du använda Azure PowerShell för att uppdatera AzureSSISMaxParallelExecutionsPerNode. Du kan beräkna lämpligt värde baserat på kostnaden för ditt paket och följande konfigurationer för arbetsnoderna. Mer information finns i Storlekar på virtuella datorer för generell användning.

Storlek vCPU Minne: GiB Temporär lagring (SSD) GiB Maximalt genomflöde för temporär lagring: IOPS / Mbit/s för läsning / M/bit/s för skrivning Maximalt antal datadiskar/dataflöde: IOPS Maximalt antal nätverkskort/förväntade nätverksprestanda (Mbit/s)
Standard_D1_v2 1 3.5 50 3 000 / 46 / 23 2 / 2 x 500 2/750
Standard_D2_v2 2 7 100 6 000 / 93 / 46 4 / 4 x 500 2/1 500
Standard_D3_v2 4 14 200 12 000 / 187 / 93 8 / 8 x 500 4/3 000
Standard_D4_v2 8 28 400 24 000 / 375 / 187 16 / 16 x 500 8/6 000
Standard_A4_v2 4 8 40 4 000 / 80 / 40 8 / 8 x 500 4/1 000
Standard_A8_v2 8 16 80 8 000 / 160 / 80 16 / 16 x 500 8/2 000
Standard_D2_v3 2 8 50 3 000 / 46 / 23 4/6x500 2/1 000
Standard_D4_v3 4 16 100 6 000 / 93 / 46 8/12x500 2/2 000
Standard_D8_v3 8 32 200 12 000 / 187 / 93 16/24x500 4 / 4000
Standard_D16_v3 16 64 400 24 000 / 375 / 187 32/ 48x500 8 / 8000
Standard_D32_v3 32 128 800 48 000 / 750 / 375 32 /96x500 8/16 000
Standard_D64_v3 64 256 1600 96000 / 1000 / 500 32 /192x500 8 / 30000
Standard_E2_v3 2 16 50 3 000 / 46 / 23 4/6x500 2/1 000
Standard_E4_v3 4 32 100 6 000 / 93 / 46 8/12x500 2/2 000
Standard_E8_v3 8 64 200 12 000 / 187 / 93 16/24x500 4 / 4000
Standard_E16_v3 16 128 400 24 000 / 375 / 187 32/48x500 8 / 8000
Standard_E32_v3 32 256 800 48 000 / 750 / 375 32 /96x500 8/16 000
Standard_E64_v3 64 432 1600 96000 / 1000 / 500 32 /192x500 8 / 30000

Här följer riktlinjerna för att ange rätt värde för egenskapen AzureSSISMaxParallelExecutionsPerNode :

  1. Ställ först in det på ett litet värde.
  2. Öka den med en liten mängd för att kontrollera om det totala dataflödet har förbättrats.
  3. Sluta öka värdet när det totala dataflödet når det maximala värdet.

SSISDBPricingTier

SSISDBPricingTier är prisnivån för SSIS-katalogdatabasen (SSISDB) i Azure SQL Database. Den här inställningen påverkar det maximala antalet arbetare i IR-instansen, hastigheten för att köa en paketkörning och hastigheten för att läsa in körningsloggen.

  • Om du inte bryr dig om hastigheten för att köa paketkörning och om du vill läsa in körningsloggen kan du välja den lägsta prisnivån för databasen. Azure SQL Database med grundläggande priser stöder 8 arbetare i en integration runtime-instans.

  • Välj en kraftfullare databas än Basic om antalet arbetare är fler än 8 eller om antalet kärnor är fler än 50. Annars blir databasen flaskhalsen i integreringskörningsinstansen och den övergripande prestandan påverkas negativt.

  • Välj en kraftfullare databas, till exempel s3, om loggningsnivån är inställd på utförlig. Enligt vår inofficiella interna testning kan prisnivån s3 stödja SSIS-paketkörning med 2 noder, 128 parallella antal och utförlig loggningsnivå.

Du kan också justera databasprisnivån baserat på information om databastransaktionsenhet (DTU) som är tillgänglig på Azure-portalen.

Design för hög prestanda

Att utforma ett SSIS-paket som ska köras i Azure skiljer sig från att utforma ett paket för lokal körning. I stället för att kombinera flera oberoende uppgifter i samma paket kan du dela upp dem i flera paket för effektivare körning i Azure-SSIS IR. Skapa en paketkörning för varje paket så att de inte behöver vänta tills varandra har slutförts. Den här metoden drar nytta av skalbarheten för Azure-SSIS-integreringskörningen och förbättrar det övergripande dataflödet.

Läs mer om Azure-SSIS Integration Runtime. Se Azure-SSIS Integration Runtime.