全部产品
Search
文档中心

Lindorm:Format data

更新时间:Jun 24, 2025

Topik ini menjelaskan format data dari catatan operasi yang dihasilkan oleh Lindorm setelah data dalam tabel yang berlangganan dimasukkan, diperbarui, atau dihapus. Topik ini juga menyediakan data sampel untuk setiap jenis operasi. Format data default adalah Debezium Format V2.0. Anda dapat mengonfigurasi klien konsumen untuk mengonsumsi data sesuai dengan format tersebut.

Deskripsi format data

Kode sampel berikut menunjukkan contoh format data. Tabel berikut menjelaskan bidang dalam kode sampel.

{ 
  "payload": { 
    "op": "u", 
    "ts_ms": 1465491411815, 
    "before": { 
      "id": 1004,
      "name": "Jane"
    },
    "after": { 
      "id": 1004,
      "name": "Anne"
    },
    "source": { 
      "version": "v1.0",
      "db": "ld-xxxx",
      "namespace": "default",
      "table": "customers",
      "ts_ms": 1465491411807
    }
  },
  "schema": { 
  "type": "struct",
  "fields": [
     {
        "type": "string",
        "optional": false,
        "field": "op"
   }, {
        "type": "int64",
        "optional": false,
        "field": "ts_ms"
   }, {
        "type": "struct",
        "fields": [
          {
            "type": "int32",
            "optional": false,
            "field": "id"
     }, {
            "type": "string",
            "optional": false,
            "field": "name"
          }
        ],
        "optional": true,
        "field": "before"
   }, {
        "type": "struct",
        "fields": [
          {
            "type": "int32",
            "optional": false,
            "field": "id"
     }, {
            "type": "string",
            "optional": false,
            "field": "name"
     }
        ],
        "optional": true,
        "field": "after"
   }, {
        "type": "struct",
        "fields": [
          {
            "type": "string",
            "optional": false,
            "field": "version"
         }, {
            "type": "string",
            "optional": false,
            "field": "db"
     }, {
            "type": "string",
            "optional": false,
            "field": "namespace"
     }, {
            "type": "string",
            "optional": false,
            "field": "table"
     }, {
            "type": "int64",
            "optional": false,
            "field": "ts_ms"
     }
        ],
        "optional": false,
        "field": "source"
   }
    ],
  "optional": false
 }
}

Nama bidang

Deskripsi

payload.op

  • Nilai c menunjukkan bahwa data dimasukkan.

  • Nilai u menunjukkan bahwa data diperbarui.

  • Nilai d menunjukkan bahwa data dihapus.

  • Nilai r menunjukkan bahwa data lengkap diekspor. Nilai ini tidak tersedia.

payload.ts_ms

Timestamp UNIX saat data ditulis ke Kafka.

payload.before

Data yang disimpan di baris yang sesuai sebelum operasi penyisipan, pembaruan, atau penghapusan dilakukan.

payload.after

Data terbaru yang disimpan di baris yang sesuai setelah operasi penyisipan, pembaruan, atau penghapusan dilakukan.

payload.source

Informasi tambahan tentang operasi.

  • version: nomor versi database Lindorm.

  • db: ID instance Lindorm sumber.

  • namespace: namespace tempat tabel milik.

  • table: nama tabel database Lindorm.

  • ts_ms: waktu ketika data di tabel database Lindorm dimasukkan, diperbarui, atau dihapus.

schema

Bidang schema dibuat secara otomatis berdasarkan payload data yang akan dikonsumsi. Nilai bidang schema berada dalam format JSON. Bidang schema digunakan untuk mendeskripsikan bidang data yang akan dikonsumsi, termasuk tipe data dari setiap bidang. Secara default, setiap catatan operasi mencakup bidang schema. Isi bidang schema berada dalam struktur rekursif.

  • field: menunjukkan nama bidang.

  • type: menunjukkan tipe data bidang.

  • name: menunjukkan deskripsi skema.

  • fields: berisi bidang bersarang yang disimpan dalam urutan rekursif.

  • optional: menunjukkan apakah bidang bersifat opsional.

null

Format data catatan operasi dalam tabel HBase sama dengan tabel SQL. Namun, tabel HBase dan tabel SQL memiliki perbedaan struktural berikut:

  • Tabel HBase menyimpan data biner mentah di database. Data yang dikonsumsi menggunakan fitur pelacakan perubahan data adalah string yang dikodekan dalam Base64.

  • Tabel HBase menggunakan keluarga kolom. Oleh karena itu, nama kolom kolom non-kunci utama berada dalam format keluarga kolom_nama kolom. Nama kolom kunci utama tetap menjadi ROW.

Data sampel

SQL

Buat tabel dengan skema berikut di database Lindorm Anda:

CREATE TABLE customers (id VARCHAR,first_name VARCHAR,last_name VARCHAR, PRIMARY KEY(id));
  • Data sampel untuk catatan penyisipan data

    {
      "schema": {}, 
      "payload": { 
        "op": "c", 
        "ts_ms": 1465491411815, 
        "before": null, 
        "after": { 
          "id": "1004",
          "first_name": "Anne",
          "last_name": "Kretchmar"
        },
        "source": { 
          "version": "v1.0",
          "db": "ld-xxxx",
          "namespace": "default",
          "table": "customers",
          "ts_ms": 1465491411807
        }
      }
    }
  • Data sampel untuk catatan pembaruan data

    {
      "schema": {},
      "payload": { 
        "op": "u", 
        "ts_ms": 1465491411815,
        "before": {
          "id": "1004",
          "first_name": "Anne Marie",
          "last_name": "Kretchmar"
        }, 
        "after": {
          "id": "1004",
          "first_name": "Anne",
          "last_name": "Kretchmar"
        },
        "source": {
          "version": "v1.0",
          "db": "ld-xxxx",
          "namespace": "default",
          "table": "customers",
          "ts_ms": 1465491411807
        }
      }
    }
  • Data sampel untuk catatan penghapusan baris

    {
      "schema": {},
      "payload": { 
        "op": "d", 
        "ts_ms": 1465491411815,
        "before": { 
          "id": "1004",
          "first_name": "Anne Marie",
          "last_name": "Kretchmar"
        }, 
        "after": null,
        "source": {
          "version": "v1.0",
          "db": "ld-xxxx",
          "namespace": "default",
          "table": "customers",
          "ts_ms": 1465491411807
        }
      }
    }
  • Data sampel untuk catatan penghapusan kolom

    {
      "schema": {},
      "payload": { 
        "op": "u", 
        "ts_ms": 1465491411815,
        "before": { 
          "id": "1004",
          "first_name": "Anne Marie",
          "last_name": "Kretchmar"
        }, 
        "after": { 
          "id": "1004",
          "first_name": "Anne Marie"
        }, 
        "source": {
          "version": "v1.0",
          "db": "ld-xxxx",
          "namespace": "default",
          "table": "customers",
          "ts_ms": 1465491411807
        }
      }
    }

HBase

Data sampel untuk catatan penyisipan data

Put put = new Put(Bytes.toBytes("user1"));
put.addColumn(Bytes.toBytes("f"), Bytes.toBytes("name"), Bytes.toBytes("lucky"));
table.put(put);

Data sampel untuk catatan pembaruan data

{
    "schema": {},
    "payload": {
        "op": "c",
        "ts_ms": 1725258859839,
        "before": null,
        "after": {
            "ROW": "dXNlcjE=",
            "f_name": "bHVja3k="
        },
        "source": {
            "version": "v2.0",
            "db": "ld-xxxx",
            "namespace": "default",
            "table": "customers",
            "ts_ms": 1725258833727
        }
    }
}