すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for OceanBase (Deprecated):データ形式

最終更新日:Feb 27, 2025

このトピックでは、シリアル化メソッドで使用されるデータ形式と、OceanBase Databaseからメッセージキューシステムにデータが送信される場合のデータ形式について説明します。

シリアル化メソッドで使用されるデータ形式

データ転送サービスを使用して、ソースから Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを同期する場合、シリアル化メソッドを使用して同期データの形式を制御できます。サポートされているシリアル化メソッドは、[デフォルト][canal][dataworks](V2.0)、[shareplex][defaultextendcolumntype][debezium][debeziumflatten][debeziumsmt]、および [avro] です。

説明
  • 現在、[debezium][debeziumflatten]、および [debeziumsmt] シリアル化メソッドは、OceanBase Database の MySQL テナントのみでサポートされています。

  • 現在、[avro] シリアル化メソッドは、OceanBase Database の MySQL テナントから Kafka インスタンスにデータを同期する場合にのみサポートされています。

デフォルトの JSON メッセージ形式

Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを同期する場合、デフォルトのシリアル化メソッドには次の JSON メッセージ形式が使用されます。

{
    "prevStruct": { // 変更前のイメージ。
        "col1": "val1" // 完全なキー値を含むキーと値のペア。
    },
    "postStruct": { // 変更後のイメージ。
        "col1": "val1" // 完全なキー値を含むキーと値のペア。
    },
    "allMetaData"{
        "checkpoint": "STRING", // 現在の同期チェックポイント。増分同期フェーズではターゲットチェックポイント(秒単位のタイムスタンプ)を指定し、完全同期フェーズではプライマリキーと値のペアを指定します。
        "record_primary_key": "STRING", // プライマリキー列の名前。プライマリキーに複数の列がある場合は、列名を \u0001 で区切ります。
        "record_primary_value": "STRING", // プライマリキー値。プライマリキーに複数の列がある場合は、列名を \u0001 で区切ります。
        "source_identity": "STRING", // ソースの識別子。値は、増分移行ではサブトピック、完全移行では無意味なシーケンス番号です。
        "dbType": "STRING", // データベースのタイプ。有効な値:MYSQL、ORACLE、OCEANBASE、OB_IN_ORACLE_MODE、DB2、OB_MYSQL、OB_ORACLE、および DB2_LUW。OCEANBASE、OB_IN_ORACLE_MODE、および DB2 は以前のバージョンのデータ転送サービスで使用されており、このバージョンのデータ転送サービスと互換性があることに注意してください。
        "storeDataSequence": "LONG", // このフィールドは、増分同期シナリオの source.json 構成ファイルで sequenceEnabled の値が true に設定されている場合にのみ使用できます。デフォルト値:true。このフィールドはソートに使用されます。シーケンスは、タイムスタンプ + シーケンス番号の形式で同期プロセス中に生成されます。シーケンス番号は増加し、5 桁を超えません。{タイムスタンプ}{増加するシーケンス番号}。
        "table_name": "STRING", // SQL 文を使用して変更されるテーブルの名前。
        "db": "STRING", // SQL 文を使用して変更されるデータベースの名前。OceanBase データベースの場合、データベース名にはテナント名が含まれます。形式は {テナント}.{データベース} です。
        "timestamp": "STRING", // データ変更のタイムスタンプ(秒単位)。増分同期の場合にのみ使用できます。
        "uniqueId": "STRING", // 増分移行でストアから渡される識別子としてのシーケンス番号。
        "ddlType": "STRING", // DDL 操作タイプ。
    },
    "recordType": "INSERT/UPDATE/DELETE/HEARTBEAT/DDL" // 変更タイプ。
}
  • DDL レコードに「ddl」という列名を持つキーのみが含まれている場合、値は DDL 文です。

  • 変更前イメージと変更後イメージ:

    • prevStruct:増分データの変更前イメージ。SQL 文が実行される前のデータです。

    • postStruct:増分データの変更後イメージ。SQL 文が実行された後のデータです。

    DELETE には prevStruct フィールドのみが含まれています。INSERTDDL には postStruct フィールドのみが含まれています。UPDATE には prevStructpostStruct の両方が含まれています。HEARTBEAT(定期的なハートビートメッセージを示す)には、postStruct または postStruct は含まれていません。

いくつかの例を以下に示します。

  • データ挿入の例(INSERT)

    {
        "allMetaData": {
            "checkpoint": null,
            "record_primary_key": "id1\u0001id2",
            "source_identity": null,
            "record_primary_value": "3\u0001129",
            "dbType": "OB_MYSQL",
            "table_name": "table_name",
            "db": "tenant.database",
            "timestamp": "1609344671"
        },
        "prevStruct": null,
        "recordType": "INSERT",
        "postStruct": {
            "col1": 3,
            "col2": 129,
            "col3": 2147483646,
            "col4": 9223372036854775806,
            "col5": 10223372036854775806,
            "col6": 1.2222,
            "col7": 9.999999,
            "col8": "hello world",
            "col9": "aGVsbG8gd29ybGQ=",
            "col10": 9.99999999999,
            "col11": "2020-11-25",
            "col12": "00:01:02",
            "col13": "2020-11-25 00:01:02",
            "col14": "1606233662.012345"
        }
    }
  • データ更新の例(UPDATE)

      {
        "allMetaData": {
            "checkpoint": null,
            "record_primary_key": "id1\u0001id2",
            "source_identity": null,
            "record_primary_value": "3\u0001129",
            "dbType": "OB_MYSQL",
            "table_name": "table_name",
            "db": "tenant.database",
            "timestamp": "1609344671"
        },
        "prevStruct": {
            "col1": 3,
            "col2": 129,
            "col3": 2147483646,
            "col4": 9223372036854775806,
            "col5": 10223372036854775806,
            "col6": 1.2222,
            "col7": 9.999999999999,
            "col8": "hello world",
            "col9": "aGVsbG8gd29ybGQ=",
            "col10": 9.999999999999,
            "col11": "2020-11-25",
            "col12": "00:01:02",
            "col13": "2020-11-25 00:01:02",
            "col14": "1606233662.012345",
        },
        "recordType": "UPDATE",
        "postStruct": {
            "col1": 3,
            "col2": 129,
            "col3": 2147483646,
            "col4": 9223372036854775806,
            "col5": 10223372036854775806,
            "col6": 1.2222,
            "col7": 9.999999999999,
            "col8": "hello world 2020",
            "col9": "aGVsbG8gd29ybGQ=",
            "col10": 9.999999999999,
            "col11": "2020-11-25",
            "col12": "00:01:02",
            "col13": "2020-11-25 00:01:02",
            "col14": "1606233662.012345"
        }
    }
  • データ削除の例(DELETE)

    {
        "allMetaData": {
            "checkpoint": null,
            "record_primary_key": "id1\u0001id2",
            "source_identity": null,
            "record_primary_value": "3\u0001129",
            "dbType": "OB_MYSQL",
            "table_name": "table_name",
            "db": "tenant.database",
            "timestamp": "1609344671"
        },
        "prevStruct": {
            "col1": 3,
            "col2": 129,
            "col3": 2147483646,
            "col4": 9223372036854775806,
            "col5": 10223372036854775806,
            "col16": 1.2222,
            "col7": 9.99999999,
            "col8": "hello world",
            "col9": "aGVsbG8gd29ybGQ=",
            "col10": 9.999999999,
            "col11": "2020-11-25",
            "col12": "00:01:02",
            "col13": "2020-11-25 00:01:02",
            "col14": "1606233662.012345"
        },
        "recordType": "DELETE",
        "postStruct": null
    }
  • DDL 操作の例

    alter table connector_test.all_mysql_type_test add column c90 varchar(30) default "test" comment 'test';
    {
        "prevStruct": null,
        "postStruct": {
            "ddl": "alter table connector_test.all_mysql_type_test add column c90 varchar(30) default \"test\" comment 'test'"
        },
        "allMetaData": {
            "checkpoint": "1671177057",
            "dbType": "OB_MYSQL",
            "storeDataSequence": null,
            "db": "connector_test",
            "timestamp": "1671177057",
            "uniqueId": null,
            "ddlType": "ALTER_TABLE",
            "record_primary_key": null,
            "source_identity": null,
            "record_primary_value": null,
            "table_name": "all_mysql_type_test"
        },
        "recordType": "DDL"
    }

Canal JSON メッセージ形式

Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを同期する場合、Canal シリアル化メソッドには次の JSON メッセージ形式が使用されます。

{
    "database": "STRING", // SQL 文を使用して変更されるデータベースの名前。OceanBase データベースの場合、データベース名のみを指定し、テナント名は省略できます。
    "sqlType": {
        "col1": "INTEGER" // 列のデータ型。詳細については、java.sql.Types をご参照ください。
    },
    "data": [ // 変更されたデータのキーと値のペア。このフィールドは 1 つのメッセージにのみ存在します。
        {
            "col1": "val1"
        }
    ],
    "pkNames": [ // プライマリキー列名。
        "col1"
    ],
    "old": [ // このフィールドは更新メッセージにのみ存在し、UPDATE 文で変更された列を示します。変更前の列の値を示します。
        {
            "col1": "val1"
        }
    ],
    "mysqlType": { // 列タイプの説明。
        "col": "STRING"
    },
    "type": "STRING", // 変更タイプ。
    "table": "STRING", // SQL 文を使用して変更されるテーブルの名前。
    "es": "LONG", // 変更時刻。ミリ秒単位のタイムスタンプです。
    "isDdl": "BOOLEAN", // 文が DDL 文かどうかを示します。
    "ts": "LONG", // データがターゲットに書き込まれたタイムスタンプ。
    "sql": "STRING" // 空です。
}

いくつかの例を以下に示します。

  • データ挿入の例(INSERT

    {
        "database": "database",
        "sqlType": {
            "col1": 93,
            "col2": 12,
            "col3": 6,
            "col4": 8,
            "col5": 5,
            "col6": 92,
            "col7": 4,
            "col8": -5,
            "col9": 2004,
            "col10": -6,
            "col11": 91,
            "col12": 3,
            "col13": -5,
            "col14": 93
        },
        "data": [
            {
                "col1": "2020-11-25 00:01:02",
                "col2": "hello world",
                "col3": 1.2222,
                "col4": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
                "col5": 129,
                "col6": "00:01:02",
                "col7": 2147483646,
                "col8": 9223372036854775806,
                "col9": "blob_data",
                "col10": 3,
                "col11": "2020-11-25",
                "col12": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
                "col13": 10223372036854775806,
                "col14": "2024-09-26 16:22:43"
            }
        ],
        "pkNames": [
            "col1",
            "col2"
        ],
        "old": null,
        "mysqlType": {
            "col1": "datetime",
            "col2": "varchar",
            "col3": "float",
            "col4": "double",
            "col5": "smallint",
            "col6": "time",
            "col7": "int",
            "col8": "int64",
            "col9": "blob",
            "col10": "tinyint",
            "col11": "date",
            "col12": "decimal",
            "col13": "bigint",
            "col14": "timestamp"
        },
        "type": "INSERT",
        "table": "table",
        "es": 1609344671000,
        "isDdl": false,
        "ts": 1618323429026,
        "sql": ""
    }
  • データ更新の例(UPDATE

    {
        "database": "database",
        "sqlType": {
            "col1": 93,
            "col2": 12,
            "col3": 6,
            "col4": 8,
            "col5": 5,
            "col6": 92,
            "col7": 4,
            "col8": -5,
            "col9": 2004,
            "col10": -6,
            "col11": 91,
            "col12": 3,
            "col13": -5,
            "col14": 93
        },
        "data": [
            {
                "col1": "2020-11-25 00:01:02",
                "col2": "hello world 2020",
                "col3": 1.2222,
                "col4": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
                "col5": 129,
                "col6": "00:01:02",
                "col7": 2147483646,
                "col8": 9223372036854775806,
                "col9": "blob_data",
                "col10": 3,
                "col11": "2020-11-25",
                "col12": 9.9999999999999990932662533724846199547048873403204569370722504933164788134100221702366853061102859515757830175849182282437843879255320076376983377547382986251285668341346193998972906543693727922885247662294865916794343554462214934807294361329416721666282173755541448015911563979127605489720142038977058035153396077150619905566488977026029171097782672502440171652303162739065260414400859795093549243326204240563556399326294969169893097546113480479123599469793840520008931786073120501015911771170469747151434449948712331126470735417237809953873785021982614510236627959137966047188125997672735652160240532789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
                "col13": 10223372036854775806,
                "col14": "2024-09-26 16:22:43"
            }
        ],
        "pkNames": [
            "col1",
            "col2"
        ],
        "old": [
            {
                "string": "hello world"
            }
        ],
        "mysqlType": {
            "col1": "datetime",
            "col2": "varchar",
            "col3": "float",
            "col4": "double",
            "col5": "smallint",
            "col6": "time",
            "col7": "int",
            "col8": "int64",
            "col9": "blob",
            "col10": "tinyint",
            "col11": "date",
            "col12": "decimal",
            "col13": "bigint",
            "col14": "timestamp"
        },
        "type": "UPDATE",
        "table": "table",
        "es": 1609344671000,
        "isDdl": false,
        "ts": 1618364572908,
        "sql": ""
    }
    
  • データ削除の例(DELETE

    {
        "database": "database",
        "sqlType": {
            "col1": 93,
            "col2": 12,
            "col3": 6,
            "col4": 8,
            "col5": 5,
            "col6": 92,
            "col7": 4,
            "col8": -5,
            "col9": 2004,
            "col10": -6,
            "col11": 91,
            "col12": 3,
            "col13": -5,
            "col14": 93
        },
        "data": [
            {
                "col1": "2020-11-25 00:01:02",
                "col2": "hello world",
                "col3": 1.2222,
                "col4": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
                "col5": 129,
                "col6": "00:01:02",
                "col7": 2147483646,
                "col8": 9223372036854775806,
                "col9": "blob_data",
                "col10": 3,
                "col11": "2020-11-25",
                "col12": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
                "col13": 10223372036854775806,
                "col14": "2024-09-26 16:22:43"
            }
        ],
        "pkNames": [
            "int8",
            "int16"
        ],
        "old": null,
        "mysqlType": {
            "col1": "datetime",
            "col2": "varchar",
            "col3": "float",
            "col4": "double",
            "col5": "smallint",
            "col6": "time",
            "col7": "int",
            "col8": "int64",
            "col9": "blob",
            "col10": "tinyint",
            "col11": "date",
            "col12": "decimal",
            "col13": "bigint",
            "col14": "timestamp"
        },
        "type": "DELETE",
        "table": "table",
        "es": 1609344671000,
        "isDdl": false,
        "ts": 1618364660278,
        "sql": ""
    }
    
  • DDL 操作の例

    alter table connector_test.all_mysql_type_test add column c90 varchar(30) default "test" comment 'test';
    {
        "database": "connector_test",
        "sqlType": null,
        "data": null,
        "pkNames": null,
        "old": null,
        "mysqlType": null,
        "type": "ALTER",
        "table": "all_mysql_type_test",
        "es": 1671177209000,
        "isDdl": true,
        "ts": 1671177291475,
        "sql": "alter table connector_test.all_mysql_type_test add column c90 varchar(30) default \"test\" comment 'test'"
    }
    

DataWorks JSON メッセージ形式

Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを同期する場合、DataWorks シリアル化メソッドには次の JSON メッセージ形式が使用されます。

{
    "version": "2.0", // プロトコルバージョン。DataWorks 2.0 のみがサポートされています。
    "schema": { // 変更されたメタデータ情報。列名と列タイプのみが指定されています。
        "source": { // 変更のソース。
            "dbType": "mysql", // ソースタイプ。
            "dbVersion": "5.7.35", // データベースバージョン。
            "dbName": "myDatabase", // データベース名。
            "schema": "mySchema", // スキーマ名。スキーマを持つシステムでは、このフィールドは必須です。
            "table": "tableName" // テーブル名。
        },
    "column": [ // 変更されたデータ列。このフィールドは、ターゲットテーブルで更新されたレコードの内容を示します。
            {
                "name": "id",
                "type": "bigint"
            },
            {
                "name": "name",
                "type": "varchar(20)"
            },
            {
                "name": "mydata",
                "type": "binary"
            },
            {
                "name": "ts",
                "type": "datetime"
            }
        ],
        "pk": [ // テーブルにプライマリキーまたはユニークキーがある場合、このフィールドは必須です。それ以外の場合はオプションです。
            "pkName1",
            "pkName2"
        ]
    },
    "payload": {
        "before": {
            "data": {
                "id": 111,
                "name": "scooter",
                "mydata": "[base64 string]", // バイナリタイプには Base64 エンコーディングが必要です。
                "ts": 1590315269000.123456789 // 整数部分が 13 桁、小数部分が 9 桁のタイムスタンプ。
            }
        },
        "after": {
            "data": {
                "id": 222,
                "name": "donald",
                "mydata": "[base64 string]",
                "ts": 1590315269000
            }
        },
        "op": "INSERT/UPDATE/DELETE/HEARTBEAT/TRANSACTION_BEGIN/TRANSACTION_END/CREATE/ALTER/ERASE/QUERY/TRUNCATE/RENAME/CINDEX/DINDEX/GTID/XACOMMIT/XAROLLBACK/...", // 操作タイプ。値は大文字です。
        "timestamp": {
            "eventTime": 1620457659000 // ソースデータベースでの変更時刻。13 桁のミリ秒単位のタイムスタンプです。
        },
        "ddl": {
            "text": "ADD COLUMN ..."
        },
        "scn": "増加するシステム変更番号(SCN)。"
    },
    "extend": { // 将来の拡張要件を満たすために使用できる拡張フィールド。拡張機能がない場合は、このフィールドを指定しないでおくことができます。
        "load_fm": "CIBS" // ソースシステム。例:「CIBS」。
    }
}

同期タスクのハートビートメッセージ:

{
    "version": "2.0", // プロトコルバージョン。
    "payload": {
        "timestamp": {
            "eventTime": 1620457659000 // ハートビートパケットのタイムスタンプ。
        },
        "op": "HEARTBEAT" // ハートビートパケットを示します。
    }
}

いくつかの例を以下に示します。

  • データ挿入の例(INSERT

    {
        "version": "2.0",
        "schema": {
            "source": {
                "dbType": "ob_mysql",
                "dbVersion": null,
                "dbName": "db",
                "schema": null,
                "table": "tab"
            },
            "column": [
                {
                    "name": "int8",
                    "type": "TINYINT"
                },
                {
                    "name": "int16",
                    "type": "SMALLINT"
                },
                {
                    "name": "int32",
                    "type": "INT"
                },
                {
                    "name": "int64",
                    "type": "INT64"
                },
                {
                    "name": "float32",
                    "type": "FLOAT"
                },
                {
                    "name": "float64",
                    "type": "DOUBLE"
                },
                {
                    "name": "bigInt",
                    "type": "BIGINT"
                },
                {
                    "name": "boolean",
                    "type": "BOOLEAN"
                },
                {
                    "name": "string",
                    "type": "VARCHAR"
                },
                {
                    "name": "bytes",
                    "type": "BLOB"
                },
                {
                    "name": "decimal",
                    "type": "DECIMAL"
                },
                {
                    "name": "localDate",
                    "type": "DATE"
                },
                {
                    "name": "localTime",
                    "type": "TIME"
                },
                {
                    "name": "localDateTime",
                    "type": "DATETIME"
                },
                {
                    "name": "timestamp",
                    "type": "TIMESTAMP"
                },
                {
                    "name": "zonedDateTime",
                    "type": "ZONED_DATETIME"
                },
                {
                    "name": "intervalDayToSecond",
                    "type": "INTERVAL_DAY_TO_SECOND"
                },
                {
                    "name": "intervalYearToMonth",
                    "type": "INTERVAL_YEAR_TO_MONTH"
                }
            ],
            "pk": [
                "pkName1",
                "pkName12"
            ]
        },
        "payload": {
            "before": null,
            "after": {
                "data": {
                    "col1": 3,
                    "col2": 129,
                    "col3": 2147483646,
                    "col4": 9223372036854775806,
                    "col5": 1.2222,
                    "col6": 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125,
                    "col7": 10223372036854775806,
                    "col8": 1,
                    "col9": "hello world",
                    "col10": "aGVsbG8gd29ybGQ=",
                    "col11": 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125,
                    "col12": "2020-11-25",
                    "col13": "00:01:02",
                    "col14": "2020-11-25 00:01:02",
                    "col15": "1606233662.012345",
                    "col16": "2020-11-25 00:01:02.012345 Asia/Shanghai",
                    "col17": "INTERVAL '3' DAY",
                    "col18": "INTERVAL '4' YEAR"
                }
            },
            "op": "INSERT",
            "timestamp": {
                "eventTime": 1647581000000,
                "systemTime": 1647581000795,
                "checkpointTime": 1647581000
            },
            "ddl": null,
            "scn": "null"
        },
        "extend": {
            "load_fm": "test"
        }
    }
  • データ更新の例(UPDATE

    {
        "version": "2.0",
        "schema": {
            "source": {
                "dbType": "ob_mysql",
                "dbVersion": null,
                "dbName": "db",
                "schema": null,
                "table": "tab"
            },
            "column": [
                {
                    "name": "int8",
                    "type": "TINYINT"
                },
                {
                    "name": "int16",
                    "type": "SMALLINT"
                },
                {
                    "name": "int32",
                    "type": "INT"
                },
                {
                    "name": "int64",
                    "type": "INT64"
                },
                {
                    "name": "float32",
                    "type": "FLOAT"
                },
                {
                    "name": "float64",
                    "type": "DOUBLE"
                },
                {
                    "name": "bigInt",
                    "type": "BIGINT"
                },
                {
                    "name": "boolean",
                    "type": "BOOLEAN"
                },
                {
                    "name": "string",
                    "type": "VARCHAR"
                },
                {
                    "name": "bytes",
                    "type": "BLOB"
                },
                {
                    "name": "decimal",
                    "type": "DECIMAL"
                },
                {
                    "name": "localDate",
                    "type": "DATE"
                },
                {
                    "name": "localTime",
                    "type": "TIME"
                },
                {
                    "name": "localDateTime",
                    "type": "DATETIME"
                },
                {
                    "name": "timestamp",
                    "type": "TIMESTAMP"
                },
                {
                    "name": "zonedDateTime",
                    "type": "ZONED_DATETIME"
                },
                {
                    "name": "intervalDayToSecond",
                    "type": "INTERVAL_DAY_TO_SECOND"
                },
                {
                    "name": "intervalYearToMonth",
                    "type": "INTERVAL_YEAR_TO_MONTH"
                }
            ],
            "pk": [
                "pkName1",
                "pkName2"
            ]
        },
        "payload": {
            "before": {
                "data": {
                    "col1": 3,
                    "col2": 129,
                    "col3": 2147483646,
                    "col4": 9223372036854775806,
                    "col5": 1.2222,
                    "col6": 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125,
                    "col7": 10223372036854775806,
                    "col8": 1,
                    "col9": "hello world",
                    "col10": "aGVsbG8gd29ybGQ=",
                    "col11": 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125,
                    "col12": "2020-11-25",
                    "col13": "00:01:02",
                    "col14": "2020-11-25 00:01:02",
                    "col15": "1606233662.012345",
                    "col16": "2020-11-25 00:01:02.012345 Asia/Shanghai",
                    "col17": "INTERVAL '3' DAY",
                    "col18": "INTERVAL '4' YEAR"
                }
            },
            "after": {
                "data": {
                    "col1": 3,
                    "col2": 129,
                    "col3": 2147483646,
                    "col4": 9223372036854775806,
                    "col5": 1.2222,
                    "col6": 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125,
                    "col7": 10223372036854775806,
                    "col8": 1,
                    "col9": "hello world 2020",
                    "col10": "aGVsbG8gd29ybGQ=",
                    "col11": 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125,
                    "col12": "2020-11-25",
                    "col13": "00:01:02",
                    "col14": "2020-11-25 00:01:02",
                    "col15": "1606233662.012345",
                    "col16": "2020-11-25 00:01:02.012345 Asia/Shanghai",
                    "col17": "INTERVAL '3' DAY",
                    "col18": "INTERVAL '4' YEAR"
                }
            },
            "op": "UPDATE",
            "timestamp": {
                "eventTime": 1647581038000,
                "systemTime": 1647581038674,
                "checkpointTime": 1647581038
            },
            "ddl": null,
            "scn": "null"
        },
        "extend": {
            "load_fm": "test"
        }
    }
  • データ削除の例(DELETE

    {
        "version": "2.0",
        "schema": {
            "source": {
                "dbType": "ob_mysql",
                "dbVersion": null,
                "dbName": "db",
                "schema": null,
                "table": "tab"
            },
            "column": [
                {
                    "name": "int8",
                    "type": "TINYINT"
                },
                {
                    "name": "int16",
                    "type": "SMALLINT"
                },
                {
                    "name": "int32",
                    "type": "INT"
                },
                {
                    "name": "int64",
                    "type": "INT64"
                },
                {
                    "name": "float32",
                    "type": "FLOAT"
                },
                {
                    "name": "float64",
                    "type": "DOUBLE"
                },
                {
                    "name": "bigInt",
                    "type": "BIGINT"
                },
                {
                    "name": "boolean",
                    "type": "BOOLEAN"
                },
                {
                    "name": "string",
                    "type": "VARCHAR"
                },
                {
                    "name": "bytes",
                    "type": "BLOB"
                },
                {
                    "name": "decimal",
                    "type": "DECIMAL"
                },
                {
                    "name": "localDate",
                    "type": "DATE"
                },
                {
                    "name": "localTime",
                    "type": "TIME"
                },
                {
                    "name": "localDateTime",
                    "type": "DATETIME"
                },
                {
                    "name": "timestamp",
                    "type": "TIMESTAMP"
                },
                {
                    "name": "zonedDateTime",
                    "type": "ZONED_DATETIME"
                },
                {
                    "name": "intervalDayToSecond",
                    "type": "INTERVAL_DAY_TO_SECOND"
                },
                {
                    "name": "intervalYearToMonth",
                    "type": "INTERVAL_YEAR_TO_MONTH"
                }
            ],
            "pk": [
                "pkName1",
                "pkName2"
            ]
        },
        "payload": {
            "before": {
                "data": {
                    "col1": 3,
                    "col2": 129,
                    "col3": 2147483646,
                    "col4": 9223372036854775806,
                    "col5": 1.2222,
                    "col6": 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125,
                    "col7": 10223372036854775806,
                    "col8": 1,
                    "col9": "hello world",
                    "col10": "aGVsbG8gd29ybGQ=",
                    "col11": 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125,
                    "col12": "2020-11-25",
                    "col13": "00:01:02",
                    "col14": "2020-11-25 00:01:020",
                    "col15": "1606233662.012345",
                    "col16": "2020-11-25 00:01:02.012345 Asia/Shanghai",
                    "col17": "INTERVAL '3' DAY",
                    "col18": "INTERVAL '4' YEAR"
                }
            },
            "after": null,
            "op": "DELETE",
            "timestamp": {
                "eventTime": 1647581072000,
                "systemTime": 1647581072976,
                "checkpointTime": 1647581072
            },
            "ddl": null,
            "scn": "null"
        },
        "extend": {
            "load_fm": "test"
        }
    }
  • DDL 操作の例

    alter table connector_test.all_mysql_type_test add column c90 varchar(30) default "test" comment 'test';
    {
        "version": "2.0",
        "schema": {
            "source": {
                "dbType": "ob_mysql",
                "dbVersion": null,
                "dbName": "connector_test",
                "schema": null,
                "table": "all_mysql_type_test"
            },
            "column": null,
            "pk": null
        },
        "payload": {
            "before": null,
            "after": null,
            "op": "ALTER",
            "timestamp": {
                "eventTime": 1671177209000,
                "systemTime": 1671177291485,
                "checkpointTime": 1671177200
            },
            "ddl": {
                "text": "alter table connector_test.all_mysql_type_test add column c90 varchar(30) default \"test\" comment 'test'"
            },
            "scn": "null"
        },
        "extend": {}
    }
    

SharePlex JSON メッセージ形式

Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを同期する場合、SharePlex シリアル化メソッドには次の JSON メッセージ形式が使用されます。

{
    "data": { // 変更されたデータのキーと値のペア。INSERT 文または DELETE 文が実行された場合、値は完全な値です。UPDATE 文が実行された場合、値は変更された値です。
        "col1": "val1"
    },
    "meta": {
        "time": "YYYY-MM-DDTHH:mm:ss", // 変更時刻。
        "op": "", // 変更タイプ。有効な値:ins、upd、del、および ddl。
        "posttime": "YYYY-MM-DDTHH:mm:ss", // データがターゲットに書き込まれた時刻。
        "idx": "STRING", // トランザクション内のメッセージのインデックス/インデックスメッセージの数。このフィールドは非推奨です。
        "size": NUMBER, // トランザクション内のメッセージの数。このフィールドは非推奨です。
        "seq": "STRING", // 並べ替えシーケンス。このフィールドは、source データベースで transactionEnabled が true に設定されている場合にのみ使用できます。
        "table": "STRING", // SQL 文を使用して変更された {データベース}.{テーブル} 形式のデータベース名とテーブル名。
        "rowid": "STRING", // {変更されたデータベース名とテーブル名}-{ \u0001 で区切られたプライマリキー値}。
        "trans": "STRING", // トランザクション ID。
        "scn": "STRING" // このフィールドは、増分同期シナリオの source.json 構成ファイルで sequenceEnabled の値が true に設定されている場合にのみ使用できます。デフォルト値:true。このフィールドはソートに使用されます。シーケンスは、タイムスタンプ + シーケンス番号の形式で同期プロセス中に生成されます。シーケンス番号は増加し、5 桁を超えません。
    },
    "key": { // 変更前のキー値。UPDATE 文による変更の場合にのみ使用できます。
    }
}

いくつかの例を以下に示します。

  • データ挿入の例(INSERT

    {
        "data": {
            "col1": "2020-11-25 00:01:02",
            "col2": "hello world",
            "col3": "INTERVAL '3' DAY",
            "col4": 1.2222,
            "col5": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col6": 129,
            "col7": "00:01:02",
            "col8": 1,
            "col9": "2020-11-25 00:01:02.012345 Asia/Shanghai",
            "col10": 2147483646,
            "col11": 9223372036854775806,
            "col12": "aGVsbG8gd29ybGQ=",
            "col13": "INTERVAL '4' YEAR",
            "col14": 3,
            "col15": "2020-11-25",
            "col16": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col17": 10223372036854775806,
            "col18": "1606233662.012345"
        },
        "meta": {
            "posttime": "2020-12-07T13:22:00",
            "op": "ins",
            "size": 10,
            "time": "2020-11-25T00:01:02",
            "idx": "1/10",
            "seq": 1,
            "table": "mock_database.mock_table",
            "rowid":"mock_database.mock_table-3129",
            "trans": "shareplex_transaction_id",
            "scn": "123456789"
        }
    }
    
  • データ更新の例(UPDATE

    {
        "data": {
            "string": "hello world 2020"
        },
        "meta": {
            "posttime": "2020-12-07T13:59:09",
            "op": "upd",
            "size": 10,
            "time": "2020-11-25T00:01:02",
            "idx": "1/10",
            "seq": 1,
            "table": "mock_database.mock_table",
            "rowid": "mock_database.mock_table-3\u0001129",
            "trans": "shareplex_transaction_id",
            "scn": "123456789"
        },
        "key": {
            "col1": "2020-11-25 00:01:02",
            "col2": "hello world",
            "col3": "INTERVAL '3' DAY",
            "col4": 1.2222,
            "col5": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col6": 129,
            "col7": "00:01:02",
            "col8": 1,
            "col9": "2020-11-25 00:01:02.012345 Asia/Shanghai",
            "col10": 2147483646,
            "col11": 9223372036854775806,
            "col12": "aGVsbG8gd29ybGQ=",
            "col13": "INTERVAL '4' YEAR",
            "col14": 3,
            "col15": "2020-11-25",
            "col16": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col17": 10223372036854775806,
            "col18": "1606233662.012345"
        }
    }
    
  • データ削除の例(DELETE

    {
        "data": {
            "col1": "2020-11-25 00:01:02",
            "col2": "hello world",
            "col3": "INTERVAL '3' DAY",
            "col4": 1.2222,
            "col5": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col6": 129,
            "col7": "00:01:02",
            "col8": 1,
            "col9": "2020-11-25 00:01:02.012345 Asia/Shanghai",
            "col10": 2147483646,
            "col11": 9223372036854775806,
            "col12": "aGVsbG8gd29ybGQ=",
            "col13": "INTERVAL '4' YEAR",
            "col14": 3,
            "col15": "2020-11-25",
            "col16": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col17": 10223372036854775806,
            "col18": "1606233662.012345"
        },
        "meta": {
            "posttime": "2020-12-07T13:34:10",
            "op": "del",
            "size": 10,
            "time": "2020-11-25T00:01:02",
            "idx": "1/10",
            "seq": 1,
            "table": "mock_database.mock_table",
            "rowid": "mock_database.mock_table-3\u0001129",
            "trans": "shareplex_transaction_id",
            "scn": "123456789"
        }
    }
  • DDL 操作の例

    alter table connector_test.all_mysql_type_test add column c90 varchar(30) default "test" comment 'test';
    {
        "data": {},
        "meta": {
            "posttime": "2022-12-16T15:54:51",
            "op": "ddl",
            "size": 0,
            "time": "2022-12-16T15:53:29",
            "idx": "0/0",
            "seq": 0,
            "table": "connector_test.all_mysql_type_test",
            "rowid": "connector_test.all_mysql_type_test-",
            "trans": null,
            "scn": "null"
        },
        "sql": {
            "ddl": "alter table connector_test.all_mysql_type_test add column c90 varchar(30) default \"test\" comment 'test'"
        }
    }

DefaultExtendColumnType JSON メッセージ形式

Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを同期する場合、DefaultExtendColumnType シリアル化メソッドには次の JSON メッセージ形式が使用されます。

DefaultExtendColumnType JSON メッセージは、__light_type フィールドを持つ Default 形式で作成されます。このフィールドは、フィールドのデータ型を指定します。

{
    "prevStruct": { // 変更前のイメージ。
    },
    "postStruct": { // 変更後のイメージ。
        "__light_type": {
            "col": { // フィールド名。
                "schemaType": "type" // 値のタイプ。
            }
        }
    },
    "allMetaData": {

    }
}

いくつかの例を以下に示します。

  • データ挿入の例(INSERT

    {
        "allMetaData": {
            "checkpoint": null,
            "record_primary_key": "id1\u0001id2",
            "source_identity": null,
            "record_primary_value": "3\u0001129",
            "dbType": "OB_MYSQL",
            "table_name": "table",
            "db": "database",
            "timestamp": "1609344671"
        },
        "prevStruct": null,
        "recordType": "INSERT",
        "postStruct": {
            "col1": 3,
            "col2": 129,
            "col3": 2147483646,
            "col4": 9223372036854775806,
            "col5": 10223372036854775806,
            "col6": 1.2222,
            "col7": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col8": "hello world",
            "col9": "aGVsbG8gd29ybGQ=",
            "col10": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col11": "2020-11-25",
            "col12": "00:01:02",
            "col13": "2020-11-25 00:01:02",
            "col14": "1606233662.012345",
            "__light_type": {
                "int8": {
                    "schemaType": "TINYINT"
                },
                "int16": {
                    "schemaType": "SMALLINT"
                },
                "int32": {
                    "schemaType": "INT"
                },
                "int64": {
                    "schemaType": "INT64"
                },
                "bigInt": {
                    "schemaType": "BIGINT"
                },
                "float32": {
                    "schemaType": "FLOAT"
                },
                "float64": {
                    "schemaType": "DOUBLE"
                },
                "string": {
                    "schemaType": "VARCHAR"
                },
                "bytes": {
                    "schemaType": "BLOB"
                },
                "decimal": {
                    "schemaType": "DECIMAL"
                },
                "localDate": {
                    "schemaType": "DATE"
                },
                "localTime": {
                    "schemaType": "TIME"
                },
                "localDateTime": {
                    "schemaType": "DATETIME"
                },
                "timestamp_in_long": {
                    "schemaType": "TIMESTAMP"
                }
            }
        }
    }
  • データ更新の例(UPDATE

    {
        "allMetaData": {
            "checkpoint": null,
            "record_primary_key": "id1\u0001id2",
            "source_identity": null,
            "record_primary_value": "3\u0001129",
            "dbType": "OB_MYSQL",
            "table_name": "table",
            "db": "database",
            "timestamp": "1609344671"
        },
        "prevStruct": {
            "col1": 3,
            "col2": 129,
            "col3": 2147483646,
            "col4": 9223372036854775806,
            "col5": 10223372036854775806,
            "col6": 1.2222,
            "col7": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col8": "hello world",
            "col9": "aGVsbG8gd29ybGQ=",
            "col10": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col11": "2020-11-25",
            "col12": "00:01:02",
            "col13": "2020-11-25 00:01:02",
            "col14": "1606233662.012345",
            "__light_type": {
                "int8": {
                    "schemaType": "TINYINT"
                },
                "int16": {
                    "schemaType": "SMALLINT"
                },
                "int32": {
                    "schemaType": "INT"
                },
                "int64": {
                    "schemaType": "INT64"
                },
                "bigInt": {
                    "schemaType": "BIGINT"
                },
                "float32": {
                    "schemaType": "FLOAT"
                },
                "float64": {
                    "schemaType": "DOUBLE"
                },
                "string": {
                    "schemaType": "VARCHAR"
                },
                "bytes": {
                    "schemaType": "BLOB"
                },
                "decimal": {
                    "schemaType": "DECIMAL"
                },
                "localDate": {
                    "schemaType": "DATE"
                },
                "localTime": {
                    "schemaType": "TIME"
                },
                "localDateTime": {
                    "schemaType": "DATETIME"
                },
                "timestamp_in_long": {
                    "schemaType": "TIMESTAMP"
                }
            }
        },
        "recordType": "UPDATE",
        "postStruct": {
            "col1": 3,
            "col2": 129,
            "col3": 2147483646,
            "col4": 9223372036854775806,
            "col5": 10223372036854775806,
            "col6": 1.2222,
            "col7": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col8": "hello world 2020",
            "col9": "aGVsbG8gd29ybGQ=",
            "col10": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col11": "2020-11-25",
            "col12": "00:01:02",
            "col13": "2020-11-25 00:01:02",
            "col14": "1606233662.012345",
            "__light_type": {
                "int8": {
                    "schemaType": "TINYINT"
                },
                "int16": {
                    "schemaType": "SMALLINT"
                },
                "int32": {
                    "schemaType": "INT"
                },
                "int64": {
                    "schemaType": "INT64"
                },
                "bigInt": {
                    "schemaType": "BIGINT"
                },
                "float32": {
                    "schemaType": "FLOAT"
                },
                "float64": {
                    "schemaType": "DOUBLE"
                },
                "string": {
                    "schemaType": "VARCHAR"
                },
                "bytes": {
                    "schemaType": "BLOB"
                },
                "decimal": {
                    "schemaType": "DECIMAL"
                },
                "localDate": {
                    "schemaType": "DATE"
                },
                "localTime": {
                    "schemaType": "TIME"
                },
                "localDateTime": {
                    "schemaType": "DATETIME"
                },
                "timestamp_in_long": {
                    "schemaType": "TIMESTAMP"
                }
            }
        }
    }
  • データ削除の例(DELETE

    {
        "allMetaData": {
            "checkpoint": null,
            "record_primary_key": "id1\u0001id2",
            "source_identity": null,
            "record_primary_value": "3\u0001129",
            "dbType": "OB_MYSQL",
            "table_name": "table",
            "db": "database",
            "timestamp": "1609344671"
        },
        "prevStruct": {
            "col1": 3,
            "col2": 129,
            "col3": 2147483646,
            "col4": 9223372036854775806,
            "col5": 10223372036854775806,
            "col6": 1.2222,
            "col7": 9.99999999999999909326625337248461995470488734032045693707225049331647881341002217023668530611028595157578301758491822824378438792553200763769833775473829862512856683413461939989729065436937279228852476622948659167943435544622149348072943613294167216662821737555414480159115639791276054897201420389770580351533960771506199055664889770260291710977826725024401716523031627390652604144008597950935492433262042405635563993262949691698930975461134804791235994697938405200089317860731205010159117711704697471514344499487123311264707354172378099538737850219826145102366279591379660471881259976727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col8": "hello world",
            "col9": "aGVsbG8gd29ybGQ=",
            "col10": 9.9999999999999990932662533724846199547048873403204569370722504933164788134100221702366853061102859515757830175849182282437843879255320076376983377547382986251285668341346193998972906543693727922885247662294865916794343554462214934807294361329416721666282173755541448015911563979127605489720142038977058035153396077150619905566488977026029171097782672502440171652303162739065260414400859795093549243326204240563556399326294969169893097546113480479123599469793840520008931786073120501015911771170469747151434449948712331126470735417237809953873785021982614510236627959137966047188125997672727356521602405329789906247763521525981391443887618575275588619928089116905061711975308467857756405810961619074331866883961080943542712559830853980002984826569445431232452392578125E-308,
            "col11": "2020-11-25",
            "col12": "00:01:02",
            "col13": "2020-11-25 00:01:02",
            "col14": "1606233662.012345",
            "__light_type": {
                "int8": {
                    "schemaType": "TINYINT"
                },
                "int16": {
                    "schemaType": "SMALLINT"
                },
                "int32": {
                    "schemaType": "INT"
                },
                "int64": {
                    "schemaType": "INT64"
                },
                "bigInt": {
                    "schemaType": "BIGINT"
                },
                "float32": {
                    "schemaType": "FLOAT"
                },
                "float64": {
                    "schemaType": "DOUBLE"
                },
                "string": {
                    "schemaType": "VARCHAR"
                },
                "bytes": {
                    "schemaType": "BLOB"
                },
                "decimal": {
                    "schemaType": "DECIMAL"
                },
                "localDate": {
                    "schemaType": "DATE"
                },
                "localTime": {
                    "schemaType": "TIME"
                },
                "localDateTime": {
                    "schemaType": "DATETIME"
                },
                "timestamp_in_long": {
                    "schemaType": "TIMESTAMP"
                }
            }
        },
        "recordType": "DELETE",
        "postStruct": null
    }
    
  • DDL 操作の例

    alter table connector_test.all_mysql_type_test add column c90 varchar(30) default "test" comment 'test';
    {
        "prevStruct": null,
        "postStruct": {
            "ddl": "alter table connector_test.all_mysql_type_test add column c90 varchar(30) default \"test\" comment 'test'",
            "__light_type": {
                "ddl": {
                    "schemaType": "VAR_STRING"
                }
            }
        },
        "allMetaData": {
            "checkpoint": "1671177200",
            "dbType": "OB_MYSQL",
            "storeDataSequence": null,
            "db": "connector_test",
            "timestamp": "1671177209",
            "uniqueId": null,
            "ddlType": "ALTER_TABLE",
            "record_primary_key": null,
            "source_identity": null,
            "record_primary_value": null,
            "table_name": "all_mysql_type_test"
        },
        "recordType": "DDL"
    }
    

Debezium JSON メッセージ形式

OceanBase Database の MySQL テナントから Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを同期する場合、Debezium シリアル化メソッドには次の JSON メッセージ形式が使用されます。通常、デフォルトでは payload フィールドの構造体のみが表示されます。

  • schema フィールドと payload フィールドが指定されている形式

    {
        "schema": { // payload フィールドを記述する構造体。デフォルトでは、この構造体は指定されていません。
            "type": "struct", // struct は、このフィールドに他の構造体が含まれていることを示します。
            "optional": false, // このフィールドが必須かどうかを指定します。
            "fields": [
                {
                    "type": "int64", // フィールドタイプ。
                    "optional": false, // このフィールドが必須かどうかを指定します。
                    "field": "ts_ms" // フィールド名。
                }
            ]
        },
        "payload": {
            "op": "c", // データ変更のタイプ。有効な値:c、u、d、および HEARTBEAT。c は完全挿入を示します。u は更新を示します。d は削除を示します。HEARTBEAT はハートビートメッセージを示します。
            "source": {
                "version": "", // OMS バージョン。
                "connector": "OB_MYSQL", // データソースのタイプ。
                "name": "OMS", // 固定値。OMS です。
                "ts_ms": 0, // データ変更のタイムスタンプ(秒単位)。増分同期の場合にのみ使用できます。
                "db": "test", // SQL 文を使用して変更されるデータベースの名前。OceanBase データベースの場合、データベース名のみを指定し、テナント名は省略できます。
                "table": "testTab", // SQL 文を使用して変更されるテーブルの名前。
                "pos": "553132@1668496109" // バイナリログファイル内のログの場所。[バイナリログファイル名]@[バイナリログファイル名オフセット] の形式です。
            },
            "before": { // 変更前のイメージ。
                "column": "value" // 完全なキー値を含むキーと値のペア。
            },
            "after": { // 変更後のイメージ。
                "column": "value" // 完全なキー値を含むキーと値のペア。
            },
            "ts_ms": 1668497367188 // データ処理のタイムスタンプ。
        }
    }
  • payload フィールドのみが指定されている形式

    {
        "payload": {
            "op": "c", // データ変更のタイプ。有効な値:c、u、d、および HEARTBEAT。c は完全挿入を示します。u は更新を示します。d は削除を示します。HEARTBEAT はハートビートメッセージを示します。
            "source": {
                "version": "", // OMS バージョン。
                "connector": "OB_MYSQL", // データソースのタイプ。
                "name": "OMS", // 固定値。OMS です。
                "ts_ms": 0, // データ変更のタイムスタンプ(秒単位)。増分同期の場合にのみ使用できます。
                "db": "test", // SQL 文を使用して変更されるデータベースの名前。OceanBase データベースの場合、データベース名のみを指定し、テナント名は省略できます。
                "table": "testTab", // SQL 文を使用して変更されるテーブルの名前。
                "pos": "553132@16684****" // バイナリログファイル内のログの場所。[バイナリログファイル名]@[バイナリログファイル名オフセット] の形式です。
            },
            "before": { // 変更前のイメージ。
                "column": "value" // 完全なキー値を含むキーと値のペア。
            },
            "after": { // 変更後のイメージ。
                "column": "value" // 完全なキー値を含むキーと値のペア。
            },
            "ts_ms": 1668497367188 // データ処理のタイムスタンプ。
        }
    }

いくつかの例を以下に示します。

  • データ挿入の例(INSERT

    {
        "schema": {
            "optional": false,
            "type": "STRUCT",
            "fields": [
                {
                    "field": "before",
                    "optional": false,
                    "type": "struct",
                    "fields": [
                        {
                            "field": "c01",
                            "optional": false,
                            "type": "int32"
                        },
                        {
                            "field": "c02",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c03",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c04",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c05",
                            "optional": false,
                            "type": "int16"
                        },
                        {
                            "field": "c06",
                            "optional": false,
                            "type": "int16"
                        },
                        {
                            "field": "c07",
                            "optional": false,
                            "type": "int32"
                        },
                        {
                            "field": "c08",
                            "optional": false,
                            "type": "int64"
                        },
                        {
                            "field": "c09",
                            "optional": false,
                            "type": "float64"
                        },
                        {
                            "field": "c10",
                            "optional": false,
                            "type": "float64"
                        },
                        {
                            "field": "c11",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c12",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c13",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c14",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c15",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c16",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c17",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c18",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c19",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c20",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c21",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c22",
                            "optional": false,
                            "type": "int32"
                        },
                        {
                            "field": "c23",
                            "optional": false,
                            "type": "int64"
                        },
                        {
                            "field": "c24",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c25",
                            "optional": false,
                            "type": "int32"
                        },
                        {
                            "field": "c26",
                            "optional": false,
                            "type": "bytes"
                        }
                    ]
                },
                {
                    "field": "after",
                    "optional": false,
                    "type": "struct",
                    "fields": [
                        {
                            "field": "c01",
                            "optional": false,
                            "type": "int32"
                        },
                        {
                            "field": "c02",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c03",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c04",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c05",
                            "optional": false,
                            "type": "int16"
                        },
                        {
                            "field": "c06",
                            "optional": false,
                            "type": "int16"
                        },
                        {
                            "field": "c07",
                            "optional": false,
                            "type": "int32"
                        },
                        {
                            "field": "c08",
                            "optional": false,
                            "type": "int64"
                        },
                        {
                            "field": "c09",
                            "optional": false,
                            "type": "float64"
                        },
                        {
                            "field": "c10",
                            "optional": false,
                            "type": "float64"
                        },
                        {
                            "field": "c11",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c12",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c13",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c14",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c15",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c16",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c17",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c18",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c19",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c20",
                            "optional": false,
                            "type": "bytes"
                        },
                        {
                            "field": "c21",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c22",
                            "optional": false,
                            "type": "int32"
                        },
                        {
                            "field": "c23",
                            "optional": false,
                            "type": "int64"
                        },
                        {
                            "field": "c24",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "c25",
                            "optional": false,
                            "type": "int32"
                        },
                        {
                            "field": "c26",
                            "optional": false,
                            "type": "bytes"
                        }
                    ]
                },
                {
                    "field": "source",
                    "optional": false,
                    "type": "struct",
                    "fields": [
                        {
                            "field": "version",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "connector",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "name",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "ts_ms",
                            "optional": false,
                            "type": "int64"
                        },
                        {
                            "field": "db",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "table",
                            "optional": false,
                            "type": "string"
                        },
                        {
                            "field": "server_id",
                            "optional": false,
                            "type": "int64"
                        },
                        {
                            "field": "pos",
                            "optional": false,
                            "type": "string"
                        }
                    ]
                },
                {
                    "field": "op",
                    "optional": false,
                    "type": "string"
                },
                {
                    "field": "ts_ms",
                    "optional": false,
                    "type": "int64"
                }
            ]
        },
        "payload": {
            "op": "c",
            "source": {
                "connector": "OB_MYSQL",
                "pos": "703223@166849****",
                "name": "OMS",
                "version": "",
                "ts_ms": 1668491621000,
                "db": "test",
                "table": "table_name"
            },
            "after": {
                "c11": "a",
                "c10": 2.4212412,
                "c13": "c",
                "c12": "b",
                "c15": "65",
                "c14": "d",
                "c17": "67",
                "c16": "f",
                "c19": "690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "c18": "68",
                "c20": "6A",
                "c22": 19311,
                "c21": "2022-11-15T05:12:11Z",
                "c02": "12312",
                "c24": 1668489131000,
                "c01": 2,
                "c23": 36060000000,
                "c04": "61",
                "c26": "6B",
                "c03": "1241.41000",
                "c25": 2022,
                "c06": 141,
                "c05": 11,
                "c08": 412124124,
                "c07": 4241,
                "c09": 2.11111
            },
            "ts_ms": 1668495423594
        }
    }
  • データ更新の例(UPDATE

    {
      "schema":{
        "optional":false,
        "type":"STRUCT",
        "fields":[
          {
            "field":"before",
            "optional":false,
            "type":"struct",
            "fields":[
              {
                "field":"c01",
                "optional":false,
                "type":"int32"
              },
              {
                "field":"c02",
                "optional":false,
                "type":"string"
              },
              {
                "field":"c03",
                "optional":false,
                "type":"string"
              },
              {
                "field":"c04",
                "optional":false,
                "type":"bytes"
              },
              {
                "field":"c05",
                "optional":false,
                "type":"int16"
              },
              {
                "field":"c06",
                "optional":false,
                "type":"int16"
              },
              {
                "field":"c07",
                "optional":false,
                "type":"int32"
              },
              {
                "field":"c08",
                "optional":false,
                "type":"int64"
              },
              {
                "field":"c09",
                "optional":false,
                "type":"float64"
              },
              {
                "field":"c10",
                "optional":false,
                "type":"float64"
              },
              {
                "field":"c11",
                "optional":false,
                "type":"string"
              },
              {
                "field":"c12",
                "optional":false,
                "type":"string"
              },
              {
                "field":"c13",
                "optional":false,
                "type":"string"
              },
              {
                "field":"c14",
                "optional":false,
                "type":"string"
              },
              {
                "field":"c15",
                "optional":false,
                "type":"bytes"
              },
              {
                "field":"c16",
                "optional":false,
                "type":"string"
              },
              {
                "field":"c17",
                "optional":false,
                "type":"bytes"
              },
                {
                "field":"c18",
                "optional":false,
                "type":"bytes"
              },
                {
                "field":"c19",
                "optional":false,
                "type":"bytes"
              },
                {
                "field":"c20",
                "optional":false,
                "type":"bytes"
              },
                {
                "field":"c21",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c22",
                "optional":false,
                "type":"int32"
              },
                {
                "field":"c23",
                "optional":false,
                "type":"int64"
              },
                {
                "field":"c24",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c25",
                "optional":false,
                "type":"int32"
              },
                {
                "field":"c26",
                "optional":false,
                "type":"bytes"
              }
                ]
              },
                {
                "field":"after",
                "optional":false,
                "type":"struct",
                "fields":[
                {
                "field":"c01",
                "optional":false,
                "type":"int32"
              },
                {
                "field":"c02",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c03",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c04",
                "optional":false,
                "type":"bytes"
              },
                {
                "field":"c05",
                "optional":false,
                "type":"int16"
              },
                {
                "field":"c06",
                "optional":false,
                "type":"int16"
              },
                {
                "field":"c07",
                "optional":false,
                "type":"int32"
              },
                {
                "field":"c08",
                "optional":false,
                "type":"int64"
              },
                {
                "field":"c09",
                "optional":false,
                "type":"float64"
              },
                {
                "field":"c10",
                "optional":false,
                "type":"float64"
              },
                {
                "field":"c11",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c12",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c13",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c14",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c15",
                "optional":false,
                "type":"bytes"
              },
                {
                "field":"c16",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c17",
                "optional":false,
                "type":"bytes"
              },
                {
                "field":"c18",
                "optional":false,
                "type":"bytes"
              },
                {
                "field":"c19",
                "optional":false,
                "type":"bytes"
              },
                {
                "field":"c20",
                "optional":false,
                "type":"bytes"
              },
                {
                "field":"c21",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c22",
                "optional":false,
                "type":"int32"
              },
                {
                "field":"c23",
                "optional":false,
                "type":"int64"
              },
                {
                "field":"c24",
                "optional":false,
                "type":"string"
              },
                {
                "field":"c25",
                "optional":false,
                "type":"int32"
              },
                {
                "field":"c26",
                "optional":false,
                "type":"bytes"
              }
                ]
              },
                {
                "field":"source",
                "optional":false,
                "type":"struct",
                "fields":[
                {
                "field":"version",
                "optional":false,
                "type":"string"
              },
                {
                "field":"connector",
                "optional":false,
                "type":"string"
              },
                {
                "field":"name",
                "optional":false,
                "type":"string"
              },
                {
                "field":"ts_ms",
                "optional":false,
                "type":"int64"
              },
                {
                "field":"db",
                "optional":false,
                "type":"string"
              },
                {
                "field":"table",
                "optional":false,
                "type":"string"
              },
                {
                "field":"server_id",
                "optional":false,
                "type":"int64"
              },
                {
                "field":"pos",
                "optional":false,
                "type":"string"
              }
                ]
              },
                {
                "field":"op",
                "optional":false,
                "type":"string"
              },
                {
                "field":"ts_ms",
                "optional":false,
                "type":"int64"
              }
                ]
              },
                "payload":{
                "op":"u",
                "before":{
                "c11":"a",
                "c10":2.4212412,
                "c13":"c",
                "c12":"b",
                "c15":"65",
                "c14":"d",
                "c17":"67",
                "c16":"f",
                "c19":"690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "c18":"68",
                "c20":"6A",
                "c22":19311,
                "c21":"2022-11-15T05:12:11Z",
                "c02":"12312",
                "c24":1668489131000,
                "c01":1,
                "c23":36060000000,
                "c04":"61",
                "c26":"6B",
                "c03":"1241.41000",
                "c25":2022,
                "c06":141,
                "c05":11,
                "c08":412124124,
                "c07":4241,
                "c09":2.11111
              },
                "source":{
                "connector":"OB_MYSQL",
                "pos":"436999@166849****",
                "name":"OMS",
                "version":"",
                "ts_ms":1668495861000,
                "db":"test",
                "table":"table_name"
              },
                "after":{
                "c11":"aa",
    "c10":2.4212412,
                "c13":"c",
                "c12":"b",
                "c15":"65",
                "c14":"d",
                "c17":"67",
                "c16":"f",
                "c19":"69000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "c18":"68",
                "c20":"6A",
                "c22":19311,
                "c21":"2022-11-15T05:12:11Z",
                "c02":"12312",
                "c24":1668489131000,
                "c01":1,
                "c23":36060000000,
                "c04":"61",
                "c26":"6B",
                "c03":"1241.41000",
                "c25":2022,
                "c06":141,
                "c05":11,
                "c08":412124124,
                "c07":4241,
                "c09":2.11111
              },
                "ts_ms":1668495906356
              }
              }
  • データ削除の例(DELETE

    {
        "schema":{
            "optional":false,
            "type":"STRUCT",
            "fields":[
                {
                    "field":"before",
                    "optional":false,
                    "type":"struct",
                    "fields":[
                        {
                            "field":"c01",
                            "optional":false,
                            "type":"int32"
                        },
                        {
                            "field":"c02",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c03",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c04",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c05",
                            "optional":false,
                            "type":"int16"
                        },
                        {
                            "field":"c06",
                            "optional":false,
                            "type":"int16"
                        },
                        {
                            "field":"c07",
                            "optional":false,
                            "type":"int32"
                        },
                        {
                            "field":"c08",
                            "optional":false,
                            "type":"int64"
                        },
                        {
                            "field":"c09",
                            "optional":false,
                            "type":"float64"
                        },
                        {
                            "field":"c10",
                            "optional":false,
                            "type":"float64"
                        },
                        {
                            "field":"c11",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c12",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c13",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c14",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c15",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c16",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c17",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c18",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c19",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c20",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c21",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c22",
                            "optional":false,
                            "type":"int32"
                        },
                        {
                            "field":"c23",
                            "optional":false,
                            "type":"int64"
                        },
                        {
                            "field":"c24",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c25",
                            "optional":false,
                            "type":"int32"
                        },
                        {
                            "field":"c26",
                            "optional":false,
                            "type":"bytes"
                        }
                    ]
                },
                {
                    "field":"after",
                    "optional":false,
                    "type":"struct",
                    "fields":[
                        {
                            "field":"c01",
                            "optional":false,
                            "type":"int32"
                        },
                        {
                            "field":"c02",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c03",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c04",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c05",
                            "optional":false,
                            "type":"int16"
                        },
                        {
                            "field":"c06",
                            "optional":false,
                            "type":"int16"
                        },
                        {
                            "field":"c07",
                            "optional":false,
                            "type":"int32"
                        },
                        {
                            "field":"c08",
                            "optional":false,
                            "type":"int64"
                        },
                        {
                            "field":"c09",
                            "optional":false,
                            "type":"float64"
                        },
                        {
                            "field":"c10",
                            "optional":false,
                            "type":"float64"
                        },
                        {
                            "field":"c11",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c12",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c13",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c14",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c15",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c16",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c17",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c18",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c19",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c20",
                            "optional":false,
                            "type":"bytes"
                        },
                        {
                            "field":"c21",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c22",
                            "optional":false,
                            "type":"int32"
                        },
                        {
                            "field":"c23",
                            "optional":false,
                            "type":"int64"
                        },
                        {
                            "field":"c24",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"c25",
                            "optional":false,
                            "type":"int32"
                        },
                        {
                            "field":"c26",
                            "optional":false,
                            "type":"bytes"
                        }
                    ]
                },
                {
                    "field":"source",
                    "optional":false,
                    "type":"struct",
                    "fields":[
                        {
                            "field":"version",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"connector",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"name",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"ts_ms",
                            "optional":false,
                            "type":"int64"
                        },
                        {
                            "field":"db",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"table",
                            "optional":false,
                            "type":"string"
                        },
                        {
                            "field":"server_id",
                            "optional":false,
                            "type":"int64"
                        },
                        {
                            "field":"pos",
                            "optional":false,
                            "type":"string"
                        }
                    ]
                },
                {
                    "field":"op",
                    "optional":false,
                    "type":"string"
                },
                {
                    "field":"ts_ms",
                    "optional":false,
                    "type":"int64"
                }
            ]
        },
        "payload":{
            "op":"d",
            "before":{
                "c11":"aa",
                "c10":2.4212412,
                "c13":"c",
                "c12":"b",
                "c15":"65",
                "c14":"d",
                "c17":"67",
                "c16":"f",
                "c19":"69000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
                "c18":"68",
                "c20":"6A",
                "c22":19311,
                "c21":"2022-11-15T05:12:11Z",
                "c02":"12312",
                "c24":1668489131000,
                "c01":1,
                "c23":36060000000,
                "c04":"61",
                "c26":"6B",
                "c03":"1241.41000",
                "c25":2022,
                "c06":141,
                "c05":11,
                "c08":412124124,
                "c07":4241,
                "c09":2.11111
            },
            "source":{
                "connector":"OB_MYSQL",
                "pos":"553132@1668****",
                "name":"OMS",
                "version":"",
                "ts_ms":1668496109000,
                "db":"test",
                "table":"table_name"
            },
            "ts_ms":1668496119717
        }
    }

DebeziumFlatten JSON メッセージ形式

OceanBase Database の MySQL テナントから Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを同期する場合、DebeziumFlatten シリアル化メソッドには次の JSON メッセージ形式が使用されます。Debezium シリアル化メソッドとは異なり、DebeziumFlatten シリアル化メソッドでは schema フィールドと payload フィールドは提供されません。

{
    "op": "c", // データ変更のタイプ。有効な値:c、u、d、および HEARTBEAT。c は完全挿入を示します。u は更新を示します。d は削除を示します。HEARTBEAT はハートビートメッセージを示します。
    "source": {
        "version": "", // OMS バージョン。
        "connector": "OB_MYSQL", // データソースのタイプ。
        "name": "OMS", // 固定値。OMS です。
        "ts_ms": 0, // データ変更のタイムスタンプ(秒単位)。増分同期の場合にのみ使用できます。
        "db": "test", // SQL 文を使用して変更されるデータベースの名前。OceanBase データベースの場合、データベース名のみを指定し、テナント名は省略できます。
        "table": "testTab", // SQL 文を使用して変更されるテーブルの名前。
        "pos": "553132@16684****" // バイナリログファイル内のログの場所。[バイナリログファイル名]@[バイナリログファイル名オフセット] の形式です。
    },
    "before": { // 変更前のイメージ。
        "column": "value" // 完全なキー値を含むキーと値のペア。
    },
    "after": { // 変更後のイメージ。
        "column": "value" // 完全なキー値を含むキーと値のペア。
    },
    "ts_ms": 1668497367188 // データ処理のタイムスタンプ。
}

いくつかの例を以下に示します。

  • データ挿入の例(INSERT

    {
       "op":"c",
       "source":{
           "connector":"OB_MYSQL",
           "pos":"703223@166849****",
           "name":"OMS",
           "version":"",
           "ts_ms":1668491621000,
           "db":"test",
           "table":"table_name"
           },
       "after":{
           "c11":"a",
           "c10":2.4212412,
           "c13":"c",
           "c12":"b",
           "c15":"65",
           "c14":"d",
           "c17":"67",
           "c16":"f",
           "c19":"690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
           "c18":"68",
           "c20":"6A",
           "c22":19311,
           "c21":"2022-11-15T05:12:11Z",
           "c02":"12312",
           "c24":1668489131000,
           "c01":2,
           "c23":36060000000,
           "c04":"61",
           "c26":"6B",
           "c03":"1241.41000",
           "c25":2022,
           "c06":141,
           "c05":11,
           "c08":412124124,
           "c07":4241,
           "c09":2.11111
           },
           "ts_ms":1668495423594
           }
  • データ更新の例(UPDATE

    {
        "op":"u",
        "before":{
            "c11":"a",
            "c10":2.4212412,
            "c13":"c",
            "c12":"b",
            "c15":"65",
            "c14":"d",
            "c17":"67",
            "c16":"f",
            "c19":"69000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "c18":"68",
            "c20":"6A",
            "c22":19311,
            "c21":"2022-11-15T05:12:11Z",
            "c02":"12312",
            "c24":1668489131000,
            "c01":1,
            "c23":36060000000,
            "c04":"61",
            "c26":"6B",
            "c03":"1241.41000",
            "c25":2022,
            "c06":141,
            "c05":11,
            "c08":412124124,
            "c07":4241,
            "c09":2.11111
            },
        "source":{
            "connector":"OB_MYSQL",
            "pos":"436999@166849****",
            "name":"OMS",
            "version":"",
            "ts_ms":1668495861000,
            "db":"test",
            "table":"table_name"
            },
        "after":{
            "c11":"aa",
            "c10":2.4212412,
            "c13":"c",
            "c12":"b",
            "c15":"65",
            "c14":"d",
            "c17":"67",
            "c16":"f",
            "c19":"69000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "c18":"68",
            "c20":"6A",
            "c22":19311,
            "c21":"2022-11-15T05:12:11Z",
            "c02":"12312",
            "c24":1668489131000,
            "c01":1,
            "c23":36060000000,
            "c04":"61",
            "c26":"6B",
            "c03":"1241.41000",
            "c25":2022,
            "c06":141,
            "c05":11,
            "c08":412124124,
            "c07":4241,
            "c09":2.11111
            },
            "ts_ms":1668495906356
            }
  • データ削除の例(DELETE

    {
        "op":"d",
        "before":{
            "c11":"aa",
            "c10":2.4212412,
            "c13":"c",
            "c12":"b",
            "c15":"65",
            "c14":"d",
            "c17":"67",
            "c16":"f",
            "c19":"69000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "c18":"68",
            "c20":"6A",
            "c22":19311,
            "c21":"2022-11-15T05:12:11Z",
            "c02":"12312",
            "c24":1668489131000,
            "c01":1,
            "c23":36060000000,
            "c04":"61",
            "c26":"6B",
            "c03":"1241.41000",
            "c25":2022,
            "c06":141,
            "c05":11,
            "c08":412124124,
            "c07":4241,
            "c09":2.11111
            },
        "source":{
            "connector":"OB_MYSQL",
            "pos":"553132@1668****",
            "name":"OMS",
            "version":"",
            "ts_ms":1668496109000,
            "db":"test",
            "table":"table_name"
        },
        "ts_ms":1668496119717
    }

DebeziumSmt JSON メッセージ形式

DebeziumSmt は、Debezium シリアル化メソッドによって提供される構成メソッドです。イベントフラット化シングルメッセージ変換(SMT)を使用して、単一のメッセージを変換および処理します。OceanBase Database の MySQL テナントから Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを同期する場合、DebeziumSmt シリアル化メソッドの JSON メッセージ形式の after セクションにある key:value ペアのみが表示されます。

次の例では、Debezium シリアル化メソッドを使用してデータを更新します。

{
    "op": "u",
    "source": {
        "connector": "OB_MYSQL",
        "name": "OMS"
    },
    "ts_ms": 1668496119717,
    "before": {
        "field1": "before_value1",
        "field2": "before_value2"
    },
    "after": {
        "field1": "after_value1",
        "field2": "after_value2"
    }
}

SMT は上記のメッセージの形式を簡略化します。DebeziumSmt シリアル化メソッドを使用した簡略化された JSON メッセージ形式は次のとおりです。

{
    "field1": "after_value1",
    "field2": "after_value2"
}

いくつかの例を以下に示します。

  • データ挿入の例(INSERT

    {
        "field1": "after_value1",
        "field2": "after_value2",
        "__deleted": "false"
    }
  • データ更新の例(UPDATE

    {
        "field1": "after_value1",
        "field2": "after_value2",
        "__deleted": "false"
    }
  • データ削除の例(DELETE

    {
        "field1": "after_value1",
        "field2": "after_value2",
        "__deleted": "true"
    }

Avro JSON メッセージ形式

OceanBase Database の MySQL テナントから Kafka インスタンスにデータを同期する場合、[avro] シリアル化メソッドには次の JSON メッセージ形式が使用されます。

  • 完全移行

    {
        "version": 1,
        "id": 0,
        "sourceTimestamp": 1702371565, // タイムスタンプセキュリティチェックポイント。
        "sourcePosition": "", // 完全移行の場合、sourcePosition フィールドと safeSourcePosition フィールドは空です。
        "safeSourcePosition": "",
        "sourceTxid": "",
        "source": {
            "sourceType": "MySQL", // 固定値。MySQL です。
            "version": "OBMySQL" // 固定値。OBMySQL です。
        },
        "operation": "INIT", // 完全移行の操作タイプは INIT です。
        "objectName": "test***",
        "processTimestamps": [
            1702371565238
        ], // 配信時間のみが提供されます。
        "tags": {
            "pk_uk_info": "{\"PRIMARY\":[\"id\"]}" // プライマリキータイプのみが提供されます。
        },
        "fields": [
            {
                "name": "id",
                "dataTypeNumber": 246
            }, // 各列のデータ型。
            {
                "name": "bid",
                "dataTypeNumber": 3
            },
            {
                "name": "name",
                "dataTypeNumber": 15
            },
            {
                "name": "address",
                "dataTypeNumber": 254
            }
        ],
        "beforeImages": null, // 完全移行前のイメージは空です。
        "afterImages": [ // 完全移行後のイメージ。INTEGER タイプまたは FLOAT タイプのフィールドの精度は常に 8 です。スケールは常に 64 です。
            {
                "value": "1",
                "precision": 1,
                "scale": 0
            },
            {
                "precision": 8,
                "value": "11"
            },
            {
                "charset": "utf8mb4",
                "value": {
                    "bytes": "yyy"
                }
            },
            null
        ]
    }
  • 増分 DML 操作同期

    • データ挿入の例(INSERT

      {
        "version": 1,
        "id": 170236922143600000,
        "sourceTimestamp": 1702369092,
        "sourcePosition": "1702369080", // OceanBase Database の MySQL テナントのチェックポイント。
        "safeSourcePosition": "1702369080", // OceanBase Database の MySQL テナントのチェックポイント。
        "sourceTxid": "",
        "source": {
          "sourceType": "MySQL",
          "version": "OBMySQL"
        },
        "operation": "INSERT",
        "objectName": "test***",
        "processTimestamps": [1702369221480],
        "tags": {
          "pk_uk_info": "{\"PRIMARY\":[\"id\"]}"
        },
        "fields": [
          {"name": "id", "dataTypeNumber": 8},
          {"name": "bid", "dataTypeNumber": 3},
          {"name": "name", "dataTypeNumber": 15}
        ],
        "beforeImages": null, // INSERT 操作前のイメージは空です。
        "afterImages": [
          {"precision": 8, "value": "2"},
          {"precision": 8, "value": "12"},
          {"charset": "utf8mb4", "value": {"bytes": "xxx"}
          }
        ]
      }
    • データ更新の例(UPDATE

      {
        "version": 1,
        "id": 170236975822100001,
        "sourceTimestamp": 1702369757,
        "sourcePosition": "1702369756",
        "safeSourcePosition": "1702369756",
        "sourceTxid": "",
        "source": {
          "sourceType": "MySQL",
          "version": "OBMySQL"
        },
        "operation": "UPDATE",
        "objectName": "test***",
        "processTimestamps": [1702369758237],
        "tags": {
          "pk_uk_info": "{\"PRIMARY\":[\"id\"]}"
        },
        "fields": [
          {"name": "id", "dataTypeNumber": 8},
          {"name": "bid", "dataTypeNumber": 3},
          {"name": "name", "dataTypeNumber": 15}
        ],
        "beforeImages": [ // UPDATE 操作前後のイメージ。
          {"precision": 8, "value": "3"},
          {"precision": 8, "value": "22"},
          {"charset": "utf8mb4", "value": {"bytes": "xxx"}}
        ],
        "afterImages": [
          {"precision": 8, "value": "3"},
          {"precision": 8, "value": "44"},
          {"charset": "utf8mb4", "value": {"bytes": "xxx"}}
        ]
      }
    • データ削除の例(DELETE

      {
        "version": 1,
        "id": 170236976527500000,
        "sourceTimestamp": 1702369764,
        "sourcePosition": "1702369763",
        "safeSourcePosition": "1702369763",
        "sourceTxid": "",
        "source": {
          "sourceType": "MySQL",
          "version": "OBMySQL"
        },
        "operation": "DELETE",
        "objectName": "test***",
        "processTimestamps": [1702369765287],
        "tags": {
          "pk_uk_info": "{\"PRIMARY\":[\"id\"]}"
        },
        "fields": [
          {"name": "id", "dataTypeNumber": 8},
          {"name": "bid", "dataTypeNumber": 3},
          {"name": "name", "dataTypeNumber": 15}
        ],
        "beforeImages": [
          {"precision": 8, "value": "3"},
          {"precision": 8, "value": "44"},
          {"charset": "utf8mb4", "value": {"bytes": "xxx"}}
        ],
        "afterImages": null // DELETE 操作後のイメージは空です。
      }
  • 増分 DDL 操作同期

    {
        "version": 1,
        "id": 170236979372400000,
        "sourceTimestamp": 1702369793,
        "sourcePosition": "1702369792",
        "safeSourcePosition": "1702369792",
        "sourceTxid": "",
        "source": {
            "sourceType": "MySQL",
            "version": "OBMySQL"
        },
        "operation": "DDL",
        "objectName": "test***",
        "processTimestamps": [
            1702369794543
        ],
        "tags": {},
        "fields": null, // 増分 DDL 操作同期の fields と beforeImages の値は null です。
        "beforeImages": null,
        "afterImages": "alter table multi_db_multi_tbl add column address char(20) default null" // STRING タイプの afterImages の値は DDL 文です。
    }

OceanBase Database からメッセージキューシステムにデータが送信される場合に使用されるデータ形式

OceanBase Database から Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを同期する場合は、次の点に注意してください。

  • 次の表は、シリアル化メソッドが [デフォルト][Canal][DataWorks](DataWorks 2.0 がサポートされています)、[SharePlex]、または DefaultExtendColumnType の場合の、OceanBase Database の MySQL テナントと Oracle テナントのデータ型マッピングについて説明しています。

    • OceanBase Database の MySQL テナント

      データ型

      マッピング先の型

      説明

      TINYINT

      SMALLINT

      MEDIUMINT

      INT

      INTEGER

      YEAR

      BOOL

      BOOLEAN

      Long

      64 桁未満の整数。

      1000 などの通常の値には、科学表記法は使用されません。

      BOOL 値または BOOLEAN 値の場合、true は 1 に変換され、false は 0 に変換されます。

      DECIMAL

      NUMERIC

      BigDecimal

      正確な10進数と 64 桁を超える整数。

      整数は、小数点または小数点以下の桁数なしで表示されます。

      10進数は、末尾のゼロを削除せずに、データベースインスタンスに渡されたデータに基づいて表示されます。科学表記法が使用されます。

      FLOAT

      DOUBLE

      Double

      浮動小数点数。

      有効桁数は、ソースデータ型に基づいて決定されます。ソースデータ型が FLOAT の場合、変換された値の有効桁数は 7 桁です。ソースデータ型が DOUBLE の場合、変換された値の有効桁数は 16 桁です。

      CHAR

      VARCHAR

      TINYTEXT

      TEXT

      MEDIUMTEXT

      LONGTEXT

      ENUM

      SET

      String

      文字列型。

      TINYBLOB

      BLOB

      MEDIUMBLOB

      LONGBLOB

      BINARY

      VARBINARY

      BIT

      Bytes

      バイト配列。デフォルトでは、バイト配列は Base64 エンコードされた文字列で表示されます。シリアル化メソッドが [Canal] の場合、バイト配列はデフォルトで Latin1 エンコードされた文字列で表示されます。この場合、BIT タイプのデータは数値に変換されます。

      説明

      固定長の BIT データ型の場合、ターゲットデータベースは増分同期のバイト配列を受信した後に上位ビットのゼロを削除しますが、完全同期の場合は削除しません。そのため、2 つのシナリオで表示される Base64 エンコードされた文字列が異なる場合があります。ただし、デコード後に得られる実際の結果は一貫しています。

      DATE

      Date

      YYYY-MM-DD 形式の DATE タイプ。値が無効な場合は、元の文字列が表示されます。

      TIME

      Time

      HH:mm:ss[.nnnnnnnnn] 形式の TIME タイプ。

      小数秒部分は最大 9 桁まで含めることができます。小数秒部分の末尾のゼロは表示されません。値が無効な場合は、元の文字列が表示されます。

      DATETIME

      DateTime

      タイムゾーンを含む YYYY-MM-DD HH:mm:ss[.nnnnnnnnn] [zoneId] 形式の DATETIME タイプ。

      小数秒部分は最大 9 桁まで含めることができます。小数秒部分の末尾のゼロは表示されません。値が無効な場合は、元の文字列が表示されます。

      TIMESTAMP

      Timestamp

      [秒単位のタイムスタンプ][.nnnnnnnnn] 形式の TIMESTAMP タイプ。シリアル化メソッドが [Canal] の場合、形式は YYYY-MM-DD HH:mm:ss[.nnnnnnnnn] です。

      小数秒部分は最大 9 桁まで含めることができます。小数秒部分の末尾のゼロは表示されません。時刻が無効な場合は、0000-00-00 00:00:00 が表示されます。

    • OceanBase Database の Oracle テナント

      データ型

      マッピング先の型

      説明

      INTEGER

      Long

      64 桁未満の整数。

      1000 などの通常の値には、科学表記法は使用されません。

      NUMBER

      FLOAT

      BigDecimal

      正確な10進数と 64 桁を超える整数。

      BINARY_FLOAT BINARY_DOUBLE

      Double

      浮動小数点数。

      有効桁数は、ソースデータ型に基づいて決定されます。ソースデータ型が FLOAT の場合、変換された値の有効桁数は 7 桁です。ソースデータ型が DOUBLE の場合、変換された値の有効桁数は 16 桁です。

      VARCHAR2

      NVARCHAR2

      INTERVAL YEAR TO MOTH

      INTERVAL DAY TO SECOND

      CLOB

      NCLOB

      ROWID

      UROWID

      String

      文字列型。

      BLOB

      BFILE

      RAW

      Bytes

      バイト配列。

      デフォルトでは、バイト配列は Base64 エンコードされた文字列で表示されます。

      DATE

      TIMESTAMP

      TIMESTAMP WITH TIME ZONE

      TIMESTAMP WITH LOCAL TIME ZONE

      DateTime

      タイムゾーンを含む YYYY-MM-DD HH:mm:ss[.nnnnnnnnn] [zoneId] 形式の DATETIME タイプ。

      小数秒部分は最大 9 桁まで含めることができます。小数秒部分の末尾のゼロは表示されません。値が無効な場合は、元の文字列が表示されます。

  • シリアル化メソッドが [Debezium] の場合、OceanBase Database の MySQL テナントのデータ型マッピングは次の表で説明されています。

    重要

    OceanBase Database の Oracle テナントから Kafka、DataHub(BLOB タイプ)、または RocketMQ インスタンスにデータを移行する場合、[Debezium] シリアル化メソッドはサポートされていません。

    データ型

    マッピング先の型

    説明

    BOOLEAN

    BOOL

    BOOLEAN

    有効な値:true および false。

    TINYINT

    SMALLINT

    MEDIUMINT

    INT/INTEGER

    BIGINT

    YEAR

    LONG

    -263 から 263 までの整数。

    BIGINT

    STRING

    データを完全に表示する文字列。

    FLOAT

    DOUBLE

    DOUBLE

    浮動小数点数。

    DECIMAL

    NUMERIC

    STRING

    データを完全に表示する文字列。10進数は、末尾のゼロを削除せずに、データベースインスタンスに渡されたデータに基づいて表示されます。科学表記法が使用されます。

    BIT

    BINARY

    VARBINARY

    TINYBLOB

    BLOB

    MEDIUMBLOB

    LONGBLOB

    BYTES

    Base16 エンコードされたバイト配列。

    CHAR

    VARCHAR

    TINYTEXT

    TEXT

    MEDIUMTEXT

    LONGTEXT

    ENUM

    SET

    STRING

    文字列型。

    TIMESTAMP

    STRING

    YYYY-MM-DDTHH:mm:ss[.nnnnnnnnn]Z 形式のタイムスタンプ文字列。タイムゾーンは UTC+0 です。

    DATE

    LONG

    1970 年 1 月 1 日からの日数。

    TIME

    LONG

    00:00:00 からのマイクロ秒単位の時間値。タイムゾーンは含まれません。

    DATETIME

    LONG

    1970-01-01 00:00:00 からのミリ秒単位の時間値。タイムゾーンは含まれません。

  • シリアル化メソッドが [Avro] の場合、OceanBase Database の MySQL テナントのデータ型マッピングは次の表で説明されています。

    重要

    [Avro] シリアル化メソッドは、OceanBase Database の MySQL テナントから Kafka インスタンスにデータを同期する場合にのみサポートされています。

    データ型

    マッピング先の型

    TINYINT

    BOOLEAN

    SMALLINT

    MEDIUMINT

    INT

    BIGINT

    BIT

    INTEGER

    FLOAT

    DOUBLE

    FLOAT

    DECIMAL

    NUMERIC

    DECIMAL

    VARCHAR

    CHAR

    TINYTEXT

    MEDIUMTEXT

    LONGTEXT

    TEXT

    CHARACTER

    BINARY

    VARBINARY

    TINYBLOB

    MEDIUMBLOB

    LONGBLOB

    BLOB

    BinaryObject

    TIMESTAMP

    TimestampObject

    説明

    完全移行と増分同期の両方で、TIMESTAMP タイプの値はタイムスタンプに変換されます。-9223372022400L は無効です。

    無効な時間を除き、Java の Instant.ofEpochSecond(ts, nanos) メソッドを呼び出して正しい時間を取得できます。

    DATE

    TIME

    DATETIME

    YEAR

    DATETIME

    JSON

    ENUM

    SET

    TextObject

    GEOMETRY

    TextGeometry

    説明

    現在、データ転送サービスは透過的なデータ転送に EWKT 形式を使用しています。したがって、マッピング先の型は TextGeometry です。