Lindorm Streams, yang disediakan oleh ApsaraDB untuk Lindorm, menerbitkan data inkremental dari ApsaraDB untuk HBase Performance-enhanced ke topik Message Queue for Apache Kafka. Berlanggananlah ke topik tersebut untuk mengonsumsi perubahan tingkat baris secara real time bagi sistem downstream Anda.
Lindorm Streams mendukung:
Cara kerja
Lindorm Streams menerbitkan setiap operasi baris sebagai sebuah message ke topik Kafka. Setiap message dapat mencakup dua versi baris yang terpengaruh: status sebelum dan status setelah operasi.
Semantik pengiriman
Order guarantee
Operasi pada baris yang sama diterbitkan sesuai urutan kejadiannya, sehingga konsumen dapat memutar ulang operasi tersebut dalam urutan yang sama.
At-Least-Once Delivery
Lindorm Streams menjamin pengiriman setidaknya sekali. Message dapat dikirimkan lebih dari satu kali berdasarkan kebijakan retry Anda; oleh karena itu, rancanglah konsumen Anda untuk menangani message duplikat.
Untuk menggunakan semantik tepat-sekali (exactly-once semantics), ajukan tiket.
Format message
Setiap message adalah objek JSON dengan struktur berikut:
{
"op": "<opType>",
"table": "<tableName>",
"ts": "<defaultVersion>",
"keyOnly": "<keyOnly>",
"data": [
{
"type": "<type>",
"name": "<name>",
"ts": "<version>",
"value": "<value>"
}
]
}Tabel berikut menjelaskan bidang-bidang tingkat atas.
| Field | Description |
|---|---|
op | Tipe operasi. Nilai yang valid: Put dan DeleteFamily. |
table | Nama tabel. |
ts | Versi default. Digunakan ketika baris tidak mengandung kunci ts. |
keyOnly | Apakah hanya primary key yang disertakan dalam message. |
data | Array entri kolom. Setiap entri berisi bidang-bidang yang dijelaskan di bawah ini. |
Tabel berikut menjelaskan bidang-bidang dalam setiap entri data.
| Field | Description |
|---|---|
type | Tipe data kolom. |
name | Nama kolom. |
ts | Versi data. Jika kosong, nilai dts digunakan sebagai versi. |
value | Nilai kolom. Jika kosong, nilai aktual di tabel adalah null. |
Parameter message
Gunakan parameter berikut untuk mengontrol data mana yang disertakan dalam setiap message.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
key_only | boolean | No | false | Apakah hanya primary key yang disinkronkan. |
unique_key | boolean | No | false | Apakah primary key dikirim hanya sekali per Batch. |