すべてのソーステーブル変更操作の監査履歴のターゲットテーブルへの適用
Snowflake、Google BigQuery、およびOracleターゲットを持つアプリケーション取り込みとレプリケーションの増分ロードタスク、および初期ロードと増分ロードの組み合わせタスクを設定して、ソーステーブルに対して実行されたすべてのDML変更操作の監査証跡をターゲットに書き込むことができます。ソーステーブルの各DML変更の行が、選択した監査カラムとともに、生成されたターゲットテーブルに書き込まれます。監査カラムには、DML操作タイプ、時刻、所有者、トランザクションID、生成された昇順シーケンス番号、前のイメージなどの変更に関するメタデータが含まれています。
タスクを定義するときに、[ターゲット]ページの[適用モード]フィールドで[監査]を選択します。[適用モード]フィールドは、新しいタスクまたはデプロイされていないタスクで使用できます。
追加する監査メタデータカラムを指定するには、[ターゲット]ページの[詳細]の下にある次のチェックボックスを1つ以上選択します:
- •最終レプリケート時刻を追加。ターゲットテーブルでレコードが挿入または最後に更新された時点のタイムスタンプを記録するカラムを追加します。初期ロードの場合、ロードされたすべてのレコードのタイムスタンプは同じですが、Superpipeオプションを使用するSnowflakeターゲットに限り、秒または分がわずかに異なる可能性があります。増分ロード、および初期ロードと増分ロードの組み合わせの場合、このカラムには、ターゲットに適用された最後のDML操作のタイムスタンプが記録されます。
- •操作の追加 <metadata_type>。DML操作タイプ、時刻、所有者、トランザクションID、生成された昇順シーケンス番号など、変更操作のメタデータを含むカラムが追加されます。カラムには、データがターゲットテーブルにロードされるときに入力されます。
- •前のイメージを追加。更新の操作前のイメージデータを含む_OLDカラムが追加されます。テーブルの以前のカラムの値と新しいカラムの値を比較できます。
- •メタデータカラムのプレフィックス。追加された監査カラムの名前にプレフィックスを追加して、他のテーブルカラムと区別できるようにします。デフォルトはINFA_です。
これらのフィールドはオプションです。[操作タイプの追加]チェックボックスのみデフォルトで選択されており、次のDML操作タイプを示すカラムが追加されます: D(削除)、またはU(更新)。
タスクに関連付けられたジョブを初めて実行すると、ジョブは、選択した監査メタデータカラムを含むターゲットテーブルを生成します。ターゲットテーブルにインデックス以外の制約が存在しないことを確認します。
SnowflakeターゲットやDatabricksターゲットなどの[論理削除]モードをサポートしているターゲットの場合は、論理削除として処理されたそれぞれの削除操作に対して、INFA_OPERATION_TYPEカラムに操作タイプ「D」と表示され、選択した他のメタデータカラムに値が書き込まれます。ただし、更新操作と挿入操作では、INFA_OPERATION_TYPEカラムと選択されている他のすべてのメタデータカラムはNULLです。
監査モードの例
たとえば、ソーステーブルに対して次のDML変更操作が次の順序で発生するとします。
Insert into tableA pkey = 1
Update tableA where pkey=1
Update tableA where pkey=1
Delete from tableA where pkey = 1
次のすべての行がターゲットテーブルに表示され、すべてのソースDML変更の監査証跡が提供されます。
opType=I, pkey=1….
opType=E, pkey=1...
opType=E, pkey=1...
opType=D, pkey=1...
この例では、選択されている監査カラムはopTypeのみです。
タスクの適用モードが[標準]の場合、最後のDML操作は削除であり、以前の変更が上書きされるため、これらの行はターゲットテーブルに表示されません。
注: 初期ロードと増分ロードの組み合わせジョブで、初期アンロードフェーズ中に増分挿入変更レコードをキャプチャした場合、ジョブは同じ行に対して削除を実行して、初期アンロードで取得された可能性のある重複を削除します。この意図的に作成されたアクティビティは、監査適用モードで反映されます。