Eseguire pacchetti di SQL Server Integration Services con l'utilità dtexec abilitata per Azure

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

Questo articolo descrive l'utilità del prompt dei comandi dtexec (AzureDTExec) abilitata per Azure. Viene usato per eseguire pacchetti di SQL Server Integration Services (SSIS) in Azure-SSIS Integration Runtime (IR) in Azure Data Factory.

L'utilità dtexec tradizionale viene fornita con SQL Server. Per altre informazioni, vedere utilità dtexec. Viene spesso richiamato da agenti di orchestrazione o utilità di pianificazione di terze parti, ad esempio ActiveBatch e Control-M, per eseguire pacchetti SSIS in locale.

L'utilità AzureDTExec moderna include uno strumento di SQL Server Management Studio (SSMS). Può anche essere richiamato da agenti di orchestrazione o utilità di pianificazione di terze parti per eseguire pacchetti SSIS in Azure. Facilita l'accuratezza e lo spostamento o la migrazione dei pacchetti SSIS nel cloud. Dopo la migrazione, se si vuole continuare a usare agenti di orchestrazione o utilità di pianificazione di terze parti nelle operazioni quotidiane, è ora possibile richiamare AzureDTExec anziché dtexec.

AzureDTExec esegue i pacchetti come attività Esegui pacchetto SSIS nelle pipeline di Data Factory. Per altre informazioni, vedere Eseguire pacchetti SSIS come attività di Azure Data Factory.

AzureDTExec può essere configurato tramite SSMS per l'uso di un'applicazione Microsoft Entra che genera pipeline nella data factory. Può anche essere configurato per accedere a file system, condivisioni file o File di Azure in cui archiviare i pacchetti. In base ai valori specificati per le opzioni di chiamata, AzureDTExec genera ed esegue una pipeline di Data Factory univoca con un'attività Esegui pacchetto SSIS. Richiamare AzureDTExec con gli stessi valori per le relative opzioni esegue nuovamente la pipeline esistente.

Prerequisiti

Per usare AzureDTExec, scaricare e installare la versione più recente di SSMS, ovvero la versione 18.3 o successiva. Scaricarlo da questo sito Web.

Configurare l'utilità AzureDTExec

L'installazione di SSMS nel computer locale installa anche AzureDTExec. Per configurare le impostazioni, avviare SSMS con l'opzione Esegui come amministratore . Selezionare quindi Strumenti>Migrate to Azure Configure Azure-enabled DTExec (Strumenti migrate to Azure Configure Azure-enabled>DTExec).

Configure Azure-enabled dtexec menu

Questa azione apre una finestra AzureDTExecConfig che deve essere aperta con privilegi amministrativi per la scrittura nel file AzureDTExec.settings . Se non si esegue SSMS come amministratore, viene visualizzata una finestra Controllo account utente . Immettere la password amministratore per elevare i privilegi.

Configure Azure-enabled dtexec settings

Nella finestra AzureDTExecConfig immettere le impostazioni di configurazione come indicato di seguito:

  • ApplicationId: immettere l'identificatore univoco dell'app Microsoft Entra creata con le autorizzazioni appropriate per generare pipeline nella data factory. Per altre informazioni, vedere Creare un'app e un'entità servizio Microsoft Entra tramite portale di Azure.
  • AuthenticationKey: immettere la chiave di autenticazione per l'app Microsoft Entra.
  • TenantId: immettere l'identificatore univoco del tenant di Microsoft Entra, in cui viene creata l'app Microsoft Entra.
  • DataFactory: immettere il nome della data factory in cui vengono generate pipeline univoche con l'attività Esegui pacchetto SSIS in essi contenute in base ai valori delle opzioni fornite quando si richiama AzureDTExec.
  • IRName: immettere il nome del runtime di integrazione Azure-SSIS nella data factory in cui verranno eseguiti i pacchetti specificati nel percorso UNC (Universal Naming Convention) quando si richiama AzureDTExec.
  • PipelineNameHashStrLen: immettere la lunghezza delle stringhe hash da generare dai valori delle opzioni specificate quando si richiama AzureDTExec. Le stringhe vengono usate per formare nomi univoci per le pipeline di Data Factory che eseguono i pacchetti nel runtime di integrazione Azure-SSIS. In genere è sufficiente una lunghezza di 32 caratteri.
  • ResourceGroup: immettere il nome del gruppo di risorse di Azure in cui è stata creata la data factory.
  • SubscriptionId: immettere l'identificatore univoco della sottoscrizione di Azure, in cui è stata creata la data factory.
  • LogAccessDomain: immettere le credenziali di dominio per accedere alla cartella di log nel percorso UNC quando si scrivono i file di log, che è necessario quando si specifica LogPath e LogLevel non è Null.
  • LogAccessPassword: immettere le credenziali della password per accedere alla cartella di log nel percorso UNC quando si scrivono file di log, che è necessario quando si specifica LogPath e LogLevel non è Null.
  • LogAccessUserName: immettere le credenziali del nome utente per accedere alla cartella di log nel percorso UNC quando si scrivono file di log, che è necessario quando si specifica LogPath e LogLevel non è null.
  • LogLevel: immettere l'ambito selezionato per la registrazione da opzioni predefinite null, Basic, Verbose o Prestazioni per le esecuzioni dei pacchetti nel runtime di integrazione Azure-SSIS.
  • LogPath: immettere il percorso UNC della cartella di log in cui vengono scritti i file di log delle esecuzioni dei pacchetti in Azure-SSIS IR.
  • PackageAccessDomain: immettere le credenziali di dominio per accedere ai pacchetti nel percorso UNC specificato quando si richiama AzureDTExec.
  • PackageAccessPassword: immettere le credenziali della password per accedere ai pacchetti nel percorso UNC specificato quando si richiama AzureDTExec.
  • PackageAccessUserName: immettere le credenziali del nome utente per accedere ai pacchetti nel percorso UNC specificato quando si richiama AzureDTExec.

Per archiviare i pacchetti e i file di log in file system o condivisioni file locali, aggiungere il runtime di integrazione Azure-SSIS a una rete virtuale connessa alla rete locale in modo che possa recuperare i pacchetti e scrivere i file di log. Per altre informazioni, vedere Aggiungere un runtime di integrazione Azure-SSIS a una rete virtuale.

Per evitare di visualizzare i valori sensibili scritti nel file AzureDTExec.settings in testo normale, vengono codificati in stringhe di codifica Base64. Quando si richiama AzureDTExec, tutte le stringhe con codifica Base64 vengono decodificate nuovamente nei valori originali. È possibile proteggere ulteriormente il file AzureDTExec.settings limitando gli account che possono accedervi.

Richiamare l'utilità AzureDTExec

È possibile richiamare AzureDTExec al prompt della riga di comando e specificare i valori pertinenti per opzioni specifiche nello scenario del caso d'uso.

L'utilità viene installata in {SSMS Folder}\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn. È possibile aggiungerne il percorso alla variabile di ambiente "PATH" affinché venga richiamata da qualsiasi posizione.

> 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

Il richiamo di AzureDTExec offre opzioni simili come la chiamata di dtexec. Per altre informazioni, vedere dtexec Utility. Ecco le opzioni attualmente supportate:

  • /F[ile]: carica un pacchetto archiviato nel file system, nella condivisione file o File di Azure. Come valore per questa opzione, è possibile specificare il percorso UNC per il file del pacchetto nel file system, nella condivisione file o File di Azure con la relativa estensione dtsx. Se il percorso UNC specificato contiene spazio, inserire le virgolette intorno all'intero percorso.
  • /Conf[igFile]: specifica un file di configurazione da cui estrarre i valori. Usando questa opzione, è possibile impostare una configurazione di runtime per il pacchetto diverso da quello specificato in fase di progettazione. È possibile archiviare impostazioni diverse in un file di configurazione XML e quindi caricarle prima dell'esecuzione del pacchetto. Per altre informazioni, vedere Configurazioni dei pacchetti SSIS. Per specificare il valore per questa opzione, usare il percorso UNC per il file di configurazione nel file system, nella condivisione file o File di Azure con l'estensione dtsConfig. Se il percorso UNC specificato contiene spazio, inserire le virgolette intorno all'intero percorso.
  • /Conn[ection]: specifica stringa di connessione per le gestioni connessioni esistenti nel pacchetto. Usando questa opzione, è possibile impostare stringa di connessione di runtime per le gestioni connessioni esistenti nel pacchetto che differiscono da quelle specificate in fase di progettazione. Specificare il valore per questa opzione come indicato di seguito: connection_manager_name_or_id;connection_string [[;connection_manager_name_or_id;connection_string]...].
  • /Set: esegue l'override della configurazione di un parametro, una variabile, una proprietà, un contenitore, un provider di log, un enumeratore Foreach o una connessione nel pacchetto. Questa opzione può essere specificata più volte. Specificare il valore per questa opzione come indicato di seguito: property_path;value. Ad esempio, \package.variables[counter].Value;1 esegue l'override del valore della counter variabile come 1. È possibile usare la Configurazione guidata pacchetto per trovare, copiare e incollare il valore di property_path per gli elementi nel pacchetto di cui si vuole eseguire l'override. Per altre informazioni, vedere Configurazione guidata pacchetti.
  • /De[crypt]: imposta la password di decrittografia per il pacchetto configurato con il livello di protezione EncryptAllWithPassword/EncryptSensitiveWithPassword.

Nota

Richiamare AzureDTExec con nuovi valori per le relative opzioni genera una nuova pipeline ad eccezione dell'opzione /De[cript].

Dopo che le pipeline univoche con l'attività Esegui pacchetto SSIS in esse vengono generate ed eseguite quando si richiama AzureDTExec, possono essere monitorate nel portale di Data Factory. È anche possibile assegnare trigger di Data Factory a tali trigger se si vuole orchestrarli o pianificarli usando Data Factory. Per altre informazioni, vedere Eseguire pacchetti SSIS come attività di Data Factory.

Avviso

La pipeline generata deve essere usata solo da AzureDTExec. Le proprietà o i parametri potrebbero cambiare in futuro, quindi non modificarli o riutilizzarli per altri scopi. Le modifiche potrebbero interrompere AzureDTExec. In questo caso, eliminare la pipeline. AzureDTExec genera una nuova pipeline alla successiva chiamata.