Gestire i pacchetti con l'archivio pacchetti di Azure-SSIS Integration Runtime

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 .

Per trasferire in modalità lift-& shift i carichi di lavoro di SQL Server Integration Services (SSIS) locali nel cloud, è possibile effettuare il provisioning di Azure-SSIS Integration Runtime (IR) in Azure Data Factory (ADF). Per altre informazioni, vedere Effettuare il provisioning di un runtime di integrazione Azure-SSIS. Azure-SSIS IR supporta:

  • Esecuzione di pacchetti distribuiti nel catalogo SSIS (SSISDB) ospitato da un server di database SQL di Azure o da un'istanza gestita (modello di distribuzione del progetto)
  • Esecuzione di pacchetti distribuiti nel file system, in File di Azure o in un database SQL Server (MSDB) ospitato da Istanza gestita di database SQL di Azure (modello di distribuzione del pacchetto)

Quando si usa il modello di distribuzione pacchetti, è possibile scegliere se si vuole effettuare il provisioning del runtime di integrazione Azure-SSIS con archivi pacchetti. Forniscono un livello di gestione dei pacchetti su file system, File di Azure o MSDB ospitato da Istanza gestita di SQL di Azure. L'archivio pacchetti di Azure-SSIS IR consente di importare/esportare/eliminare/eseguire pacchetti e monitorare/arrestare l'esecuzione di pacchetti tramite SQL Server Management Studio (SSMS) simile all'archivio pacchetti SSIS legacy.

Connessione ad Azure-SSIS IR

Dopo aver effettuato il provisioning del runtime di integrazione Azure-SSIS, è possibile connettersi all'esplorazione degli archivi pacchetti in SSMS.

Connect to Azure-SSIS IR

Nella finestra Esplora oggetti di SSMS selezionare Azure-SSIS Integration Runtime nel menu a discesa Connessione. Accedere quindi ad Azure e selezionare la sottoscrizione pertinente, ADF e Azure-SSIS IR di cui è stato effettuato il provisioning con gli archivi pacchetti. Il runtime di integrazione Azure-SSIS verrà visualizzato con pacchetti in esecuzione e nodi pacchetti archiviati sotto. Espandere il nodo Pacchetti archiviati per visualizzare gli archivi pacchetti sottostanti. Espandere gli archivi pacchetti per visualizzare le cartelle e i pacchetti sottostanti. Potrebbe essere richiesto di immettere le credenziali di accesso per gli archivi pacchetti, se SSMS non riesce a connettersi automaticamente. Ad esempio, se si espande un archivio pacchetti sopra MSDB, potrebbe essere richiesto di connettersi prima al Istanza gestita di SQL di Azure.

Connect to Azure SQL Managed Instance

Gestire cartelle e pacchetti

Dopo la connessione ad Azure-SSIS IR in SSMS, è possibile fare clic con il pulsante destro del mouse su qualsiasi archivio pacchetti, cartelle o pacchetti per visualizzare un menu e scegliere Nuova cartella, Importa pacchetto, Esporta pacchetto, Elimina o Aggiorna.

Manage folders and packages

  • Selezionare Nuova cartella per creare una nuova cartella per i pacchetti importati.

  • Selezionare Importa pacchetto per importare pacchetti da File System, SQL Server (MSDB) o dall'archivio pacchetti SSIS legacy nell'archivio pacchetti.

    Import Package

    A seconda del percorso del pacchetto da cui eseguire l'importazione, selezionare il tipo di autenticazione server/pertinente, immettere le credenziali di accesso, se necessario, selezionare il percorso del pacchetto e immettere il nuovo nome del pacchetto. Quando si importano pacchetti, il livello di protezione non può essere modificato. Per modificarla, usare SQL Server Data Tools (SSDT) o dtutil l'utilità della riga di comando.

    Nota

    L'importazione di pacchetti SSIS negli archivi pacchetti di Azure-SSIS IR può essere eseguita una sola alla sola copia e li copia semplicemente nel file system MSDB/file system/File di Azure sottostante mantenendo la versione di SQL Server/SSIS.

    Poiché Azure-SSIS IR è attualmente basato su SQL Server 2017, l'esecuzione di pacchetti con versione precedente li aggiornerà in pacchetti SSIS 2017 in fase di esecuzione. L'esecuzione di pacchetti di versioni successive non è supportata.

    Inoltre, poiché gli archivi pacchetti SSIS legacy sono associati a una versione specifica di SQL Server e sono accessibili solo in SSMS per tale versione, i pacchetti con versione precedente negli archivi pacchetti SSIS legacy devono essere esportati in file system prima di poter essere importati negli archivi pacchetti SSIS IR di Azure-SSIS usando SSMS 2019 o versioni successive.

    In alternativa, per importare più pacchetti SSIS negli archivi pacchetti di Azure-SSIS IR durante il cambio del livello di protezione, è possibile usare l'utilità della riga di comando dtutil , vedere Distribuzione di più pacchetti con dtutil.

  • Selezionare Esporta pacchetto per esportare i pacchetti dall'archivio pacchetti nel file system, in SQL Server (MSDB) o nell'archivio pacchetti SSIS legacy.

    Export Package

    A seconda del percorso del pacchetto in cui eseguire l'esportazione, selezionare il tipo di autenticazione server/pertinente, immettere le credenziali di accesso, se necessario, e selezionare il percorso del pacchetto. Quando si esportano pacchetti, se sono crittografati, immettere prima le password per decrittografarle e quindi modificare il livello di protezione, ad esempio per evitare di archiviare dati sensibili o crittografarli o tutti i dati con chiave utente o password.

    Nota

    L'esportazione di pacchetti SSIS dagli archivi pacchetti di Azure-SSIS IR può essere eseguita una sola per uno e questa operazione senza cambiare il livello di protezione li copia semplicemente mantenendo la versione di SQL Server/SSIS, altrimenti li aggiornerà in pacchetti SSIS 2019 o versioni successive.

    Poiché Azure-SSIS IR è attualmente basato su SQL Server 2017, l'esecuzione di pacchetti con versione precedente li aggiornerà in pacchetti SSIS 2017 in fase di esecuzione. L'esecuzione di pacchetti di versioni successive non è supportata.

    In alternativa, per esportare più pacchetti SSIS dagli archivi pacchetti azure-SSIS IR durante il cambio del livello di protezione, è possibile usare l'utilità della riga di comando dtutil , vedere Distribuzione di più pacchetti con dtutil.

  • Selezionare Elimina per eliminare cartelle/pacchetti esistenti dall'archivio pacchetti.

  • Selezionare Aggiorna per visualizzare le cartelle o i pacchetti appena aggiunti nell'archivio pacchetti.

Eseguire pacchetti

Dopo la connessione ad Azure-SSIS IR in SSMS, è possibile fare clic con il pulsante destro del mouse su tutti i pacchetti archiviati per visualizzare un menu e scegliere Esegui pacchetto. Verrà aperta la finestra di dialogo Esegui utilità pacchetti, in cui è possibile configurare le esecuzioni dei pacchetti in Azure-SSIS IR come attività Esegui pacchetto SSIS nelle pipeline di Azure Data Factory.

Execute Package Utility pages 1 & 2

Execute Package Utility pages 3 & 4

Le pagine Generale, Configurazioni, Opzioni di esecuzione e Registrazione della finestra di dialogo Utilità pacchetti di esecuzione corrispondono alla scheda Impostazioni dell'attività Esegui pacchetto SSIS. In queste pagine è possibile immettere la password di crittografia per il pacchetto e le informazioni di accesso per il file di configurazione del pacchetto. È anche possibile immettere le credenziali e le proprietà di esecuzione del pacchetto, nonché le informazioni di accesso per la cartella di log. La pagina Imposta valori della finestra di dialogo Utilità esegui pacchetto corrisponde alla scheda Override proprietà dell'attività Esegui pacchetto SSIS, in cui è possibile immettere le proprietà del pacchetto esistenti per eseguire l'override. Per altre informazioni, vedere Eseguire pacchetti SSIS come attività Esegui pacchetto SSIS nelle pipeline di Azure Data Factory.

Quando si seleziona il pulsante Esegui , verrà generata e attivata automaticamente una nuova pipeline di Azure Data Factory con l'attività Esegui pacchetto SSIS. Se esiste già una pipeline di Azure Data Factory con le stesse impostazioni, verrà rieseguita e non verrà generata una nuova pipeline. La pipeline di Azure Data Factory e l'attività Esegui pacchetto SSIS verranno denominate Pipeline_SSMS_YourPackageName_HashString rispettivamente e Activity_SSMS_YourPackageName.

Execute Package Utility button

Execute SSIS Package activity

Monitorare e arrestare l'esecuzione di pacchetti

Dopo la connessione ad Azure-SSIS IR in SSMS, è possibile espandere il nodo Pacchetti in esecuzione per visualizzare i pacchetti attualmente in esecuzione. Fare clic con il pulsante destro del mouse su uno di essi per visualizzare un menu e scegliere Arresta o Aggiorna.

Monitor and stop running packages

  • Selezionare Arresta per annullare la pipeline ADF attualmente in esecuzione che esegue il pacchetto come attività Esegui pacchetto SSIS.

  • Selezionare Aggiorna per visualizzare i pacchetti appena in esecuzione dagli archivi pacchetti.

Monitorare Azure-SSIS IR e modificare gli archivi pacchetti

Dopo la connessione ad Azure-SSIS IR in SSMS, è possibile fare clic con il pulsante destro del mouse su di esso per visualizzare un menu e scegliere Vai al portale di Azure Data Factory o Aggiorna.

Go to ADF portal

  • Selezionare Vai al portale di Azure Data Factory per aprire la pagina Runtime di integrazione dell'hub di monitoraggio di Azure Data Factory, in cui è possibile monitorare azure-SSIS IR. Nel riquadro ARCHIVI PACCHETTI è possibile visualizzare il numero di archivi pacchetti collegati al runtime di integrazione Azure-SSIS. Selezionando tale numero verrà visualizzata una finestra in cui è possibile modificare i servizi collegati di Azure Data Factory che archivia le informazioni di accesso per gli archivi pacchetti.

    Edit package stores

  • Selezionare Aggiorna per visualizzare le cartelle o i pacchetti appena aggiunti negli archivi pacchetti ed eseguire pacchetti dagli archivi pacchetti.

Distribuzione di più pacchetti con dtutil

Per trasferire e spostare i carichi di lavoro SSIS locali in SSIS in Azure Data Factory mantenendo il modello di distribuzione dei pacchetti legacy, è necessario distribuire i pacchetti da file system, MSDB ospitato da SQL Server o archivi di pacchetti SSIS legacy in File di Azure, MSDB ospitato da Istanza gestita di SQL di Azure o archivi pacchetti di Azure-SSIS IR. Allo stesso tempo, è anche necessario passare dal livello di protezione dalla crittografia tramite chiave utente alla crittografia non crittografata o alla crittografia tramite password, se non è già stato fatto.

È possibile usare l'utilità della riga di comando dtutil fornita con l'installazione di SQL Server/SSIS per distribuire più pacchetti in batch. È associato a una versione SSIS specifica, quindi se viene usata per distribuire pacchetti con versione inferiore senza cambiare il livello di protezione, le copieranno semplicemente mantenendo la versione SSIS. Se lo si usa per distribuirli e cambiare il livello di protezione contemporaneamente, li aggiornerà nella versione SSIS.

Poiché Azure-SSIS IR è attualmente basato su SQL Server 2017, l'esecuzione di pacchetti con versione precedente li aggiornerà in pacchetti SSIS 2017 in fase di esecuzione. L'esecuzione di pacchetti di versioni successive non è supportata.

Di conseguenza, per evitare gli aggiornamenti in fase di esecuzione, la distribuzione di pacchetti da eseguire in Azure-SSIS IR nel modello di distribuzione pacchetti deve usare dtutil 2017 fornito con l'installazione di SQL Server/SSIS 2017. A questo scopo, è possibile scaricare e installare gratuitamente SQL Server/SSIS 2017 Developer Edition . Dopo l'installazione, è possibile trovare dtutil 2017 in questa cartella: YourLocalDrive:\Program Files\Microsoft SQL Server\140\DTS\Binn.

Distribuzione di più pacchetti dal file system locale in File di Azure con dtutil

Per distribuire più pacchetti dal file system in File di Azure e cambiare il livello di protezione contemporaneamente, è possibile eseguire i comandi seguenti al prompt dei comandi. Sostituire tutte le stringhe specifiche del caso.

REM Persist the access credentials for Azure Files on your local machine
cmdkey /ADD:YourStorageAccountName.file.core.windows.net /USER:azure\YourStorageAccountName /PASS:YourStorageAccountKey

REM Connect Azure Files to a drive on your local machine
net use Z: \\YourStorageAccountName.file.core.windows.net\YourFileShare /PERSISTENT:Yes

REM Go to a local folder where you store your packages
cd YourLocalDrive:\...\YourPackageFolder

REM Run dtutil in a loop to deploy your packages from the local folder into Azure Files while switching their protection level
for %f in (*.dtsx) do dtutil.exe /FILE %f /ENCRYPT FILE;Z:\%f;2;YourEncryptionPassword

Per eseguire i comandi precedenti in un file batch, sostituire %f con %%f.

Per distribuire più pacchetti da archivi di pacchetti SSIS legacy sopra il file system in File di Azure e cambiare il livello di protezione contemporaneamente, è possibile usare gli stessi comandi, ma sostituire YourLocalDrive:\...\YourPackageFolder con una cartella locale usata dagli archivi pacchetti SSIS legacy: YourLocalDrive:\Program Files\Microsoft SQL Server\YourSQLServerDefaultCompatibilityLevel\DTS\Packages\YourPackageFolder. Ad esempio, se l'archivio pacchetti SSIS legacy è associato a SQL Server 2016, passare a YourLocalDrive:\Program Files\Microsoft SQL Server\130\DTS\Packages\YourPackageFolder. È possibile trovare il valore per YourSQLServerDefaultCompatibilityLevel da un elenco di livelli di compatibilità predefiniti di SQL Server.

Se sono stati configurati archivi pacchetti di Azure-SSIS IR sopra File di Azure, i pacchetti distribuiti verranno visualizzati quando ci si connette al runtime di integrazione Azure-SSIS in SSMS 2019 o versioni successive.

Distribuzione di più pacchetti da MSDB in locale in MSDB in Azure con dtutil

Per distribuire più pacchetti da MSDB ospitati da SQL Server o archivi di pacchetti SSIS legacy su MSDB in MSDB ospitato da Istanza gestita di SQL di Azure e cambiare il livello di protezione contemporaneamente, è possibile connettersi a SQL Server in SSMS, fare clic con il pulsante destro del mouse sul Databases->System Databases->msdb nodo sul Esplora oggetti di SSMS per aprire una nuova query finestra ed eseguire lo script T-SQL seguente. Sostituire tutte le stringhe specifiche del caso:

BEGIN
  SELECT 'dtutil /SQL '+f.foldername+'\'+NAME+' /ENCRYPT SQL;'+f.foldername+'\'+NAME+';2;YourEncryptionPassword /DestServer YourSQLManagedInstanceEndpoint /DestUser YourSQLAuthUsername /DestPassword YourSQLAuthPassword'
  FROM msdb.dbo.sysssispackages p
  inner join msdb.dbo.sysssispackagefolders f
  ON p.folderid = f.folderid
END

Per usare l'endpoint privato/pubblico del Istanza gestita di SQL di Azure, sostituire YourSQLManagedInstanceEndpoint rispettivamente con/YourSQLMIName.YourDNSPrefix.database.windows.netYourSQLMIName.public.YourDNSPrefix.database.windows.net,3342 .

Lo script genererà le righe di comando dtutil per tutti i pacchetti in MSDB che è possibile selezionare, copiare e incollare ed eseguire al prompt dei comandi.

Generate dtutil command lines

dtutil /SQL YourFolder\YourPackage1 /ENCRYPT SQL;YourFolder\YourPackage1;2;YourEncryptionPassword /DestServer YourSQLManagedInstanceEndpoint /DestUser YourUserName /DestPassword YourPassword
dtutil /SQL YourFolder\YourPackage2 /ENCRYPT SQL;YourFolder\YourPackage2;2;YourEncryptionPassword /DestServer YourSQLManagedInstanceEndpoint /DestUser YourUserName /DestPassword YourPassword
dtutil /SQL YourFolder\YourPackage3 /ENCRYPT SQL;YourFolder\YourPackage3;2;YourEncryptionPassword /DestServer YourSQLManagedInstanceEndpoint /DestUser YourUserName /DestPassword YourPassword

Se sono stati configurati archivi pacchetti azure-SSIS IR sopra MSDB, i pacchetti distribuiti verranno visualizzati quando ci si connette al runtime di integrazione Azure-SSIS in SSMS 2019 o versioni successive.

Distribuzione di più pacchetti da MSDB in locale in File di Azure con dtutil

Per distribuire più pacchetti da MSDB ospitati da SQL Server o archivi di pacchetti SSIS legacy su MSDB in File di Azure e cambiare il livello di protezione contemporaneamente, è possibile connettersi a SQL Server in SSMS, fare clic con il pulsante destro del mouse sul Databases->System Databases->msdb nodo nella Esplora oggetti di SSMS per aprire una finestra Nuova query ed eseguire lo script T-SQL seguente. Sostituire tutte le stringhe specifiche del caso:

BEGIN
  SELECT 'dtutil /SQL '+f.foldername+'\'+NAME+' /ENCRYPT FILE;Z:\'+f.foldername+'\'+NAME+'.dtsx;2;YourEncryptionPassword' 
  FROM msdb.dbo.sysssispackages p
  inner join msdb.dbo.sysssispackagefolders f
  ON p.folderid = f.folderid
END

Lo script genererà le righe di comando dtutil per tutti i pacchetti in MSDB che è possibile selezionare, copiare e incollare ed eseguire al prompt dei comandi.

REM Persist the access credentials for Azure Files on your local machine
cmdkey /ADD:YourStorageAccountName.file.core.windows.net /USER:azure\YourStorageAccountName /PASS:YourStorageAccountKey

REM Connect Azure Files to a drive on your local machine
net use Z: \\YourStorageAccountName.file.core.windows.net\YourFileShare /PERSISTENT:Yes

REM Multiselect, copy & paste, and run the T-SQL-generated dtutil command lines to deploy your packages from MSDB on premises into Azure Files while switching their protection level
dtutil /SQL YourFolder\YourPackage1 /ENCRYPT FILE;Z:\YourFolder\YourPackage1.dtsx;2;YourEncryptionPassword
dtutil /SQL YourFolder\YourPackage2 /ENCRYPT FILE;Z:\YourFolder\YourPackage2.dtsx;2;YourEncryptionPassword
dtutil /SQL YourFolder\YourPackage3 /ENCRYPT FILE;Z:\YourFolder\YourPackage3.dtsx;2;YourEncryptionPassword

Se sono stati configurati archivi pacchetti di Azure-SSIS IR sopra File di Azure, i pacchetti distribuiti verranno visualizzati quando ci si connette al runtime di integrazione Azure-SSIS in SSMS 2019 o versioni successive.

È possibile rieseguire/modificare le pipeline di Azure Data Factory generate automaticamente con le attività Esegui pacchetto SSIS o crearne di nuove nel portale di Azure Data Factory. Per altre informazioni, vedere Eseguire pacchetti SSIS come attività Esegui pacchetto SSIS nelle pipeline di Azure Data Factory.