Snowflake Data Cloud Connector > 部 III: Snowflake Data Cloud Connectorを使用したSQL ELT > マッピングタスクのSQL ELTの最適化 > 複数のターゲットに対するコンテキストベースの最適化
  

複数のターゲットに対するコンテキストベースの最適化

Snowflake Data Cloud接続を使用して複数のSnowflakeターゲットに書き込むように完全なSQL ELTの最適化を有効にするマッピングを設定した場合は、複数挿入で緩やかに変化する次元タイプ2マージシナリオの最適化コンテキストを指定できます。
[最適化コンテキストタイプ]は、タスクの[ランタイムオプション]タブで指定できます。指定した最適化コンテキストに基づいて、データ統合は、複数のターゲットから発行されたクエリを組み合わせてSQL ELTの最適化のための単一のクエリを構築し、タスクを最適化します。
マッピングで指定したターゲット操作に基づいて、タスクプロパティで以下の最適化モードを有効にできます。
複数挿入
Snowflakeソースから複数のSnowflakeターゲットにデータを挿入する場合は、このモードを有効にします。データ統合は、ターゲットごとに生成されたクエリを組み合わせて、単一のクエリを発行します。
SCDタイプ2マージ
2つのSnowflakeターゲットに書き込む場合は、このモードを有効にします。一方のターゲットを使用してデータを挿入し、もう一方のターゲットを使用してデータを更新します。データ統合は、両方のターゲットのクエリを組み合わせて、マージクエリを発行します。
デフォルトは[なし]です。

SCDタイプ2マージマッピングに関する説明

SCDタイプ2マージマッピングは、Snowflakeソースと同じSnowflakeテーブルに書き込む2つのターゲットトランスフォーメーションを使用します。一方のターゲットトランスフォーメーションはテーブルを更新し、もう一方のトランスフォーメーションはデータをSnowflakeテーブルに挿入します
次の図は、緩やかに変化するディメンションデータをSnowflakeターゲットテーブルに書き込むマッピングを示しています。
ルックアップと式トランスフォーメーションを追加して、ソースデータを既存のターゲットデータと比較します。データ統合で既存のターゲットと比較するルックアップ条件とソースカラムを入力します。
ターゲット内に一致するプライマリキーがない各ソース行に対して、式トランスフォーメーションにより新しい行が示されます。ターゲット中に一致するプライマリキーのあるソース行では、Expressionはユーザ定義のソースカラムとターゲットカラムを比較します。これらのカラムが一致しない場合には、Expressionは行に変更があったというフラグを設定します。その後、このマッピングは2つのデータフローに分かれます。
最初のデータフローは、ルータートランスフォーメーションを使用して、新しい行のみを式トランスフォーメーションに渡します。式トランスフォーメーションは、ターゲットに新しい行を挿入します。シーケンスジェネレータは各行のプライマリキーを作成します。式トランスフォーメーションは、キー間の増分値を1,000ずつ増やし、それぞれの新規行に対して0というバージョン番号を作成します。
2番目のデータフローでは、ルータートランスフォーメーションは変更された行のみを式トランスフォーメーションに渡します。式トランスフォーメーションは、変更された行をターゲットに挿入します。式トランスフォーメーションによって、キーおよびバージョン番号が1ずつ増加します。

制限

SCDタイプ2マージマッピングでは、フィルタ、ジョイナ、およびカスタムSQLクエリを使用できません。