Köra SQL Server Integration Services-paket med det Azure-aktiverade dtexec-verktyget

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!

I den här artikeln beskrivs kommandotolken Azure-aktiverad dtexec (AzureDTExec). Den används för att köra SQL Server Integration Services-paket (SSIS) på Azure-SSIS Integration Runtime (IR) i Azure Data Factory.

Det traditionella dtexec-verktyget levereras med SQL Server. Mer information finns i verktyget dtexec. Det anropas ofta av orkestrerare eller schemaläggare från tredje part, till exempel ActiveBatch och Control-M, för att köra SSIS-paket lokalt.

Det moderna AzureDTExec-verktyget levereras med ett SSMS-verktyg (SQL Server Management Studio). Den kan också anropas av orkestrerare från tredje part eller schemaläggare för att köra SSIS-paket i Azure. Det underlättar lyft och växling eller migrering av dina SSIS-paket till molnet. Om du vill fortsätta använda orkestrerare från tredje part eller schemaläggare i dina dagliga åtgärder kan de nu anropa AzureDTExec i stället för dtexec.

AzureDTExec kör dina paket som Kör SSIS-paketaktiviteter i Data Factory-pipelines. Mer information finns i Köra SSIS-paket som Azure Data Factory-aktiviteter.

AzureDTExec kan konfigureras via SSMS för att använda ett Microsoft Entra-program som genererar pipelines i din datafabrik. Den kan också konfigureras för åtkomst till filsystem, filresurser eller Azure Files där du lagrar dina paket. Baserat på de värden du ger för dess anropsalternativ genererar AzureDTExec och kör en unik Data Factory-pipeline med en Execute SSIS Package-aktivitet i den. Om du anropar AzureDTExec med samma värden för dess alternativ körs den befintliga pipelinen igen.

Förutsättningar

Om du vill använda AzureDTExec laddar du ned och installerar den senaste versionen av SSMS, som är version 18.3 eller senare. Ladda ned den från den här webbplatsen.

Konfigurera AzureDTExec-verktyget

Om du installerar SSMS på den lokala datorn installeras även AzureDTExec. Om du vill konfigurera dess inställningar startar du SSMS med alternativet Kör som administratör . Välj sedan Verktyg>Migrera till Azure>Konfigurera Azure-aktiverad DTExec.

Configure Azure-enabled dtexec menu

Den här åtgärden öppnar ett AzureDTExecConfig-fönster som måste öppnas med administratörsbehörighet för att den ska kunna skriva till filen AzureDTExec.settings . Om du inte har kört SSMS som administratör öppnas ett UAC-fönster (User Account Control). Ange administratörslösenordet för att höja dina privilegier.

Configure Azure-enabled dtexec settings

I fönstret AzureDTExecConfig anger du konfigurationsinställningarna på följande sätt:

  • ApplicationId: Ange den unika identifieraren för Microsoft Entra-appen som du skapar med rätt behörighet för att generera pipelines i datafabriken. Mer information finns i Skapa en Microsoft Entra-app och tjänstens huvudnamn via Azure-portalen.
  • AuthenticationKey: Ange autentiseringsnyckeln för din Microsoft Entra-app.
  • TenantId: Ange den unika identifieraren för Microsoft Entra-klientorganisationen, under vilken din Microsoft Entra-app skapas.
  • DataFactory: Ange namnet på din datafabrik där unika pipelines med aktiviteten Execute SSIS Package i dem genereras baserat på värdena för de alternativ som anges när du anropar AzureDTExec.
  • IRName: Ange namnet på Azure-SSIS IR i din datafabrik, där paketen som anges i unc-sökvägen (Universal Naming Convention) körs när du anropar AzureDTExec.
  • PipelineNameHashStrLen: Ange längden på hashsträngar som ska genereras från värdena för de alternativ som du anger när du anropar AzureDTExec. Strängarna används för att skapa unika namn för Data Factory-pipelines som kör dina paket på Azure-SSIS IR. Vanligtvis räcker det med en längd på 32 tecken.
  • ResourceGroup: Ange namnet på den Azure-resursgrupp där datafabriken skapades.
  • SubscriptionId: Ange den unika identifieraren för Azure-prenumerationen, under vilken datafabriken skapades.
  • LogAccessDomain: Ange domänautentiseringsuppgifterna för att komma åt loggmappen i dess UNC-sökväg när du skriver loggfiler, vilket krävs när LogPath anges och LogLevel inte är null.
  • LogAccessPassword: Ange lösenordsautentiseringsuppgifterna för att komma åt loggmappen i dess UNC-sökväg när du skriver loggfiler, vilket krävs när LogPath anges och LogLevel inte är null.
  • LogAccessUserName: Ange användarnamnets autentiseringsuppgifter för att komma åt loggmappen i dess UNC-sökväg när du skriver loggfiler, vilket krävs när LogPath anges och LogLevel inte är null.
  • LogLevel: Ange det valda omfånget för loggning från fördefinierade null-, Basic-, Verbose- eller Performance-alternativ för dina paketkörningar på Azure-SSIS IR.
  • LogPath: Ange UNC-sökvägen till loggmappen, till vilken loggfiler från paketkörningarna på Azure-SSIS IR skrivs.
  • PackageAccessDomain: Ange domänautentiseringsuppgifterna för att komma åt dina paket i deras UNC-sökväg som anges när du anropar AzureDTExec.
  • PackageAccessPassword: Ange lösenordsautentiseringsuppgifterna för att komma åt dina paket i deras UNC-sökväg som anges när du anropar AzureDTExec.
  • PackageAccessUserName: Ange användarnamnets autentiseringsuppgifter för att komma åt dina paket i deras UNC-sökväg som anges när du anropar AzureDTExec.

Om du vill lagra dina paket och loggfiler i filsystem eller filresurser lokalt ansluter du din Azure-SSIS IR till ett virtuellt nätverk som är anslutet till ditt lokala nätverk så att det kan hämta paketen och skriva loggfilerna. Mer information finns i Ansluta en Azure-SSIS IR till ett virtuellt nätverk.

För att undvika att visa känsliga värden som skrivits in i filen AzureDTExec.settings i oformaterad text kodar vi dem i strängar med Base64-kodning. När du anropar AzureDTExec avkodas alla Base64-kodade strängar tillbaka till sina ursprungliga värden. Du kan skydda filen AzureDTExec.settings ytterligare genom att begränsa de konton som kan komma åt den.

Anropa AzureDTExec-verktyget

Du kan anropa AzureDTExec i kommandotolken och ange relevanta värden för specifika alternativ i ditt användningsfall.

Verktyget installeras på {SSMS Folder}\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn. Du kan lägga till sökvägen till miljövariabeln PATH så att den anropas var som helst.

> 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

Att anropa AzureDTExec erbjuder liknande alternativ som att anropa dtexec. Mer information finns i dtexec-verktyget. Här är de alternativ som stöds för närvarande:

  • /F[ile]: Läser in ett paket som lagras i filsystem, filresurs eller Azure Files. Som värde för det här alternativet kan du ange UNC-sökvägen för din paketfil i filsystemet, filresursen eller Azure Files med dess .dtsx-tillägg. Om DEN ANGIVNA UNC-sökvägen innehåller något blanksteg placerar du citattecken runt hela sökvägen.
  • /Conf[igFile]: Anger en konfigurationsfil att extrahera värden från. Med det här alternativet kan du ange en körningskonfiguration för ditt paket som skiljer sig från den som angavs vid designtillfället. Du kan lagra olika inställningar i en XML-konfigurationsfil och sedan läsa in dem innan paketkörningen. Mer information finns i SSIS-paketkonfigurationer. Om du vill ange värdet för det här alternativet använder du UNC-sökvägen för konfigurationsfilen i filsystemet, filresursen eller Azure Files med dess dtsConfig-tillägg. Om DEN ANGIVNA UNC-sökvägen innehåller något blanksteg placerar du citattecken runt hela sökvägen.
  • /Conn[ection]: Anger anslutningssträng för befintliga anslutningshanterare i paketet. Med det här alternativet kan du ange anslutningssträng för befintliga anslutningshanterare i paketet som skiljer sig från de som anges vid designtillfället. Ange värdet för det här alternativet enligt följande: connection_manager_name_or_id;connection_string [[;connection_manager_name_or_id;connection_string]...].
  • /Set: Åsidosätter konfigurationen av en parameter, variabel, egenskap, container, loggprovider, Foreach-uppräknare eller anslutning i paketet. Det här alternativet kan anges flera gånger. Ange värdet för det här alternativet enligt följande: property_path;value. Åsidosätter \package.variables[counter].Value;1 till exempel värdet counter för variabeln som 1. Du kan använda guiden Paketkonfiguration för att hitta, kopiera och klistra in värdet property_path för för objekt i paketet vars värde du vill åsidosätta. Mer information finns i guiden Paketkonfiguration.
  • /De[crypt]: Anger dekrypteringslösenordet för ditt paket som har konfigurerats med KrypteringAllWithPassword/EncryptSensitiveWithPassword-skyddsnivån.

Kommentar

Om du anropar AzureDTExec med nya värden för dess alternativ genereras en ny pipeline förutom alternativet /De[cript].

När unika pipelines med aktiviteten Execute SSIS Package i dem genereras och körs när du anropar AzureDTExec kan de övervakas på Data Factory-portalen. Du kan också tilldela Data Factory-utlösare till dem om du vill orkestrera/schemalägga dem med hjälp av Data Factory. Mer information finns i Köra SSIS-paket som Data Factory-aktiviteter.

Varning

Den genererade pipelinen förväntas endast användas av AzureDTExec. Dess egenskaper eller parametrar kan ändras i framtiden, så ändra eller återanvänd dem inte för andra ändamål. Ändringar kan bryta AzureDTExec. Om detta händer tar du bort pipelinen. AzureDTExec genererar en ny pipeline nästa gång den anropas.