Lezione 2: Aggiungere cicli con SSISLesson 2: Adding Looping with SSIS

Nella Lezione 1: Creazione del progetto e del pacchetto di baseè stato creato un pacchetto che ha estratto i dati da un'unica origine file flat, ha trasformato i dati usando la trasformazione Ricerca e infine ha caricato i dati nella tabella dei fatti FactCurrency del database di esempio AdventureWorksDW2012 .In Lesson 1: Create a Project and Basic Package with SSIS, you created a package that extracted data from a single flat file source, transformed the data using Lookup transformations, and finally loaded the data into the FactCurrency fact table of the AdventureWorksDW2012 sample database.

Tuttavia, per un processo di estrazione, trasformazione e caricamento (ETL, Extract, Transform and Loading) raramente viene usato un unico file flat.However, it is rare for an extract, transform, and load (ETL) process to use a single flat file. In genere durante un processo ETL i dati vengono estratti da più origini file flat.A typical ETL process would extract data from multiple flat file sources. L'estrazione dei dati da più origini richiede un flusso di controllo iterativo.Extracting data from multiple sources requires an iterative control flow. Una delle caratteristiche più attese di MicrosoftMicrosoft Integration ServicesIntegration Services consiste nella possibilità di aggiungere facilmente iterazioni o cicli ai pacchetti.One of the most anticipated features of MicrosoftMicrosoft Integration ServicesIntegration Services is the ability to easily add iteration or looping to packages.

Integration ServicesIntegration Services offre due tipi di contenitori per eseguire i cicli di pacchetti: il contenitore Ciclo Foreach e il contenitore Ciclo For. provides two types of containers for looping through packages: the Foreach Loop container and the For Loop container. Nel contenitore Ciclo Foreach viene usato un enumeratore per eseguire il ciclo mentre nel contenitore Ciclo For viene usata in genere un'espressione di variabili.The Foreach Loop container uses an enumerator to perform the looping, whereas the For Loop container typically uses a variable expression. Questa lezione prevede l'uso del contenitore Ciclo Foreach.This lesson uses the Foreach Loop container.

Il contenitore Ciclo Foreach consente a un pacchetto di ripetere il flusso di controllo per ogni membro di un enumeratore specificato.The Foreach Loop container enables a package to repeat the control flow for each member of a specified enumerator. Il contenitore Ciclo Foreach consente di enumerare:With the Foreach Loop container, you can enumerate:

  • Righe di un recordset ADOADO recordset rows

  • Informazioni sullo schema ADO .NETADO .Net schema information

  • Strutture di file e directoryFile and directory structures

  • Variabili utente, di sistema e del pacchettoSystem, package and user variables

  • Oggetti enumerabili contenuti in una variabileEnumerable objects contained in a variable

  • Elementi di una raccoltaItems in a collection

  • Nodi in un'espressione XPATHNodes in an XML Path Language (XPath) expression

  • SQL ServerSQL Server Oggetti SMO (Management Objects) Management Objects (SMO)

In questa lezione verranno illustrate le procedure per modificare il pacchetto ETL semplice creato nella lezione 1 usando il contenitore Ciclo Foreach.In this lesson, you will modify the simple ETL package created in Lesson 1 to take advantage of the Foreach Loop container. Verranno inoltre impostate le variabili del pacchetto definite dall'utente in modo che nel pacchetto creato nell'esercitazione sia possibile scorrere tutti i file flat contenuti nella cartella.You will also set user-defined package variables to enable the tutorial package to iterate through all the flat files in the folder. Se non è stata completata la lezione precedente, è possibile copiare il pacchetto della lezione 1 completato incluso nell'esercitazione.If you have not completed the previous lesson, you can also copy the completed Lesson 1 package that is included with the tutorial.

In questa lezione verrà modificato solo il flusso di controllo, non il flusso di dati.In this lesson, you will not modify the data flow, only the control flow.

Importante

Per eseguire questa esercitazione, è necessario il database di esempio AdventureWorksDW2012 .This tutorial requires the AdventureWorksDW2012 sample database. Per altre informazioni sull'installazione e sulla distribuzione di AdventureWorksDW2012, vedere Esempi di Reporting Services su CodePlex.For more information about how to install and deploy AdventureWorksDW2012, see Reporting Services Product Samples on CodePlex.

Argomenti della lezioneLesson Tasks

In questa lezione sono incluse le attività seguenti:This lesson contains the following tasks:

Inizio della lezioneStart the Lesson

Passaggio 1: Copia del pacchetto della lezione 1Step 1: Copying the Lesson 1 Package

Vedere ancheSee Also

Contenitore Ciclo ForFor Loop Container