Udostępnij za pośrednictwem


Konfigurowanie środowiska Azure-SSIS Integration Runtime pod kątem wysokiej wydajności

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

W tym artykule opisano sposób konfigurowania środowiska Azure-SSIS Integration Runtime (IR) pod kątem wysokiej wydajności. Środowisko Azure-SSIS IR umożliwia wdrażanie i uruchamianie pakietów usług SQL Server Integration Services (SSIS) na platformie Azure. Aby uzyskać więcej informacji na temat środowiska Azure-SSIS IR, zobacz artykuł Integration Runtime . Aby uzyskać informacje na temat wdrażania i uruchamiania pakietów usług SSIS na platformie Azure, zobacz Lift and shift SQL Server Integration Services workloads to the cloud (Przenoszenie i przenoszenie obciążeń usług SQL Server Integration Services do chmury).

Ważne

Ten artykuł zawiera wyniki wydajności i obserwacje z testów wewnętrznych wykonanych przez członków zespołu programistycznego usług SSIS. Wyniki mogą się różnić. Wykonaj własne testy przed sfinalizowaniem ustawień konfiguracji, które mają wpływ zarówno na koszt, jak i wydajność.

Właściwości do skonfigurowania

W poniższej części skryptu konfiguracji przedstawiono właściwości, które można skonfigurować podczas tworzenia środowiska Azure-SSIS Integration Runtime. Pełny skrypt i opis programu PowerShell można znaleźć w temacie Deploy SQL Server Integration Services packages to Azure (Wdrażanie pakietów usług SQL Server Integration Services na platformie 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 Azure Active Directory (AAD)
$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 to lokalizacja węzła procesu roboczego środowiska Integration Runtime. Węzeł procesu roboczego utrzymuje stałe połączenie z bazą danych katalogu usług SSIS (SSISDB) w usłudze Azure SQL Database. Ustaw pozycję AzureSSISLocation na taką samą lokalizację, jak logiczny serwer SQL hostujący bazę danych SSISDB, co pozwala środowisku Integration Runtime działać tak wydajnie, jak to możliwe.

AzureSSISNodeSize

Usługa Data Factory, w tym środowisko Azure-SSIS IR, obsługuje następujące opcje:

  • Standardowa_A4_v2
  • Standardowa_A8_v2
  • Standardowa_D1_v2
  • Standardowa_D2_v2
  • Standardowa_D3_v2
  • Standardowa_D4_v2
  • Standardowa_D2_v3
  • Standardowa_D4_v3
  • Standardowa_D8_v3
  • Standardowa_D16_v3
  • Standard_D32_v3
  • Standard_D64_v3
  • Standardowa_E2_v3
  • Standardowa_E4_v3
  • Standardowa_E8_v3
  • Standardowa_E16_v3
  • Standardowa_E32_v3
  • Standardowa_E64_v3

W nieoficjalnych testach w domu przez zespół inżynierów SSIS seria D wydaje się być bardziej odpowiednia do wykonywania pakietów SSIS niż seria A.

  • Stosunek wydajności/ceny serii D jest wyższy niż seria A, a stosunek wydajności/ceny serii v3 jest wyższy niż seria v2.
  • Przepływność dla serii D jest wyższa niż seria A w tej samej cenie, a przepływność dla serii v3 jest wyższa niż seria v2 w tej samej cenie.
  • Węzły serii v2 środowiska Azure-SSIS IR nie są odpowiednie do konfiguracji niestandardowej, dlatego zamiast tego użyj węzłów serii v3. Jeśli używasz już węzłów serii v2, przełącz się, aby jak najszybciej używać węzłów serii v3.
  • Seria E to rozmiary maszyn wirtualnych zoptymalizowane pod kątem pamięci, które zapewniają wyższy stosunek pamięci do procesora CPU niż inne maszyny. Jeśli pakiet wymaga dużo pamięci, możesz rozważyć wybranie maszyny wirtualnej serii E.

Konfigurowanie pod kątem szybkości wykonywania

Jeśli nie masz wielu pakietów do uruchomienia i chcesz, aby pakiety działały szybko, użyj informacji na poniższym wykresie, aby wybrać typ maszyny wirtualnej odpowiedni dla danego scenariusza.

Te dane reprezentują pojedyncze wykonanie pakietu w jednym węźle roboczym. Pakiet ładuje 3 miliony rekordów z nazwami i nazwiskami kolumn z usługi Azure Blob Storage, generuje pełną kolumnę nazwy i zapisuje rekordy, które mają pełną nazwę dłuższą niż 20 znaków w usłudze Azure Blob Storage.

Oś y to liczba pakietów, które zakończyły wykonywanie w ciągu jednej godziny. Należy pamiętać, że jest to tylko wynik testowy jednego pakietu zużywanego przez pamięć. Jeśli chcesz poznać przepływność pakietu, zaleca się samodzielne przeprowadzenie testu.

SSIS Integration Runtime package execution speed

Konfigurowanie pod kątem ogólnej przepływności

Jeśli masz wiele pakietów do uruchomienia i najbardziej dbasz o ogólną przepływność, użyj informacji na poniższym wykresie, aby wybrać typ maszyny wirtualnej odpowiedni dla danego scenariusza.

Oś y to liczba pakietów, które zakończyły wykonywanie w ciągu jednej godziny. Należy pamiętać, że jest to tylko wynik testowy jednego pakietu zużywanego przez pamięć. Jeśli chcesz poznać przepływność pakietu, zaleca się samodzielne przeprowadzenie testu.

SSIS Integration Runtime maximum overall throughput

AzureSSISNodeNumber

AzureSSISNodeNumber dostosowuje skalowalność środowiska Integration Runtime. Przepływność środowiska Integration Runtime jest proporcjonalna do wartości AzureSSISNodeNumber. Najpierw ustaw parametr AzureSSISNodeNumber na małą wartość, monitoruj przepływność środowiska Integration Runtime, a następnie dostosuj wartość dla danego scenariusza. Aby ponownie skonfigurować liczbę węzłów procesu roboczego, zobacz Zarządzanie środowiskiem Azure-SSIS Integration Runtime.

AzureSSISMaxParallelExecutionsPerNode

Jeśli używasz już zaawansowanego węzła roboczego do uruchamiania pakietów, zwiększenie wydajności azureSSISMaxParallelExecutionsPerNode może zwiększyć ogólną przepływność środowiska Integration Runtime. Jeśli chcesz zwiększyć maksymalną wartość, musisz użyć programu Azure PowerShell, aby zaktualizować element AzureSSISMaxParallelExecutionsPerNode. Możesz oszacować odpowiednią wartość na podstawie kosztu pakietu i następujących konfiguracji dla węzłów procesu roboczego. Aby uzyskać więcej informacji, zobacz Rozmiary maszyn wirtualnych ogólnego przeznaczenia.

Rozmiar Procesor wirtualny Pamięć: GiB Magazyn tymczasowy (SSD): GiB Maksymalna przepływność magazynu tymczasowego: operacje we/wy na sek. / odczyt MB/s / zapis MB/s Maksymalna liczba dysków danych / przepływność: liczba operacji we/wy na sekundę Maksymalna liczba kart sieciowych/oczekiwana wydajność sieci (Mb/s)
Standardowa_D1_v2 1 3.5 50 3000 / 46 / 23 2 / 2 x 500 2 / 750
Standardowa_D2_v2 2 7 100 6000 / 93 / 46 4 / 4 x 500 2 / 1500
Standardowa_D3_v2 100 14 200 12000 / 187 / 93 8 / 8 x 500 4 / 3000
Standardowa_D4_v2 8 28 400 24000 / 375 / 187 16 / 16 x 500 8 / 6000
Standardowa_A4_v2 100 8 40 4000 / 80 / 40 8 / 8 x 500 4 / 1000
Standardowa_A8_v2 8 16 80 8000 / 160 / 80 16 / 16 x 500 8 / 2000
Standardowa_D2_v3 2 8 50 3000 / 46 / 23 4/ 6x500 2 / 1000
Standardowa_D4_v3 100 16 100 6000 / 93 / 46 8/ 12x500 2 / 2000
Standardowa_D8_v3 8 32 200 12000 / 187 / 93 16 / 24x500 4 / 4000
Standardowa_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 96000 / 1000 / 500 32 / 192x500 8 / 30000
Standardowa_E2_v3 2 16 50 3000 / 46 / 23 4/ 6x500 2 / 1000
Standardowa_E4_v3 100 32 100 6000 / 93 / 46 8/ 12x500 2 / 2000
Standardowa_E8_v3 8 64 200 12000 / 187 / 93 16 / 24x500 4 / 4000
Standardowa_E16_v3 16 128 400 24000 / 375 / 187 32/ 48x500 8 / 8000
Standardowa_E32_v3 32 256 800 48000 / 750 / 375 32/ 96x500 8 / 16 000
Standardowa_E64_v3 64 432 1600 96000 / 1000 / 500 32 / 192x500 8 / 30000

Poniżej przedstawiono wskazówki dotyczące ustawiania właściwej wartości właściwości AzureSSISMaxParallelExecutionsPerNode :

  1. Ustaw ją na małą wartość na początku.
  2. Zwiększ ją o niewielką ilość, aby sprawdzić, czy ogólna przepływność jest ulepszona.
  3. Przestań zwiększać wartość, gdy ogólna przepływność osiągnie maksymalną wartość.

SSISDBPricingTier

SSISDBPricingTier to warstwa cenowa bazy danych katalogu usług SSIS (SSISDB) w usłudze Azure SQL Database. To ustawienie ma wpływ na maksymalną liczbę procesów roboczych w wystąpieniu środowiska IR, szybkość kolejkowania wykonania pakietu oraz szybkość ładowania dziennika wykonywania.

  • Jeśli nie interesuje Cię szybkość wykonywania pakietów w kolejce i załadowanie dziennika wykonywania, możesz wybrać najniższą warstwę cenową bazy danych. Usługa Azure SQL Database z ceną podstawową obsługuje 8 procesów roboczych w wystąpieniu środowiska Integration Runtime.

  • Wybierz bardziej zaawansowaną bazę danych niż Podstawowa, jeśli liczba procesów roboczych przekracza 8, lub liczba rdzeni jest większa niż 50. W przeciwnym razie baza danych staje się wąskim gardłem wystąpienia środowiska Integration Runtime, a ogólna wydajność ma negatywny wpływ.

  • Wybierz bardziej zaawansowaną bazę danych, taką jak s3, jeśli poziom rejestrowania jest ustawiony na pełny. Zgodnie z naszymi nieoficjalnymi testami w firmie warstwa cenowa s3 może obsługiwać wykonywanie pakietów SSIS z 2 węzłami, 128 równoległymi liczbami i pełnym poziomem rejestrowania.

Możesz również dostosować warstwę cenową bazy danych na podstawie informacji o użyciu jednostek DTU (Database Transaction Unit ) dostępnych w witrynie Azure Portal.

Projektowanie pod kątem wysokiej wydajności

Projektowanie pakietu usług SSIS do uruchamiania na platformie Azure różni się od projektowania pakietu na potrzeby wykonywania lokalnego. Zamiast łączyć wiele niezależnych zadań w tym samym pakiecie, rozdziel je na kilka pakietów w celu bardziej wydajnego wykonywania w środowisku Azure-SSIS IR. Utwórz wykonanie pakietu dla każdego pakietu, aby nie trzeba było czekać na zakończenie. Takie podejście korzysta ze skalowalności środowiska Azure-SSIS Integration Runtime i poprawia ogólną przepływność.

Dowiedz się więcej o środowisku Azure-SSIS Integration Runtime. Zobacz Azure-SSIS Integration Runtime.