Delen via


SQL Server Integration Services-pakketten uitvoeren met het dtexec-hulpprogramma met Azure

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In dit artikel wordt het opdrachtpromptprogramma met Azure-functionaliteit (AzureDTExec) beschreven. Het wordt gebruikt om SSIS-pakketten (SQL Server Integration Services) uit te voeren op de Azure-SSIS Integration Runtime (IR) in Azure Data Factory.

Het traditionele hulpprogramma dtexec wordt geleverd met SQL Server. Zie het hulpprogramma dtexec voor meer informatie. Het wordt vaak aangeroepen door orchestrators of planners van derden, zoals ActiveBatch en Control-M, om SSIS-pakketten on-premises uit te voeren.

Het moderne hulpprogramma AzureDTExec wordt geleverd met een SSMS-hulpprogramma (SQL Server Management Studio). Het kan ook worden aangeroepen door orchestrators van derden of planners om SSIS-pakketten uit te voeren in Azure. Het vereenvoudigt het tillen en verplaatsen of migreren van uw SSIS-pakketten naar de cloud. Als u na de migratie orchestrators of planners van derden wilt blijven gebruiken in uw dagelijkse bewerkingen, kunnen ze nu AzureDTExec aanroepen in plaats van dtexec.

AzureDTExec voert uw pakketten uit als SSIS-pakketactiviteiten uitvoeren in Data Factory-pijplijnen. Zie SSIS-pakketten uitvoeren als Azure Data Factory-activiteiten voor meer informatie.

AzureDTExec kan worden geconfigureerd via SSMS om een Microsoft Entra-toepassing te gebruiken waarmee pijplijnen in uw data factory worden gegenereerd. Het kan ook worden geconfigureerd voor toegang tot bestandssystemen, bestandsshares of Azure Files waar u uw pakketten opslaat. Op basis van de waarden die u opgeeft voor de aanroepopties, genereert en voert AzureDTExec een unieke Data Factory-pijplijn uit met daarin een SSIS-pakketactiviteit uitvoeren. Als u AzureDTExec aanroept met dezelfde waarden voor de opties, wordt de bestaande pijplijn opnieuw uitgevoerd.

Vereisten

Als u AzureDTExec wilt gebruiken, downloadt en installeert u de nieuwste versie van SSMS, versie 18.3 of hoger. Download het vanaf deze website.

Het hulpprogramma AzureDTExec configureren

Als u SSMS installeert op uw lokale computer, wordt ook AzureDTExec geïnstalleerd. Als u de instellingen wilt configureren, start u SSMS met de optie Als administrator uitvoeren. Selecteer vervolgens Tools>Migrate naar Azure>Configure Azure DTExec.

Configure Azure-enabled dtexec menu

Met deze actie wordt een AzureDTExecConfig-venster geopend dat moet worden geopend met beheerdersbevoegdheden voor het schrijven naar het bestand AzureDTExec.settings . Als u SSMS niet als beheerder hebt uitgevoerd, wordt er een UAC-venster (User Account Control) geopend. Voer uw beheerderswachtwoord in om uw bevoegdheden te verhogen.

Configure Azure-enabled dtexec settings

Voer in het venster AzureDTExecConfig de configuratie-instellingen als volgt in:

  • ApplicationId: Voer de unieke id in van de Microsoft Entra-app die u maakt met de juiste machtigingen voor het genereren van pijplijnen in uw data factory. Zie Een Microsoft Entra-app en service-principal maken via Azure Portal voor meer informatie.
  • AuthenticationKey: voer de verificatiesleutel in voor uw Microsoft Entra-app.
  • TenantId: Voer de unieke id in van de Microsoft Entra-tenant, waaronder uw Microsoft Entra-app wordt gemaakt.
  • DataFactory: Voer de naam in van uw data factory waarin unieke pijplijnen met SSIS-pakketactiviteit uitvoeren worden gegenereerd op basis van de waarden van opties die worden opgegeven wanneer u AzureDTExec aanroept.
  • IRName: Voer de naam in van de Azure-SSIS IR in uw data factory, waarop de pakketten die zijn opgegeven in het UNC-pad (Universal Naming Convention) worden uitgevoerd wanneer u AzureDTExec aanroept.
  • PipelineNameHashStrLen: voer de lengte in van hashtekenreeksen die moeten worden gegenereerd op basis van de waarden van opties die u opgeeft wanneer u AzureDTExec aanroept. De tekenreeksen worden gebruikt om unieke namen te vormen voor Data Factory-pijplijnen die uw pakketten uitvoeren op de Azure-SSIS IR. Meestal is een lengte van 32 tekens voldoende.
  • ResourceGroup: Voer de naam in van de Azure-resourcegroep waarin uw data factory is gemaakt.
  • SubscriptionId: Voer de unieke id in van het Azure-abonnement, waaronder uw data factory is gemaakt.
  • LogAccessDomain: voer de domeinreferentie in voor toegang tot uw logboekmap in het UNC-pad wanneer u logboekbestanden schrijft. Dit is vereist wanneer LogPath is opgegeven en LogLevel niet null is.
  • LogAccessPassword: voer de wachtwoordreferentie in voor toegang tot uw logboekmap in het UNC-pad wanneer u logboekbestanden schrijft. Dit is vereist wanneer LogPath is opgegeven en LogLevel niet null is.
  • LogAccessUserName: voer de gebruikersnaamreferentie in voor toegang tot uw logboekmap in het UNC-pad wanneer u logboekbestanden schrijft. Dit is vereist wanneer LogPath is opgegeven en LogLevel niet null is.
  • LogLevel: voer het geselecteerde bereik van logboekregistratie in op basis van vooraf gedefinieerde null-, Basic-, Uitgebreide- of Prestatieopties voor uw pakketuitvoeringen op de Azure-SSIS IR.
  • LogPath: Voer het UNC-pad van de logboekmap in waarin logboekbestanden van uw pakketuitvoeringen op de Azure-SSIS IR worden geschreven.
  • PackageAccessDomain: voer de domeinreferenties in om toegang te krijgen tot uw pakketten in hun UNC-pad dat is opgegeven wanneer u AzureDTExec aanroept.
  • PackageAccessPassword: voer de wachtwoordreferentie in voor toegang tot uw pakketten in hun UNC-pad dat is opgegeven wanneer u AzureDTExec aanroept.
  • PackageAccessUserName: voer de gebruikersnaamreferentie in voor toegang tot uw pakketten in hun UNC-pad dat is opgegeven wanneer u AzureDTExec aanroept.

Als u uw pakketten en logboekbestanden wilt opslaan in bestandssystemen of bestandsshares on-premises, voegt u uw Azure-SSIS IR toe aan een virtueel netwerk dat is verbonden met uw on-premises netwerk, zodat deze uw pakketten kan ophalen en uw logboekbestanden kan schrijven. Zie Een Azure-SSIS IR toevoegen aan een virtueel netwerk voor meer informatie.

Om te voorkomen dat gevoelige waarden worden weergegeven die zijn geschreven in het bestand AzureDTExec.settings in tekst zonder opmaak, coderen we deze in tekenreeksen van Base64-codering. Wanneer u AzureDTExec aanroept, worden alle met Base64 gecodeerde tekenreeksen gedecodeerd in de oorspronkelijke waarden. U kunt het bestand AzureDTExec.settings verder beveiligen door de accounts te beperken die er toegang toe hebben.

Het hulpprogramma AzureDTExec aanroepen

U kunt AzureDTExec aanroepen via de opdrachtregelprompt en de relevante waarden opgeven voor specifieke opties in uw use-casescenario.

Het hulpprogramma is geïnstalleerd op {SSMS Folder}\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn. U kunt het pad toevoegen aan de omgevingsvariabele PATH, zodat deze overal kan worden aangeroepen.

> 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=server-name.database.windows.net;User ID=MyAdminUsername;Password=MyAdminPassword;Initial Catalog=MyDatabase"  ^
  /Set \package.variables[MyVariable].Value;MyValue  ^
  /De MyEncryptionPassword

Het aanroepen van AzureDTExec biedt vergelijkbare opties als het aanroepen van dtexec. Zie dtexec Utility voor meer informatie. Dit zijn de opties die momenteel worden ondersteund:

  • /F[ile]: laadt een pakket dat is opgeslagen in het bestandssysteem, de bestandsshare of Azure Files. Als waarde voor deze optie kunt u het UNC-pad voor uw pakketbestand opgeven in bestandssysteem, bestandsshare of Azure Files met de extensie .dtsx. Als het opgegeven UNC-pad een spatie bevat, plaatst u aanhalingstekens rond het hele pad.
  • /Conf[igFile]: hiermee geeft u een configuratiebestand op waaruit waarden moeten worden geëxtraheerd. Met deze optie kunt u een runtimeconfiguratie instellen voor uw pakket dat verschilt van het pakket dat tijdens het ontwerp is opgegeven. U kunt verschillende instellingen opslaan in een XML-configuratiebestand en deze vervolgens laden voordat het pakket wordt uitgevoerd. Zie SSIS-pakketconfiguraties voor meer informatie. Als u de waarde voor deze optie wilt opgeven, gebruikt u het UNC-pad voor uw configuratiebestand in het bestandssysteem, de bestandsshare of Azure Files met de dtsConfig-extensie. Als het opgegeven UNC-pad een spatie bevat, plaatst u aanhalingstekens rond het hele pad.
  • /Conn[ection]: hiermee geeft u verbindingsreeks s op voor bestaande verbindingsbeheerders in uw pakket. Met deze optie kunt u runtime-verbindingsreeks s instellen voor bestaande verbindingsbeheerders in uw pakket, die verschillen van die die zijn opgegeven tijdens het ontwerp. Geef de waarde voor deze optie als volgt op: connection_manager_name_or_id;connection_string [[;connection_manager_name_or_id;connection_string]...]
  • /Set: Overschrijft de configuratie van een parameter, variabele, eigenschap, container, logboekprovider, Foreach-enumerator of verbinding in uw pakket. Deze optie kan meerdere keren worden opgegeven. Geef de waarde voor deze optie als volgt op: property_path;value Hiermee wordt bijvoorbeeld \package.variables[counter].Value;1 de waarde van counter de variabele overschreven als 1. U kunt de wizard Pakketconfiguratie gebruiken om de waarde van property_path items in uw pakket te zoeken, te kopiëren en te plakken waarvan u de waarde wilt overschrijven. Zie de wizard Pakketconfiguratie voor meer informatie.
  • /De[crypt]: hiermee stelt u het ontsleutelingswachtwoord in voor uw pakket dat is geconfigureerd met het beveiligingsniveau EncryptAllWithPassword/EncryptSensitiveWithPassword.

Notitie

Als u AzureDTExec aanroept met nieuwe waarden voor de opties, wordt er een nieuwe pijplijn gegenereerd, met uitzondering van de optie /De[cript].

Nadat unieke pijplijnen met de activiteit SSIS-pakket uitvoeren in deze pijplijnen zijn gegenereerd en uitgevoerd wanneer u AzureDTExec aanroept, kunnen ze worden bewaakt in de Data Factory-portal. U kunt er ook Data Factory-triggers aan toewijzen als u ze wilt organiseren/plannen met Behulp van Data Factory. Zie SSIS-pakketten uitvoeren als Data Factory-activiteiten voor meer informatie.

Waarschuwing

De gegenereerde pijplijn wordt naar verwachting alleen gebruikt door AzureDTExec. De eigenschappen of parameters kunnen in de toekomst veranderen, dus pas ze niet aan of hergebruik ze voor andere doeleinden. Wijzigingen kunnen azureDTExec verbreken. Als dit gebeurt, verwijdert u de pijplijn. AzureDTExec genereert een nieuwe pijplijn wanneer deze de volgende keer wordt aangeroepen.