全部产品
Search
文档中心

Data Transmission Service:Format data dalam antrian pesan

更新时间:Dec 14, 2025

Data Transmission Service (DTS) memungkinkan Anda memilih format penyimpanan untuk data yang disinkronkan atau dimigrasikan ke antrian pesan, seperti Kafka atau RocketMQ. Topik ini menjelaskan format data yang tersedia untuk membantu Anda mengurai data tersebut.

Format data

DTS memungkinkan Anda menyimpan data yang ditulis ke antrian pesan dalam format berikut:

  • DTS Avro: Format serialisasi data yang digunakan untuk mengonversi struktur data atau objek guna penyimpanan dan transmisi.

  • Shareplex Json: Format data yang digunakan ketika perangkat lunak replikasi data SharePlex membaca data dari database sumber dan menulisnya ke antrian pesan.

  • Canal Json: Format data yang digunakan ketika Canal mengurai log database inkremental dan mentransmisikan data inkremental tersebut ke antrian pesan.

DTS Avro

Anda dapat mengurai data berdasarkan definisi skema DTS Avro. Untuk informasi selengkapnya, lihat definisi skema DTS Avro dan contoh deserialisasi DTS Avro.

Catatan

Dalam format DTS Avro, pernyataan Data Definition Language (DDL) bertipe string.

Shareplex Json

Parameter

Parameter

Deskripsi

time

Waktu saat transaksi dikomit di database. Formatnya adalah yyyy-MM-ddTHH:mm:ssZ (UTC).

userid

ID pengguna yang mengkomit transaksi.

op

Tipe operasi data. Nilai yang valid: INSERT, UPDATE, DELETE, TRUNCATE, DROP COLUMN, UPDATE BEFORE, dan UPDATE AFTER.

scn

System Change Number (SCN). SCN mengidentifikasi versi transaksi yang dikomit database pada titik waktu tertentu. Setiap transaksi yang dikomit diberi SCN unik.

rowid

Nilai alamat yang relatif unik yang digunakan untuk menemukan catatan di database.

trans

ID transaksi.

seq

Nomor urut operasi dalam transaksi. Urutan dimulai dari 1.

size

Jumlah total operasi dalam transaksi.

table

Nama tabel.

idx

Indeks operasi dalam transaksi. Formatnya adalah seq/size. Misalnya, 1/11 menunjukkan bahwa ini adalah operasi pertama dalam transaksi yang berisi 11 operasi.

posttime

Waktu ketika transaksi dikomit ke database tujuan.

Contoh

Masukkan data

{
    "meta": {
        "time": "2017-06-16T14:24:34", 
        "userid": 84,                                    
        "op": "ins",                                   
          "scn": "14589063118712",                  
          "rowid": "AAATGpAAIAAItcIAAA",      
        "trans": "7.0.411499",                 
        "seq": 1,                                          
        "size": 11,                                         
        "table": "CL_BIZ1.MIO_LOG",       
          "idx": "1/11",                                       
        "posttime": "2017-06-16T14:33:52"
    },
    "data": {
        "MIO_LOG_ID": "32539737"
     }
}

Perbarui data

{
    "meta": {
        "time": "2017-06-16T15:38:13",
        "userid": 84,
        "op": "upd",                             
        "table": "CL_BIZ1.MIO_LOG"
        ….
    },
    "data": {                                          
        "CNTR_NO": "1171201606"
    },
    "key": {                                            
        "MIO_LOG_ID": "32537893",
        "PLNMIO_REC_ID": "31557806",
        "POL_CODE": null,
        "CNTR_TYPE": null,
        "CNTR_NO": "1171201606syui26"
    }
}

Hapus data

{
    "meta": {
        "time": "2017-06-16T15:51:35",
        "userid": 84,
        "op": "del",                      
     },
    "data": {                                    
        "MIO_LOG_ID": "32539739",
        "PLNMIO_REC_ID": "31557806",
        "POL_CODE": null,
        "CNTR_TYPE": null,
        "CG_NO": null
     }
}

Canal Json

Parameter

Parameter

Deskripsi

database

Nama database.

es

Waktu saat operasi dijalankan di database sumber. Ini adalah stempel waktu UNIX 13 digit dalam milidetik.

Catatan
  • Waktu eksekusi sebenarnya dalam satuan detik. Nilainya ditambahkan tiga angka nol di akhir untuk merepresentasikan milidetik.

  • Anda dapat menggunakan mesin pencari untuk menemukan konverter stempel waktu UNIX.

id

Nomor seri operasi.

Catatan

Nilai ini dihasilkan dari stempel waktu dan offset internal DTS. Nilai ini dapat membantu menentukan urutan operasi.

isDdl

Menentukan apakah operasi tersebut merupakan operasi DDL.

  • true: Benar.

  • false: Tidak.

mysqlType

Tipe data dari bidang.

Catatan

Informasi parameter seperti presisi tidak didukung.

old dan data

Data sebelum atau setelah perubahan.

Catatan

Untuk task sinkronisasi atau migrasi yang dibuat sebelum 20 Maret 2022, old menyimpan data setelah perubahan dan data menyimpan data sebelum perubahan. Secara default, old mencakup data dari semua kolom, bukan hanya kolom yang diubah. Untuk menyelaraskan dengan komunitas open source, untuk task yang dibuat atau dijalankan ulang pada atau setelah 20 Maret 2022, data menyimpan data setelah perubahan dan old menyimpan data sebelum perubahan.

pkNames

Nama kunci primary.

sql

Pernyataan SQL.

sqlType

Tipe bidang yang dikonversi. Nilainya sama dengan nilai dataTypeNumber. Untuk informasi selengkapnya, lihat Pemetaan antara tipe bidang dan nilai dataTypeNumber.

table

Nama tabel.

ts

Waktu saat operasi mulai ditulis ke database tujuan. Ini adalah stempel waktu UNIX 13 digit dalam milidetik.

Catatan

Anda dapat menggunakan mesin pencari untuk menemukan konverter stempel waktu UNIX.

type

Tipe operasi, seperti DELETE, UPDATE, atau INSERT.

Catatan

Selama fase task penuh, tipe ini tetap sebagai INIT.

gtid

Global Transaction Identifier (GTID). GTID bersifat unik secara global. Setiap transaksi berkorespondensi dengan satu GTID.

Contoh

Perbarui data

Catatan

Untuk task sinkronisasi atau migrasi yang dibuat sebelum 20 Maret 2022, ketika pernyataan DELETE dari tabel sumber disinkronkan atau dimigrasikan ke Kafka, old berisi data dan data bernilai null. Untuk menyelaraskan dengan komunitas open source, perilaku ini diubah untuk task yang dibuat atau dijalankan ulang pada atau setelah 20 Maret 2022. Untuk task tersebut, data berisi data dan old bernilai null.

Task sinkronisasi atau migrasi yang dibuat sebelum 20 Maret 2022

{
    "old": [
        {
            "shipping_type": "aaa"
        }
    ], 
    "database": "dbname", 
    "es": 1600161894000, 
    "id": 58, 
    "isDdl": false, 
    "mysqlType": {
        "id": "bigint", 
        "shipping_type": "varchar"
    }, 
    "pkNames": [
        "id"
    ], 
    "sql": "", 
    "sqlType": {
        "id": -5, 
        "shipping_type": 12
    }, 
    "table": "tablename", 
    "ts": 1600161894771, 
    "type": "DELETE"
}

Task sinkronisasi atau migrasi yang dibuat atau dijalankan ulang pada atau setelah 20 Maret 2022

{
    "data": [
        {
            "id": "500000287", 
            "shipping_type": null
        }
    ], 
    "database": "dbname", 
    "es": 1600161894000, 
    "id": 58, 
    "isDdl": false, 
    "mysqlType": {
        "id": "bigint", 
        "shipping_type": "varchar"
    }, 
    "pkNames": [
        "id"
    ], 
    "sql": "", 
    "sqlType": {
        "id": -5, 
        "shipping_type": 12
    }, 
    "table": "tablename", 
    "ts": 1600161894771, 
    "type": "DELETE"
}
            

Operasi DDL

{
    "database":"dbname", // Nama database untuk sinkronisasi atau migrasi.
    "es":1600161894000, // Waktu saat data dari database sumber ditulis ke log biner.
    "id":58, // Offset dalam cache DTS.
    "isDdl":true, // Menentukan apakah operasi DDL disinkronkan atau dimigrasikan.
    "sql":"eg:createxxx", // Pernyataan DDL dari log biner.
    "table":"tablename", // Nama tabel untuk sinkronisasi atau migrasi.
    "ts":1600161894771, // Waktu saat DTS menulis data ke tujuan.
    "type":"DDL"
}