動的ルックアップの例
ルックアップトランスフォーメーションを動的になるように設定するには、動的ルックアップキャッシュを使用します。
動的キャッシュは、ソーステーブルに大量のデータが含まれる場合や重複したプライマリキーが含まれる場合に便利です。
次の例では、ソーステーブルに重複したプライマリキーが含まれる場合に静的キャッシュではなく動的キャッシュを使用するメリットを示しています。
人事部からのデータを含む給与支払い名簿テーブルを更新するとします。給与支払い名簿テーブルには、次のデータが含まれています。ここで、IDはプライマリキーです。
ルックアップトランスフォーメーションでマッピングを作成し、ターゲットの給与支払い名簿テーブルとルックアップキャッシュを使用します。人事部のテーブルには重複キーが含まれることが予期されるため、キャッシュが動的になるように設定します。
マッピングで、人事部のテーブルをソースに指定します。ソーステーブルには、以下のデータが含まれます。
ID | 名前 | 場所 |
1 | Abhi | India |
2 | Alice | UK |
3 | James | Japan |
3 | James | USA |
マッピングタスクを作成して給与支払い名簿テーブルを更新します。マッピングタスクを開始すると、ターゲットテーブルの行を含むキャッシュファイルが作成されます。タスクが行を処理するときに最初の行に更新というフラグを設定し、キャッシュを更新します。3番目の行に挿入というフラグを設定し、キャッシュに行を挿入します。キャッシュに行が存在するため、4番目の行には更新というフラグを設定します。
静的キャッシュを使用して同じシナリオに従った場合、タスクは4番目の行に挿入というフラグを設定します。タスクが行を処理するときに更新されないため、キャッシュにJamesの行は含まれません。同じプライマリキーを持つ2つの行を処理することはできないため、ターゲットデータベースでエラーが発生します。