Share via


複数のテーブルの増分読み込みの実行

変更データ キャプチャによる増分読み込みの向上」の図は、1 つのみのテーブルの増分読み込みを実行する基本的なパッケージを示しています。ただし、1 つのテーブルの読み込みよりも、複数のテーブルの増分読み込みを実行する必要がある場合の方が一般的です。

複数のテーブルの増分読み込みを実行する場合の手順には、すべてのテーブルに対して一度実行する必要があるものと、ソース テーブルごとに繰り返し実行する必要があるものがあります。Integration Services でこれらの手順を実装する方法は複数あります。

  • 親パッケージと子パッケージを使用する。

  • 1 つのパッケージ内の複数のデータ フロー タスクを使用する。

注意注意

パッケージでの変更データ キャプチャの使用方法を紹介した完全なエンド ツー エンドのサンプルについては、Codeplex にある Change Data Capture for Specified Interval パッケージ サンプルおよび Change Data Capture since Last Request パッケージ サンプルを参照してください。

親パッケージと複数の子パッケージを使用した複数のテーブルの読み込み

親パッケージを使用して、一度実行するだけで済む手順を実行できます。子パッケージでは、ソース テーブルごとに実行する必要がある手順を実行します。

一度実行するだけで済む手順を実行する親パッケージを作成するには

  1. 親パッケージを作成します。

  2. 制御フローで、SQL 実行タスクまたは Integration Services 式を使用してエンドポイントを計算します。

    エンドポイントの計算方法の例については、「変更データの間隔の指定」を参照してください。

  3. 必要に応じて、選択した期間の変更データが準備できるまで実行を遅延させる For ループ コンテナーを使用します。

    このような For ループ コンテナーの例については、「変更データが準備できているかどうかの判断」を参照してください。

  4. 複数のパッケージ実行タスクを使用して、読み込むテーブルごとに子パッケージを実行します。親パッケージ変数の構成を使用して、親パッケージで計算したエンドポイントを各子パッケージに渡します。

    詳細については、「パッケージ実行タスク」および「子パッケージで親変数の値を使用する方法」を参照してください。

ソース テーブルごとに実行する必要がある手順を実行する子パッケージを作成するには

  1. ソース テーブルごとに子パッケージを作成します。

  2. 制御フローで、スクリプト タスクまたは SQL 実行タスクを使用して、変更をクエリで確認するために使用する SQL ステートメントを作成します。

    クエリの作成方法の例については、「変更データのクエリの準備」を参照してください。

  3. 子パッケージごとに 1 つのデータ フロー タスクを使用して、変更データを読み込んで変換先に適用します。次の手順に従って、データ フローを構成します。

    1. データ フローで、変換元コンポーネントを使用して、選択したエンドポイント内にある変更をクエリで変更テーブルから取得します。

      変更テーブルに対するクエリの実行方法の例については、「変更データの取得と理解」を参照してください。

    2. 条件分割変換を使用して、適切な処理のために挿入、更新、および削除を異なる出力に送信します。

      この変換を構成して出力先を分ける方法の例については、「挿入、更新、および削除の処理」を参照してください。

    3. 変換先コンポーネントを使用して、挿入を変換先に適用します。OLE DB コマンド変換とパラメーター化された UPDATE および DELETE ステートメントを使用して、更新と削除を変換先に適用します。

      この変換を使用して更新と削除を適用する方法の例については、「変換先への変更の適用」を参照してください。

1 つのパッケージ内の複数のデータ フロー タスクを使用した複数のテーブルの読み込み

読み込むソース テーブルごとに個別のデータ フロー タスクを用意している 1 つのパッケージを使用することもできます。

1 つのパッケージ内の複数のデータ フロー タスクを使用して複数のテーブルを読み込むには

  1. 1 つのパッケージを作成します。

  2. 制御フローで、SQL 実行タスクまたは Integration Services 式を使用してエンドポイントを計算します。

    エンドポイントの計算方法の例については、「変更データの間隔の指定」を参照してください。

  3. 必要に応じて、選択した間隔の変更データが準備できるまで実行を遅延させる For ループ コンテナーを使用します。

    このような For ループ コンテナーの例については、「変更データが準備できているかどうかの判断」を参照してください。

  4. スクリプト タスクまたは SQL 実行タスクを使用して、変更をクエリで確認するために使用する SQL ステートメントを作成します。

    クエリの作成方法の例については、「変更データのクエリの準備」を参照してください。

  5. 複数のデータ フロー タスクを使用して、各ソース テーブルから変更データを読み込んで変換先に適用します。次の手順に従って、各データ フロー タスクを構成します。

    1. 各データ フローで、変換元コンポーネントを使用して、選択したエンドポイント内にある変更をクエリで変更テーブルから取得します。

      変更テーブルに対するクエリの実行方法の例については、「変更データの取得と理解」を参照してください。

    2. 条件分割変換を使用して、適切な処理のために挿入、更新、および削除を異なる出力に送信します。

      この変換を構成して出力先を分ける方法の例については、「挿入、更新、および削除の処理」を参照してください。

    3. 変換先コンポーネントを使用して、挿入を変換先に適用します。OLE DB コマンド変換とパラメーター化された UPDATE および DELETE ステートメントを使用して、更新と削除を変換先に適用します。

      この変換を使用して更新と削除を適用する方法の例については、「変換先への変更の適用」を参照してください。

Integration Services のアイコン (小) 最新の Integration Services の入手

マイクロソフトが提供する最新のダウンロード、アーティクル、サンプル、ビデオ、およびコミュニティで選択されたソリューションについては、MSDN または TechNet の Integration Services のページを参照してください。

これらの更新が自動で通知されるようにするには、ページの RSS フィードを購読します。