3.2.4. Debezium Db2 コネクターのスキーマ変更トピック
Debezium Db2 コネクターは、キャプチャーモードであるテーブルに対して、スキーマ変更の履歴をデータベース履歴トピックのそのテーブルに保存します。このトピックは内部コネクターの状態を反映するため、使用しないでください。アプリケーションがスキーマの変更を追跡する必要がある場合、パブリックスキーマ変更トピックがあります。スキーマ変更トピックの名前は、コネクター設定に指定された論理サーバー名と同じです。
コネクターがスキーマ変更トピックに出力するメッセージの形式は、初期の状態であり、通知なしに変更される可能性があります。
Debezium は、以下の場合にスキーマ変更トピックにメッセージを出力します。
- 新しいテーブルがキャプチャーモードになる。
- テーブルがキャプチャーモードから削除される。
- データベーススキーマの更新 中に、キャプチャーモードのテーブルのスキーマが変更される。
スキーマ変更トピックへのメッセージには、テーブルスキーマの論理表現が含まれます。以下に例を示します。
{
"schema": {
...
},
"payload": {
"source": {
"version": "1.5.4.Final",
"connector": "db2",
"name": "db2",
"ts_ms": 1588252618953,
"snapshot": "true",
"db": "testdb",
"schema": "DB2INST1",
"table": "CUSTOMERS",
"change_lsn": null,
"commit_lsn": "00000025:00000d98:00a2",
"event_serial_no": null
},
"databaseName": "TESTDB",
"schemaName": "DB2INST1",
"ddl": null,
"tableChanges": [
{
"type": "CREATE",
"id": "\"DB2INST1\".\"CUSTOMERS\"",
"table": {
"defaultCharsetName": null,
"primaryKeyColumnNames": [
"ID"
],
"columns": [
{
"name": "ID",
"jdbcType": 4,
"nativeType": null,
"typeName": "int identity",
"typeExpression": "int identity",
"charsetName": null,
"length": 10,
"scale": 0,
"position": 1,
"optional": false,
"autoIncremented": false,
"generated": false
},
{
"name": "FIRST_NAME",
"jdbcType": 12,
"nativeType": null,
"typeName": "varchar",
"typeExpression": "varchar",
"charsetName": null,
"length": 255,
"scale": null,
"position": 2,
"optional": false,
"autoIncremented": false,
"generated": false
},
{
"name": "LAST_NAME",
"jdbcType": 12,
"nativeType": null,
"typeName": "varchar",
"typeExpression": "varchar",
"charsetName": null,
"length": 255,
"scale": null,
"position": 3,
"optional": false,
"autoIncremented": false,
"generated": false
},
{
"name": "EMAIL",
"jdbcType": 12,
"nativeType": null,
"typeName": "varchar",
"typeExpression": "varchar",
"charsetName": null,
"length": 255,
"scale": null,
"position": 4,
"optional": false,
"autoIncremented": false,
"generated": false
}
]
}
}
]
}
}
| 項目 | フィールド名 | 説明 |
|---|---|---|
| 1 |
| 変更が含まれるデータベースとスキーマを識別します。 |
| 2 |
|
Db2 コネクターの場合は常に |
| 3 |
| DDL コマンドによって生成されるスキーマの変更が含まれる 1 つ以上の項目の配列。 |
| 4 |
| 変更の種類を説明します。値は以下のいずれかになります。
|
| 5 |
| 作成、変更、または破棄されたテーブルの完全な識別子。 |
| 6 |
| 適用された変更後のテーブルメタデータを表します。 |
| 7 |
| テーブルのプライマリーキーを構成する列のリスト。 |
| 8 |
| 変更されたテーブルの各列のメタデータ。 |
スキーマ変更トピックへのメッセージでは、キーはスキーマの変更が含まれるデータベースの名前です。以下の例では、payload フィールドにキーが含まれます。
{
"schema": {
"type": "struct",
"fields": [
{
"type": "string",
"optional": false,
"field": "databaseName"
}
],
"optional": false,
"name": "io.debezium.connector.db2.SchemaChangeKey"
},
"payload": {
"databaseName": "TESTDB"
}
}