Spouštění balíčků služby SQL Server Integration Services s využitím nástroje dtexec s podporou Azure

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek popisuje nástroj příkazového řádku azure s podporou dtexec (AzureDTExec). Používá se ke spouštění balíčků SSIS (SQL Server Integration Services) v prostředí Azure-SSIS Integration Runtime (IR) ve službě Azure Data Factory.

Tradiční nástroj dtexec se dodává s SQL Serverem. Další informace naleznete v nástroji dtexec. Často se vyvolává orchestrátory nebo plánovači třetích stran, jako jsou ActiveBatch a Control-M, ke spouštění balíčků SSIS místně.

Moderní nástroj AzureDTExec se dodává s nástrojem SQL Server Management Studio (SSMS). Můžete ho také vyvolat orchestrátory nebo plánovače třetích stran ke spouštění balíčků SSIS v Azure. Usnadňuje zvedání a přesouvání nebo migraci balíčků SSIS do cloudu. Pokud po migraci chcete ve svých každodenních operacích dál používat orchestrátory nebo plánovače třetích stran, můžou teď místo dtexec vyvolat AzureDTExec.

AzureDTExec spouští balíčky jako spouštění aktivit balíčku SSIS v kanálech služby Data Factory. Další informace najdete v tématu Spouštění balíčků SSIS jako aktivit Azure Data Factory.

AzureDTExec je možné nakonfigurovat přes SSMS tak, aby používala aplikaci Microsoft Entra, která generuje kanály ve vaší datové továrně. Dá se také nakonfigurovat pro přístup k systémům souborů, sdíleným složkám nebo službě Azure Files, kam ukládáte balíčky. Na základě hodnot, které poskytnete pro její možnosti vyvolání, AzureDTExec vygeneruje a spustí jedinečný kanál Data Factory s aktivitou spuštění balíčku SSIS. Vyvolání AzureDTExec se stejnými hodnotami pro jeho možnosti znovu spustí existující kanál.

Požadavky

Pokud chcete použít AzureDTExec, stáhněte a nainstalujte nejnovější verzi aplikace SSMS, která je verze 18.3 nebo novější. Stáhněte si ho z tohoto webu.

Konfigurace nástroje AzureDTExec

Instalace aplikace SSMS na místní počítač nainstaluje také AzureDTExec. Pokud chcete nakonfigurovat nastavení, spusťte SSMS s možností Spustit jako správce . Pak vyberte Nástroje>Migrate to Azure>Configure Azure-enabled DTExec.

Configure Azure-enabled dtexec menu

Tato akce otevře okno AzureDTExecConfig , které je potřeba otevřít s oprávněními správce pro zápis do souboru AzureDTExec.settings . Pokud jste SSMS nespustíte jako správce, otevře se okno Řízení uživatelských účtů (UAC). Zadejte heslo správce, abyste zvýšili svá oprávnění.

Configure Azure-enabled dtexec settings

V okně AzureDTExecConfig zadejte nastavení konfigurace následujícím způsobem:

  • ApplicationId: Zadejte jedinečný identifikátor aplikace Microsoft Entra, kterou vytvoříte se správnými oprávněními ke generování kanálů ve vaší datové továrně. Další informace najdete v tématu Vytvoření aplikace Microsoft Entra a instančního objektu prostřednictvím webu Azure Portal.
  • AuthenticationKey: Zadejte ověřovací klíč pro vaši aplikaci Microsoft Entra.
  • TenantId: Zadejte jedinečný identifikátor tenanta Microsoft Entra, pod kterým se vaše aplikace Microsoft Entra vytvoří.
  • DataFactory: Zadejte název vaší datové továrny, ve které se generují jedinečné kanály s aktivitou Execute SSIS Package v nich na základě hodnot možností zadaných při vyvolání AzureDTExec.
  • IRName: Zadejte název prostředí Azure-SSIS IR ve vaší datové továrně, ve kterém se balíčky zadané v cestě UNC (Universal Naming Convention) spustí při vyvolání AzureDTExec.
  • PipelineNameHashStrLen: Zadejte délku hash řetězců, které se mají generovat z hodnot možností, které zadáte při vyvolání AzureDTExec. Řetězce se používají k vytvoření jedinečných názvů pro kanály Data Factory, které spouštějí balíčky v prostředí Azure-SSIS IR. Obvykle stačí délka 32 znaků.
  • ResourceGroup: Zadejte název skupiny prostředků Azure, ve které byla vytvořena vaše datová továrna.
  • SubscriptionId: Zadejte jedinečný identifikátor předplatného Azure, pod kterým byla vytvořena vaše datová továrna.
  • LogAccessDomain: Zadejte přihlašovací údaje domény pro přístup ke složce protokolu v cestě UNC při zápisu souborů protokolu, což se vyžaduje při zadání logPath a LogLevel není null.
  • LogAccessPassword: Zadejte přihlašovací údaje hesla pro přístup ke složce protokolu v cestě UNC při zápisu souborů protokolu, což se vyžaduje při zadání logPath a LogLevel není null.
  • LogAccessUserName: Zadejte přihlašovací údaje uživatelského jména pro přístup ke složce protokolu v cestě UNC při zápisu souborů protokolu, což se vyžaduje při zadání logPath a LogLevel není null.
  • LogLevel: Zadejte vybraný rozsah protokolování z předdefinovaných možností null, Basic, Podrobné nebo Performance pro spouštění balíčků v Prostředí Azure-SSIS IR.
  • LogPath: Zadejte cestu UNC složky protokolu, do které se zapisují soubory protokolu z provádění balíčků v prostředí Azure-SSIS IR.
  • PackageAccessDomain: Zadejte přihlašovací údaje domény pro přístup k vašim balíčkům v cestě UNC, která je zadaná při vyvolání AzureDTExec.
  • PackageAccessPassword: Zadejte přihlašovací údaje hesla pro přístup k balíčkům v cestě UNC, která je zadaná při vyvolání AzureDTExec.
  • PackageAccessUserName: Zadejte přihlašovací údaje uživatelského jména pro přístup k vašim balíčkům v cestě UNC, která je zadaná při vyvolání AzureDTExec.

Pokud chcete ukládat balíčky a soubory protokolů v systémech souborů nebo sdílených složkách místně, připojte prostředí Azure-SSIS IR k virtuální síti připojené k místní síti, aby mohl načíst balíčky a zapisovat soubory protokolů. Další informace najdete v tématu Připojení prostředí Azure-SSIS IR k virtuální síti.

Abychom se vyhnuli zobrazení citlivých hodnot zapsaných do souboru AzureDTExec.settings v prostém textu, zakódujeme je do řetězců kódování Base64. Když vyvoláte AzureDTExec, všechny řetězce kódované base64 se dekódují zpět do původních hodnot. Soubor AzureDTExec.settings.settings můžete dále zabezpečit omezením účtů, které k němu mají přístup.

Vyvolání nástroje AzureDTExec

AzureDTExec můžete vyvolat na příkazovém řádku a zadat relevantní hodnoty pro konkrétní možnosti ve vašem scénáři použití.

Nástroj je nainstalován v {SSMS Folder}\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn. Můžete přidat jeho cestu k proměnné prostředí PATH, aby byla vyvolána odkudkoli.

> 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

Vyvolání AzureDTExec nabízí podobné možnosti jako vyvolání dtexec. Další informace naleznete v tématu dtexec Utility. Tady jsou aktuálně podporované možnosti:

  • /F[ile]: Načte balíček uložený v systému souborů, sdílené složce nebo službě Azure Files. Jako hodnotu pro tuto možnost můžete zadat cestu UNC pro soubor balíčku v systému souborů, sdílené složce nebo Soubory Azure s příponou .dtsx. Pokud zadaná cesta UNC obsahuje mezeru, dejte uvozovky kolem celé cesty.
  • /Conf[igFile]: Určuje konfigurační soubor pro extrahování hodnot. Pomocí této možnosti můžete pro balíček nastavit konfiguraci za běhu, která se liší od konfigurace zadané v době návrhu. Různá nastavení můžete uložit do konfiguračního souboru XML a pak je načíst před spuštěním balíčku. Další informace najdete v tématu Konfigurace balíčků SSIS. Pokud chcete zadat hodnotu této možnosti, použijte cestu UNC pro konfigurační soubor v systému souborů, sdílené složce nebo azure Files s jeho příponou dtsConfig. Pokud zadaná cesta UNC obsahuje mezeru, dejte uvozovky kolem celé cesty.
  • /Conn[ection]: Určuje připojovací řetězec pro existující správce připojení v balíčku. Pomocí této možnosti můžete nastavit připojovací řetězec za běhu pro existující správce připojení v balíčku, které se liší od těch zadaných v době návrhu. Zadejte hodnotu pro tuto možnost následujícím způsobem: connection_manager_name_or_id;connection_string [[;connection_manager_name_or_id;connection_string]...].
  • /Set: Přepíše konfiguraci parametru, proměnné, vlastnosti, kontejneru, zprostředkovatele protokolu, enumerátoru Foreach nebo připojení v balíčku. Tuto možnost lze zadat vícekrát. Zadejte hodnotu pro tuto možnost následujícím způsobem: property_path;value. Například \package.variables[counter].Value;1 přepíše hodnotu counter proměnné jako 1. Pomocí průvodce konfigurací balíčku můžete vyhledat, zkopírovat a vložit hodnotu property_path položek v balíčku, jejichž hodnotu chcete přepsat. Další informace naleznete v tématu Průvodce konfigurací balíčku.
  • /De[crypt]: Nastaví dešifrovací heslo pro váš balíček nakonfigurovaný pomocí úrovně ochrany EncryptAllWithPassword EncryptSensitiveWithPassword/.

Poznámka:

Vyvolání AzureDTExec s novými hodnotami pro jeho možnosti vygeneruje nový kanál s výjimkou možnosti /De[cript].

Po vygenerování a spuštění jedinečných kanálů s aktivitou spuštění balíčku SSIS při vyvolání azureDTExec je možné je monitorovat na portálu Služby pro vytváření dat. Triggery služby Data Factory můžete také přiřadit, pokud je chcete orchestrovat nebo naplánovat pomocí služby Data Factory. Další informace najdete v tématu Spouštění balíčků SSIS jako aktivit služby Data Factory.

Upozorňující

Očekává se, že vygenerovaný kanál bude používat jenom AzureDTExec. Jeho vlastnosti nebo parametry se můžou v budoucnu změnit, takže je neupravujte ani znovu nepoužívejte pro jiné účely. Změny můžou narušit AzureDTExec. Pokud k tomu dojde, odstraňte kanál. AzureDTExec vygeneruje nový kanál při příštím vyvolání.