レプリケーション・アセットのビジネス目標の選択 資産

Data Replication 資産 をセットアップする際に、サービスが複製ソースから複製ターゲットにデータを複製する方法を指定するために、ビジネス目標オプションを設定する必要があります。

ビジネス目標の設定

以下のいずれかのタイプのビジネス目標設定を使用するように、レプリケーション・ 資産 を構成できます。

コピー
コピー ビジネス目標は、指定されたスキーマおよび表をソース・データベースからターゲット・データベースに同期化するように複製 資産 を構成します。
変更ログ
変更ログ ビジネス目標は、変更ログと呼ばれるレコード内で、ソース・データベース・スキーマに対して行われる変更を文書化し、追跡するように複製 資産 を構成します。 さらに、レプリケーション・ 資産 は、ソース・データベースからターゲット・データベースにスキーマと表を同期します。 ソース・データベースに対する変更のコピーと変更ログがターゲット・データベースに送信されます。 変更ログの設定をカスタマイズする方法について詳しくは、 変更ログのビジネス目標の構成 を参照してください。 ログの変更 ビジネス目標を使用して、整合性を保持し、データの以前のバージョンとの互換性を保証し、さまざまな環境 (開発、テスト、実動など) 間でのスキーマ・マイグレーションを容易にします。
CDC Replication
CDC Replication ビジネス目標は、 Data Replication Access Server 接続を使用して、 Data Replication サービスをリモート CDC Replication デプロイメント に接続することにより、変更データ・キャプチャー (CDC) サブスクリプションを構成および操作するように、 資産 を構成します。

コピー・シナリオとログ変更シナリオの相違点

コピー・シナリオでは、ターゲット・データベースにソース表の同一コピーが維持されます。 変更ログ・シナリオは、ソース・データベースで実行される DML および DDL の両方の操作のフローの履歴を維持します。 「変更ログ」シナリオでは、変更の詳細が、ターゲット表の実際の変更とともに記録されます。

コピー・シナリオとログ変更シナリオの 3 つの重要な違いは、以下のとおりです。

主キー
変更ログ・シナリオでは、同じキーの複数のインスタンスが表示されることがあります。これは、コピー・シナリオでは 主キー であるものが、変更ログ・シナリオでは 単純索引 になることを意味します。
を参照してください。この例では、 CHANGE_LOG表の複数の行がソース表と同じ主キー値を持っています。
変更前イメージおよび変更後イメージの処理
挿入レコードには before がありません。したがって、ターゲット・データベースには before イメージの挿入操作がありません。
削除レコードには にはないため、ターゲット・データベースには イメージの挿入操作はありません。
更新レコードには、 変更前変更後 の両方のセグメントがあるため、ターゲット・データベースには両方のイメージが挿入されます。
変更ログで DML の変更前イメージと変更後イメージがどのように処理されるかを確認するには、以下の例を参照してください。
表の構造
「変更ログ」シナリオは、変更ログ・タイプに基づいて列または行の前後に拡張されます。
コピー・シナリオでは、ターゲット表の構造は元の表の構造と同じです。
以下の例を参照してください。ここでは、 CHANGE_LOG テーブルに、実行された操作に関する詳細情報が示されています。 コピー・シナリオの場合、ソース表とターゲット表の両方のデータと構造が同じです。

ビジネス目標に基づいた、互換性のあるソース・データベースとターゲット・データベース

選択したソースとターゲットが、選択したビジネス目標に使用できることを確認します。

表 1. レプリケーション・ソースとターゲット、およびそれらを使用できるビジネス目標
データストア コピー 変更ログ CDC Replication
Amazon RDS for PostgreSQL ソース ✓ ソース ✓
Apache Kafka ターゲット ✓ ターゲット ✓
IBMData Replication Access Server ソース ✓
ターゲット ✓
IBM Db2 ソース ✓ ソース ✓
IBM Db2 on Cloud ソース ✓
ターゲット ✓
ソース ✓
ターゲット ✓
IBM Db2 Warehouse ターゲット ✓ ターゲット ✓
IBM Db2 for z/OS ソース ✓ ソース ✓
IBM watsonx.data ターゲット ✓ ターゲット ✓
Oracle ソース ✓ ソース ✓
PostgreSQL ソース ✓ ソース ✓
Microsoft SQL Server ソース ✓ ソース ✓

コピーおよび変更ログのシナリオを使用したデータ複製の例を以下に示します。

以下の SQL 操作の delete_insert_pair 変更ログ・タイプを使用してデータを複製する場合:

INSERT INTO SOURCE_TABLE (ID, NAME) VALUES (1, 'abc');
INSERT INTO SOURCE_TABLE (ID, NAME) VALUES (2, 'xyz');
UPDATE SOURCE_TABLE SET NAME ='upd' WHERE ID = 1;
DELETE FROM SOURCE_TABLE WHERE ID = 2;

次の表はソース表で、 ID は主キーです。

表 1. サンプル・ソース表
ID 名前
1 upd

コピー・シナリオの場合、ターゲット表は次のようになります。

表 2. コピー・シナリオのターゲット表の例
ID 名前
1 upd

SQL クエリー を使用した変更ログ・シナリオの場合:

SELECT ID, NAME, OPTYPE, SEQUENCE, TRANSACTION_ID FROM TARGET_TABLE ORDER BY TRANSACTION_ID ASCENDING, SEQUENCE ASCENDING

ターゲット表は次のようになります。

表 3. 変更ログ・シナリオのターゲット表の例
ID 名前 OPTYPE SEQUENCE transaction_id
1 abc 挿入 1 001
2 XYZ 挿入 2 002
1 abc UpdateBefore 3 003
1 upd UpdateAfter 4 003
2 XYZ 削除 5 004

ターゲット表には、操作の履歴に関する情報を含む追加の列 (SEQUENCEOPTYPETRANSACTION_ID など) が含まれます。

変更ログ・シナリオで DML 操作を記録する方法の例を以下に示します。 ソース・データベースまたは表に対して実行される各 DML 操作は、選択された変更ログ列に基づく追加情報とともに、ターゲット変更ログ表に新規レコードとして適用されます。

例:

次の順序で SQL 操作を実行します。

INSERT INTO SOURCE_TABLE (ID, NAME) VALUES (1, 'abc');
INSERT INTO SOURCE_TABLE (ID, NAME) VALUES (2, 'xyz');
UPDATE SOURCE_TABLE SET NAME ='upd' WHERE ID = 1;
DELETE FROM SOURCE_TABLE WHERE ID = 2;

ターゲット表は次のようになります。

テーブル6。 DML 操作のターゲット表の例
ID 名前 OPTYPE SEQUENCE transaction_id
1 abc 挿入 1 001
2 XYZ 挿入 2 002
1 abc UpdateBefore 3 003
1 upd UpdateAfter 4 003
2 XYZ 削除 5 004