レッスン 2 : ループの追加
「レッスン 1 (SSIS チュートリアル): プロジェクトと基本パッケージの作成」では、単一のフラット ファイル ソースからデータを抽出するパッケージを作成し、参照変換を使用してデータを変換しました。さらに、変換したデータを、AdventureWorksDW サンプル データベースの FactCurrencyRate ファクト テーブルに読み込みました。
しかし、抽出、変換、読み込み (ETL) プロセスでフラット ファイルを 1 つだけ使用することはほとんどありません。通常の ETL プロセスでは、複数のフラット ファイル ソースからデータを抽出します。複数のソースからデータを抽出するには、反復型の制御フローが必要となります。MicrosoftIntegration Services では、反復やループをパッケージへ簡単に追加できるようになりました。
Integration Services には、パッケージ全体をループさせる 2 種類のコンテナがあります。1 つは Foreach ループ コンテナ、もう 1 つは For ループ コンテナです。Foreach ループ コンテナは列挙子を使用してループを実行し、For ループ コンテナは、通常、変数式を使用します。このレッスンでは Foreach ループ コンテナを使用します。
パッケージで Foreach ループ コンテナを使用すれば、指定した列挙子の各メンバについて、制御フローを繰り返すことができます。Foreach ループ コンテナでは、次のものを列挙できます。
ADO レコードセット行とスキーマ情報
ファイル構造とディレクトリ構造
システム変数、パッケージ変数、ユーザー変数
SQL Server 管理オブジェクト (SMO)
このレッスンでは、レッスン 1 で作成した単純な ETL パッケージを修正し、Foreach ループ コンテナの機能を活用します。また、ユーザー定義のパッケージ変数を設定し、フォルダ内のすべてのフラット ファイルに対し、チュートリアル パッケージが反復処理を実行できるようにします。前のレッスンを完了していない場合は、チュートリアルに含まれている、レッスン 1 を完了した状態のパッケージをコピーすることもできます。
このレッスンでは、データ フローは変更せずに、制御フローのみを変更します。
重要 |
---|
このチュートリアルを行うには AdventureWorksDW サンプル データベースが必要です。AdventureWorksDW をインストール、配置する方法の詳細については、「SQL Server のサンプルとサンプル データベースのインストールに関する注意点」を参照してください。 |
このレッスンの作業
このレッスンの内容は次のとおりです。