Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'attività Esegui pacchetto permette di estendere le funzionalità aziendali di Integration Services consentendo ai pacchetti di eseguire altri pacchetti nell'ambito di un flusso di lavoro.
È possibile utilizzare l'attività Esegui pacchetto per gli scopi seguenti:
Suddivisione del flusso di lavoro di pacchetti complessi. Questa attività consente di suddividere il flusso di lavoro in più pacchetti, più semplici da leggere, testare e gestire. Se ad esempio si caricano dati in uno schema star, sarà possibile compilare un pacchetto a parte per il popolamento delle singole dimensioni e della tabella dei fatti.
Riutilizzo di parti di pacchetti. È possibile riutilizzare parti del flusso di lavoro di un pacchetto in altri pacchetti. È ad esempio possibile compilare un modulo di estrazione dati che può essere chiamato da pacchetti diversi. Ogni pacchetto che chiama il modulo di estrazione può quindi eseguire operazioni diverse di ripulitura, filtraggio o aggregazione dei dati.
Raggruppamento di unità di lavoro. Le unità di lavoro possono essere incapsulate in pacchetti separati ed è possibile crearne un join come componenti transazionali al flusso di lavoro di un pacchetto padre. Il pacchetto padre esegue ad esempio i pacchetti accessori e, in base all'esito positivo o negativo dell'esecuzione di questi ultimi, esegue il commit o il rollback della transazione.
Controllo della sicurezza dei pacchetti. Gli autori dei pacchetti hanno l'esigenza di accedere solo a una parte di una soluzione composta da più pacchetti. Suddividendo un pacchetto in più pacchetti è possibile offrire un livello di sicurezza superiore, perché a ogni autore è possibile concedere l'accesso ai soli pacchetti interessati.
Un pacchetto che esegue altri pacchetti è detto in genere pacchetto padre, mentre i pacchetti eseguiti dal flusso di lavoro di un pacchetto padre sono detti pacchetti figlio.
Integration Services include attività per l'esecuzione delle operazioni del flusso di lavoro, ad esempio l'esecuzione di eseguibili e file batch. Per altre informazioni, vedere Attività Esegui processo.
Esecuzione di pacchetti
L'attività Esegui pacchetto consente di eseguire i pacchetti figlio contenuti nello stesso progetto in cui è contenuto il pacchetto padre. Per selezionare un pacchetto figlio dal progetto, impostare la proprietà ReferenceType su Riferimento al progettoe quindi impostare la proprietà PackageNameFromProjectReference .
Nota
L'opzione ReferenceType è di sola lettura e viene impostata su Riferimento esterno se il progetto in cui è contenuto il pacchetto non è stato convertito nel modello di distribuzione del progetto. Per altre informazioni sulla conversione, vedere Distribuire progetti nel server Integration Services.
L'attività Esegui pacchetto può eseguire sia pacchetti archiviati nel database msdb di SQL Server che pacchetti archiviati nel file system. L'attività usa una gestione connessione OLE DB per connettersi a SQL Server o una gestione connessione file per l'accesso al file system. Per altre informazioni, vedere OLE DB Connection Manager e File Connection Manager.
Poiché l'attività Esegui pacchetto consente anche di eseguire un piano di manutenzione database, è possibile gestire sia pacchetti SSIS che piani di manutenzione database nella stessa soluzione di Integration Services. Un piano di manutenzione database è simile a un pacchetto di SSIS, ma può includere solo attività di manutenzione del database e viene sempre archiviato nel database msdb.
Se si sceglie un pacchetto archiviato nel file system, sarà necessario specificare il nome e il percorso del pacchetto. Il pacchetto può risiedere in qualunque posizione del file system e non deve necessariamente trovarsi nella stessa cartella del pacchetto padre.
Il pacchetto figlio può essere eseguito nel processo del pacchetto padre o in un processo a parte. L'esecuzione del pacchetto figlio in un processo a parte richiede più memoria, ma offre maggiore flessibilità. Se ad esempio il processo figlio non riesce, il processo padre potrà continuare l'esecuzione.
Talvolta può essere tuttavia necessario che l'esito dei pacchetti padre e figlio venga determinato come per una singola unità oppure si desidera evitare l'overhead di un processo aggiuntivo. Se ad esempio un processo figlio non riesce e nel processo padre la fase successiva dell'elaborazione dipende dal completamento del processo figlio, è preferibile eseguire il pacchetto figlio nello stesso processo del pacchetto padre.
Per impostazione predefinita, la proprietà ExecuteOutOfProcess dell'attività Esegui pacchetto è impostata su False
e il pacchetto figlio viene eseguito nello stesso processo del pacchetto padre. Se si imposta questa proprietà su True
, il pacchetto figlio viene eseguito in un processo separato. In questo modo è possibile che l'avvio del pacchetto figlio sia rallentato. Inoltre, se si imposta la proprietà su True
, non è possibile eseguire il debug del pacchetto in un'installazione di soli strumenti. È necessario installare Integration Services. Per altre informazioni, vedere Installazione di Integration Services.
Estensione delle transazioni
Poiché la transazione utilizzata dal pacchetto padre può essere estesa al pacchetto figlio, è possibile eseguire in un'unica operazione il commit o il rollback di tutte le operazioni eseguite dai due pacchetti. È ad esempio possibile eseguire il commit o il rollback degli inserimenti nel database eseguiti dal pacchetto padre a seconda dell'esito degli inserimenti nel database eseguiti dal pacchetto figlio e viceversa. Per altre informazioni, vedere Transazioni ereditate.
Propagazione dei dettagli di registrazione
Il pacchetto figlio eseguito dall'attività Esegui pacchetto invia sempre i dettagli di registrazione al pacchetto padre, anche se non è configurato per l'utilizzo della registrazione. I dettagli ricevuti dal pacchetto figlio verranno tuttavia registrati solo se l'attività Esegui pacchetto è configurata per l'utilizzo della registrazione. Per altre informazioni, vedere Registrazione di Integration Services (SSIS).
Passaggio di valori ai pacchetti figlio
I pacchetti figlio utilizzano in genere valori ricevuti dal pacchetto chiamante, che normalmente è il pacchetto padre. L'utilizzo di valori ricevuti da un pacchetto padre può essere utile negli scenari seguenti:
Parti di un flusso di lavoro più grande sono assegnate a pacchetti diversi. È ad esempio possibile creare un pacchetto che scarica dati durante la notte, li riepiloga, assegna i valori di riepilogo alle variabili appropriate e quindi le passa a un altro pacchetto per un'ulteriore elaborazione dei dati.
Il pacchetto padre coordina dinamicamente le attività in un pacchetto figlio. Il pacchetto padre determina ad esempio il numero dei giorni del mese corrente e lo assegna a una variabile, di modo che il pacchetto figlio esegua una determinata attività per il numero di volte indicato da tale valore.
Un pacchetto figlio deve accedere ai dati derivati dinamicamente dal pacchetto padre. Ad esempio, il pacchetto padre estrae dati da una tabella e carica il set di righe in una variabile, quindi il pacchetto figlio esegue ulteriori elaborazioni su tali dati.
È possibile utilizzare i metodi seguenti per passare valori a un pacchetto figlio:
SSIS
Integration Services offre un tipo di configurazione, Variabile pacchetto padre, per il passaggio dei valori dal pacchetto padre a quello figlio. Tale configurazione è compilata in base al pacchetto figlio e utilizza una variabile del pacchetto padre. Viene quindi eseguito il mapping della configurazione a una variabile nel pacchetto figlio o alla proprietà di un oggetto nel pacchetto figlio. La variabile può anche essere utilizzata negli script eseguiti dall'attività Script o dal componente script.
Parameters
È possibile configurare l'attività Esegui pacchetto per eseguire il mapping delle variabili o dei parametri del pacchetto padre o dei parametri del progetto ai parametri del pacchetto figlio. Il progetto deve utilizzare il modello di distribuzione del progetto e il pacchetto figlio deve essere contenuto nello stesso progetto in cui è contenuto il pacchetto padre. Per altre informazioni, vedere Editor attività Esegui pacchetto.
Nota
Se il parametro del pacchetto figlio non è sensibile e ne viene eseguito il mapping a un parametro padre sensibile, non sarà possibile completare l'esecuzione del pacchetto figlio.
Sono supportate le seguenti condizioni di mapping:
- Viene eseguito il mapping del parametro del pacchetto figlio sensibile a un parametro padre sensibile
- Viene eseguito il mapping del parametro del pacchetto figlio sensibile a un parametro padre non sensibile
- Viene eseguito il mapping del parametro del pacchetto figlio non sensibile a un parametro padre non sensibile
La variabile del pacchetto padre può essere definita nell'ambito dell'attività Esegui pacchetto o in un contenitore padre, ad esempio il pacchetto. Se sono presenti più variabili con lo stesso nome, verrà utilizzata quella definita nell'ambito dell'attività Esegui pacchetto oppure quella con ambito più vicino all'attività.
Per altre informazioni, vedere Utilizzare i valori di variabili e parametri in un pacchetto figlio.
Accesso alle variabili del pacchetto padre
Utilizzando l'attività Script è possibile consentire ai pacchetti figlio di accedere alle variabili del pacchetto padre. Quando si immette il nome della variabile del pacchetto padre nella pagina Script di Editor attività Script, non includere User: nel nome della variabile. In caso contrario, il pacchetto figlio non individua la variabile quando si esegue il pacchetto padre. Per altre informazioni sull'uso dell'attività Script per accedere alle variabili del pacchetto padre, vedere questa voce di blog SSIS: Accesso alle variabili in un pacchetto padre.
Configurazione dell'attività Esegui pacchetto
È possibile impostare le proprietà tramite Progettazione SSIS o a livello di codice.
Per altre informazioni sulle proprietà che è possibile impostare in Progettazione SSIS, fare clic su uno degli argomenti seguenti:
Per altre informazioni sull'impostazione di queste proprietà in Progettazione SSIS, fare clic sull'argomento seguente:
Contenuto correlato
Voce di blog, SSIS: Accesso alle variabili in un pacchetto padre, in andyleonard.blog.