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