Uruchamianie pakietów usług SQL Server Integration Services za pomocą narzędzia dtexec z obsługą platformy Azure

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 narzędzie wiersza polecenia dtexec z obsługą platformy Azure (AzureDTExec). Służy do uruchamiania pakietów usług SQL Server Integration Services (SSIS) w środowisku Azure-SSIS Integration Runtime (IR) w usłudze Azure Data Factory.

Tradycyjne narzędzie dtexec jest dostarczane z programem SQL Server. Aby uzyskać więcej informacji, zobacz narzędzie dtexec. Jest on często wywoływany przez koordynatorów lub harmonogramów innych firm, takich jak ActiveBatch i Control-M, do uruchamiania pakietów usług SSIS w środowisku lokalnym.

Nowoczesne narzędzie AzureDTExec jest wyposażone w narzędzie SQL Server Management Studio (SSMS). Można go również wywołać przez koordynatorów innych firm lub harmonogramów do uruchamiania pakietów usług SSIS na platformie Azure. Ułatwia to podnoszenie i przenoszenie lub migrację pakietów SSIS do chmury. Jeśli po migracji chcesz nadal używać koordynatorów lub harmonogramów innych firm w codziennych operacjach, mogą teraz wywoływać element AzureDTExec zamiast dtexec.

AzureDTExec uruchamia pakiety jako wykonywanie działań pakietu SSIS w potokach usługi Data Factory. Aby uzyskać więcej informacji, zobacz Uruchamianie pakietów SSIS jako działań usługi Azure Data Factory.

Narzędzie AzureDTExec można skonfigurować za pośrednictwem programu SSMS do korzystania z aplikacji Firmy Microsoft Entra, która generuje potoki w fabryce danych. Można go również skonfigurować pod kątem uzyskiwania dostępu do systemów plików, udziałów plików lub usługi Azure Files, w których są przechowywane pakiety. Na podstawie wartości podanych dla opcji wywołania usługa AzureDTExec generuje i uruchamia unikatowy potok usługi Data Factory z działaniem Wykonaj pakiet SSIS. Wywołanie elementu AzureDTExec z tymi samymi wartościami dla jego opcji ponownie uruchamia istniejący potok.

Wymagania wstępne

Aby użyć usługi AzureDTExec, pobierz i zainstaluj najnowszą wersję programu SSMS w wersji 18.3 lub nowszej. Pobierz go z tej witryny internetowej.

Konfigurowanie narzędzia AzureDTExec

Zainstalowanie programu SSMS na komputerze lokalnym umożliwia również zainstalowanie programu AzureDTExec. Aby skonfigurować jego ustawienia, uruchom program SSMS przy użyciu opcji Uruchom jako administrator . Następnie wybierz pozycję Narzędzia>Migruj do platformy Azure, skonfiguruj usługę DTExec z obsługą platformy Azure.>

Configure Azure-enabled dtexec menu

Ta akcja otwiera okno AzureDTExecConfig , które musi zostać otwarte z uprawnieniami administracyjnymi, aby można było zapisać w pliku AzureDTExec.settings . Jeśli program SSMS nie został uruchomiony jako administrator, zostanie otwarte okno Kontrola konta użytkownika (UAC). Wprowadź hasło administratora, aby podwyższyć poziom uprawnień.

Configure Azure-enabled dtexec settings

W oknie AzureDTExecConfig wprowadź ustawienia konfiguracji w następujący sposób:

  • ApplicationId: wprowadź unikatowy identyfikator aplikacji Microsoft Entra utworzonej przy użyciu odpowiednich uprawnień do generowania potoków w fabryce danych. Aby uzyskać więcej informacji, zobacz Create a Microsoft Entra app and service principal via Azure Portal (Tworzenie aplikacji i jednostki usługi Microsoft Entra za pośrednictwem witryny Azure Portal).
  • AuthenticationKey: wprowadź klucz uwierzytelniania dla aplikacji Microsoft Entra.
  • TenantId: wprowadź unikatowy identyfikator dzierżawy firmy Microsoft Entra, w ramach której jest tworzona aplikacja Microsoft Entra.
  • DataFactory: wprowadź nazwę fabryki danych, w której unikatowe potoki z działaniem Wykonaj pakiet SSIS są generowane na podstawie wartości opcji podanych podczas wywoływania elementu AzureDTExec.
  • IRName: wprowadź nazwę środowiska Azure-SSIS IR w fabryce danych, w której pakiety określone w ich ścieżce Universal Naming Convention (UNC) będą uruchamiane podczas wywoływania elementu AzureDTExec.
  • PipelineNameHashStrLen: wprowadź długość ciągów skrótu, które mają być generowane na podstawie wartości opcji podanych podczas wywoływania elementu AzureDTExec. Ciągi służą do tworzenia unikatowych nazw potoków usługi Data Factory, które uruchamiają pakiety w środowisku Azure-SSIS IR. Zazwyczaj długość 32 znaków jest wystarczająca.
  • ResourceGroup: wprowadź nazwę grupy zasobów platformy Azure, w której utworzono fabrykę danych.
  • SubscriptionId: wprowadź unikatowy identyfikator subskrypcji platformy Azure, w ramach której utworzono fabrykę danych.
  • LogAccessDomain: wprowadź poświadczenia domeny, aby uzyskać dostęp do folderu dziennika w ścieżce UNC podczas zapisywania plików dziennika, co jest wymagane, gdy parametr LogPath jest określony, a wartość LogLevel nie ma wartości null.
  • LogAccessPassword: wprowadź poświadczenia hasła, aby uzyskać dostęp do folderu dziennika w ścieżce UNC podczas zapisywania plików dziennika, co jest wymagane, gdy parametr LogPath jest określony, a element LogLevel nie ma wartości null.
  • LogAccessUserName: wprowadź poświadczenia nazwy użytkownika, aby uzyskać dostęp do folderu dziennika w ścieżce UNC podczas zapisywania plików dziennika, co jest wymagane, gdy parametr LogPath jest określony, a element LogLevel nie ma wartości null.
  • LogLevel: wprowadź wybrany zakres rejestrowania ze wstępnie zdefiniowanej wartości null, podstawowej, pełnej lub wydajności dla wykonań pakietów w ramach środowiska Azure-SSIS IR.
  • LogPath: wprowadź ścieżkę UNC folderu dziennika, do którego zapisywane są pliki dziennika z wykonań pakietów w ramach środowiska Azure-SSIS IR.
  • PackageAccessDomain: wprowadź poświadczenia domeny, aby uzyskać dostęp do pakietów w ścieżce UNC określonej podczas wywoływania elementu AzureDTExec.
  • PackageAccessPassword: wprowadź poświadczenia hasła, aby uzyskać dostęp do pakietów w ścieżce UNC określonej podczas wywoływania elementu AzureDTExec.
  • PackageAccessUserName: wprowadź poświadczenia nazwy użytkownika, aby uzyskać dostęp do pakietów w ścieżce UNC określonej podczas wywoływania elementu AzureDTExec.

Aby przechowywać pakiety i pliki dziennika w systemach plików lub udziałach plików w środowisku lokalnym, dołącz środowisko Azure-SSIS IR do sieci wirtualnej połączonej z siecią lokalną, aby można było pobrać pakiety i zapisać pliki dziennika. Aby uzyskać więcej informacji, zobacz Dołączanie środowiska Azure-SSIS IR do sieci wirtualnej.

Aby uniknąć wyświetlania wartości poufnych zapisanych w pliku AzureDTExec.settings w postaci zwykłego tekstu, kodujemy je do ciągów kodowania Base64. Podczas wywoływania elementu AzureDTExec wszystkie ciągi zakodowane w formacie Base64 są dekodowane z powrotem do ich oryginalnych wartości. Możesz dodatkowo zabezpieczyć plik AzureDTExec.settings , ograniczając konta, które mogą uzyskać do niego dostęp.

Wywoływanie narzędzia AzureDTExec

Element AzureDTExec można wywołać w wierszu polecenia i podać odpowiednie wartości dla określonych opcji w scenariuszu przypadków użycia.

Narzędzie jest zainstalowane w witrynie {SSMS Folder}\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn. Możesz dodać jego ścieżkę do zmiennej środowiskowej PATH, która ma być wywoływana z dowolnego miejsca.

> cd "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn"
> AzureDTExec.exe  ^
  /F \\MyStorageAccount.file.core.windows.net\MyFileShare\MyPackage.dtsx  ^
  /Conf \\MyStorageAccount.file.core.windows.net\MyFileShare\MyConfig.dtsConfig  ^
  /Conn "MyConnectionManager;Data Source=MyDatabaseServer.database.windows.net;User ID=MyAdminUsername;Password=MyAdminPassword;Initial Catalog=MyDatabase"  ^
  /Set \package.variables[MyVariable].Value;MyValue  ^
  /De MyEncryptionPassword

Wywoływanie elementu AzureDTExec oferuje podobne opcje jak wywoływanie elementu dtexec. Aby uzyskać więcej informacji, zobacz dtexec Utility. Poniżej przedstawiono opcje, które są obecnie obsługiwane:

  • /F[ile]: ładuje pakiet przechowywany w systemie plików, udziale plików lub usłudze Azure Files. Jako wartość tej opcji możesz określić ścieżkę UNC dla pliku pakietu w systemie plików, udziale plików lub usłudze Azure Files z rozszerzeniem dtsx. Jeśli określona ścieżka UNC zawiera dowolne miejsce, umieść znaki cudzysłowu wokół całej ścieżki.
  • /Conf[igFile]: określa plik konfiguracji do wyodrębniania wartości. Korzystając z tej opcji, można ustawić konfigurację czasu wykonywania dla pakietu, która różni się od tej określonej w czasie projektowania. Różne ustawienia można przechowywać w pliku konfiguracji XML, a następnie ładować je przed wykonaniem pakietu. Aby uzyskać więcej informacji, zobacz Konfiguracje pakietów usług SSIS. Aby określić wartość tej opcji, użyj ścieżki UNC dla pliku konfiguracji w systemie plików, udziale plików lub usłudze Azure Files z rozszerzeniem dtsConfig. Jeśli określona ścieżka UNC zawiera dowolne miejsce, umieść znaki cudzysłowu wokół całej ścieżki.
  • /Conn[ection]: określa parametry połączenia dla istniejących menedżerów połączeń w pakiecie. Korzystając z tej opcji, można ustawić parametry połączenia czasu wykonywania dla istniejących menedżerów połączeń w pakiecie, które różnią się od tych określonych w czasie projektowania. Określ wartość dla tej opcji w następujący sposób: connection_manager_name_or_id;connection_string [[;connection_manager_name_or_id;connection_string]...].
  • /Set: zastępuje konfigurację parametru, zmiennej, właściwości, kontenera, dostawcy dzienników, modułu wyliczającego Foreach lub połączenia w pakiecie. Tę opcję można określić wiele razy. Określ wartość dla tej opcji w następujący sposób: property_path;value. Na przykład \package.variables[counter].Value;1 zastępuje wartość zmiennej counter jako 1. Możesz użyć Kreatora konfiguracji pakietu , aby znaleźć, skopiować i wkleić wartość property_path dla elementów w pakiecie, których wartość ma zostać zastąpiona. Aby uzyskać więcej informacji, zobacz Kreator konfiguracji pakietów.
  • /De[crypt]: Ustawia hasło odszyfrowywania dla pakietu skonfigurowanego przy użyciu poziomu ochrony EncryptAllWithPassword EncryptSensitiveWithPassword/.

Uwaga

Wywołanie elementu AzureDTExec z nowymi wartościami dla opcji generuje nowy potok z wyjątkiem opcji /De[cript].

Po wygenerowaniu unikatowych potoków za pomocą działania Wykonaj pakiet SSIS i uruchomieniu ich podczas wywoływania elementu AzureDTExec można je monitorować w portalu usługi Data Factory. Możesz również przypisać do nich wyzwalacze usługi Data Factory, jeśli chcesz je zorganizować/zaplanować przy użyciu usługi Data Factory. Aby uzyskać więcej informacji, zobacz Uruchamianie pakietów SSIS jako działań usługi Data Factory.

Ostrzeżenie

Oczekiwano, że wygenerowany potok będzie używany tylko przez usługę AzureDTExec. Jego właściwości lub parametry mogą ulec zmianie w przyszłości, więc nie modyfikuj ani nie używaj ich ponownie do żadnych innych celów. Modyfikacje mogą spowodować przerwanie usługi AzureDTExec. W takim przypadku usuń potok. Narzędzie AzureDTExec generuje nowy potok przy następnym wywołaniu.