レプリケーション・アセットのビジネス目標の選択 資産
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テーブルに、実行された操作に関する詳細情報が示されています。 コピー・シナリオの場合、ソース表とターゲット表の両方のデータと構造が同じです。
ビジネス目標に基づいた、互換性のあるソース・データベースとターゲット・データベース
選択したソースとターゲットが、選択したビジネス目標に使用できることを確認します。
| データストア | コピー | 変更ログ | 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 は主キーです。
| ID | 名前 |
|---|---|
| 1 | upd |
コピー・シナリオの場合、ターゲット表は次のようになります。
| ID | 名前 |
|---|---|
| 1 | upd |
SQL クエリー を使用した変更ログ・シナリオの場合:
SELECT ID, NAME, OPTYPE, SEQUENCE, TRANSACTION_ID FROM TARGET_TABLE ORDER BY TRANSACTION_ID ASCENDING, SEQUENCE ASCENDING
ターゲット表は次のようになります。
| 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 |
ターゲット表には、操作の履歴に関する情報を含む追加の列 (SEQUENCE 、 OPTYPE 、 TRANSACTION_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;
ターゲット表は次のようになります。
| 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 |