Data Integration DataWorks menggunakan plugin Lindorm Reader dan Lindorm Writer untuk membaca data dari serta menulis data ke Lindorm. Topik ini menjelaskan kemampuan baca dan tulis data yang disediakan DataWorks untuk Lindorm.
Penerapan
LindormTable mendukung kelompok sumber daya serverless (direkomendasikan) dan kelompok sumber daya eksklusif untuk Data Integration.
Mesin komputasi hanya mendukung kelompok sumber daya serverless.
Lindorm adalah database multi-model. Untuk informasi selengkapnya, lihat dokumentasi Lindorm. Saat ini, DataWorks hanya mendukung LindormTable dan mesin komputasi.
Tipe bidang yang didukung
Lindorm Reader dan Lindorm Writer mendukung sebagian besar tipe data Lindorm, tetapi beberapa tipe tidak didukung. Pastikan tipe data Anda termasuk dalam daftar yang didukung.
Tabel berikut mencantumkan konversi tipe data untuk Lindorm Reader dan Lindorm Writer.
Kategorisasi tipe | Tipe data |
Integer | INT, LONG, SHORT |
Bilangan titik mengambang | DOUBLE, FLOAT, DOUBLE |
String | STRING |
Tanggal dan waktu | DATE |
Boolean | BOOLEAN |
Biner | BINARYSTRING |
Kembangkan tugas sinkronisasi data
Untuk informasi mengenai titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Sinkronisasi offline tabel tunggal
Sumber data yang didukung: Semua jenis sumber data yang didukung oleh Data Integration.
Panduan konfigurasi: Tugas sinkronisasi offline tabel tunggal
Untuk daftar semua parameter dan demo skrip untuk editor kode, lihat Lampiran: Demo skrip dan parameter.
Sinkronisasi real-time tabel tunggal
Sumber data yang didukung: Kafka, LogHub, dan Hologres
Panduan konfigurasi: Tugas sinkronisasi real-time tabel tunggal
Sinkronisasi real-time basis data penuh
Sumber data: PostgreSQL
Panduan konfigurasi: Konfigurasikan tugas sinkronisasi real-time basis data penuh
Lampiran: Demo skrip dan parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan format skrip terpadu. Untuk informasi selengkapnya, lihat Konfigurasikan tugas di editor kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengatur tugas sinkronisasi batch menggunakan editor kode.
Demo skrip Reader
Konfigurasikan pekerjaan untuk mengekstrak data dari tabel SQL LindormTable Lindorm ke mesin lokal.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "mode": "FixedColumn", "caching": 128, "column": [ "id", "value" ], "envType": 1, "datasource": "lindorm", "tableMode": "tableService", "table": "lindorm_table" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "lindorm", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { // Mengatur kecepatan transmisi dalam byte/s. DataX berusaha mencapai tetapi tidak melebihi kecepatan ini. "byte": 1048576 } // Batas error "errorLimit": { // Jumlah maksimum catatan error. Jika jumlah catatan error melebihi nilai ini, pekerjaan gagal. "record": 0, // Persentase maksimum catatan error. Misalnya, 1.0 berarti 100%, dan 0.02 berarti 2%. "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }Konfigurasikan pekerjaan untuk mengekstrak data dari tabel wide-column LindormTable Lindorm HBaseLike ke mesin lokal.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "mode": "FixedColumn", "column": [ "STRING|rowkey", "INT|f:a" ], "envType": 1, "datasource": "lindorm", "tableMode": "wideColumn", "table":"lindorm_table" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "_IDB.TAOBAO", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "guid": "", "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { // Mengatur kecepatan transmisi dalam byte/s. DataX berusaha mencapai tetapi tidak melebihi kecepatan ini. "byte": 1048576 } // Batas error "errorLimit": { // Jumlah maksimum catatan error. Jika jumlah catatan error melebihi nilai ini, pekerjaan gagal. "record": 0, // Persentase maksimum catatan error. Misalnya, 1.0 berarti 100%, dan 0.02 berarti 2%. "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }Konfigurasikan pekerjaan untuk mengekstrak data dari tabel mesin komputasi ke mesin lokal.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "column": [ "id", "value" ], "tableComment": "", "where": "", "session": [], "splitPk": "id", "table": "auto_ob_149912212480" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "_IDB.TAOBAO", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "guid": "", "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { // Mengatur kecepatan transmisi dalam byte/s. DataX berusaha mencapai tetapi tidak melebihi kecepatan ini. "byte": 1048576 } // Batas error "errorLimit": { // Jumlah maksimum catatan error. Jika jumlah catatan error melebihi nilai ini, pekerjaan gagal. "record": 0, // Persentase maksimum catatan error. Misalnya, 1.0 berarti 100%, dan 0.02 berarti 2%. "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Parameter skrip Reader
Parameter | Deskripsi | Wajib | Nilai default | ||||||||||||||||||||
mode | Khusus untuk LindormTable. Menentukan mode pembacaan data. Nilai yang valid adalah FixedColumn dan DynamicColumn. | Ya | FixedColumn | ||||||||||||||||||||
tableMode | Khusus untuk LindormTable. Nilai yang valid adalah table untuk mode SQL tabel standar dan wideColumn untuk mode tabel lebar. Nilai default adalah table. Jika Anda memilih mode table, Anda tidak perlu menentukan parameter ini. | Tidak | Tidak ditentukan secara default | ||||||||||||||||||||
table | Nama tabel Lindorm tempat data dibaca. Nama tabel bersifat case-sensitive. | Ya | Tidak ada | ||||||||||||||||||||
encoding | Khusus untuk LindormTable. Kodek. Nilai yang valid adalah UTF-8 dan GBK. Parameter ini biasanya digunakan untuk mengonversi tipe byte[] Lindorm yang disimpan dalam bentuk biner menjadi tipe String. | Tidak | UTF-8 | ||||||||||||||||||||
caching | Khusus untuk LindormTable. Jumlah catatan yang diambil dalam satu batch. Nilai yang lebih besar dapat secara signifikan mengurangi interaksi jaringan antara sistem sinkronisasi data dan Lindorm, meningkatkan throughput keseluruhan. Jika nilai ini terlalu besar, dapat menyebabkan tekanan berlebihan pada server Lindorm atau error kehabisan memori (OOM) dalam proses sinkronisasi data. | Tidak | 100 | ||||||||||||||||||||
selects | Khusus untuk LindormTable. Sistem tidak secara otomatis melakukan sharding data untuk tipe tabel yang sedang dibaca saat ini. Secara default, pekerjaan berjalan dengan satu proses konkuren. Anda harus mengonfigurasi parameter selects secara manual untuk melakukan sharding data. Contoh: Batasan:
| Tidak | Tidak ada | ||||||||||||||||||||
session | Khusus untuk mesin komputasi. Parameter pekerjaan tingkat session, seperti | Tidak | Tidak ada | ||||||||||||||||||||
splitPk | Khusus untuk mesin komputasi. Kunci shard. Parameter ini khusus untuk membaca data dari tabel mesin komputasi. Jika Anda menentukan splitPk, data akan di-shard berdasarkan bidang yang ditentukan. Sinkronisasi data memulai tugas konkuren untuk menyinkronkan data, yang meningkatkan efisiensi.
| Tidak | Tidak ada | ||||||||||||||||||||
columns | Daftar bidang yang akan dibaca. Anda dapat memotong kolom dan mengubah urutannya. Memotong kolom berarti Anda dapat memilih subset kolom untuk diekspor. Mengubah urutan kolom berarti Anda dapat mengekspor kolom dalam urutan yang berbeda dari skema tabel.
| Ya | Tidak ada |
Demo skrip Writer
Konfigurasikan pekerjaan untuk menulis data dari sumber data MySQL ke tabel SQL LindormTable Lindorm.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "checkSlave": true, "datasource": " ", "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "masterSlave": "slave", "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8", "print": true }, "name": "mysqlReader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "nullMode": "skip", "datasource": "lindorm_datasource", "envType": 1, "column": [ "id", "value" ], "dynamicColumn": "false", "table": "lindorm_table", "encoding": "utf8" }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "speed": { // Mengatur kecepatan transmisi dalam byte/s. DataX berusaha mencapai tetapi tidak melebihi kecepatan ini. "byte": 1048576 }, // Batas error "errorLimit": { // Jumlah maksimum catatan error. Jika jumlah catatan error melebihi nilai ini, pekerjaan gagal. "record": 0, // Persentase maksimum catatan error. Misalnya, 1.0 berarti 100%, dan 0.02 berarti 2%. "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }Konfigurasikan pekerjaan untuk menulis data dari sumber data MySQL ke tabel wide-column LindormTable Lindorm HBaseLike.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "encoding": "utf8", "nullMode": "skip", "dynamicColumn": "false", "caching": 128, "column": [ // Memetakan bidang dari sumber secara berurutan. "ROW|STRING", // rowkey. Ini adalah konfigurasi tetap. Bidang pertama dari sumber dipetakan ke rowkey. Dalam contoh ini, bidang id dipetakan ke rowkey. "cf:name|STRING" // cf menentukan nama keluarga kolom, yang dapat Anda ubah. name menentukan nama kolom di tujuan, yang dapat Anda ubah. ] }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }Konfigurasikan pekerjaan untuk menulis data dari sumber data MySQL ke tabel mesin komputasi.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "column": [ "id", "value" ], "formatType": "ICEBERG" }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Parameter skrip Writer
Parameter | Deskripsi | Wajib | Nilai default |
table | Nama tabel Lindorm tempat data ditulis. Nama tabel bersifat case-sensitive. | Ya | Tidak ada |
encoding | Menentukan kodek untuk LindormTable. Nilai yang valid adalah UTF-8 dan GBK. Parameter ini biasanya digunakan untuk mengonversi tipe byte[] Lindorm yang disimpan dalam bentuk biner menjadi tipe String. | Tidak | UTF-8 |
columns | Menentukan daftar bidang yang akan ditulis. Anda dapat memilih subset kolom untuk diekspor (memotong kolom) atau mengubah urutan kolom agar berbeda dari skema tabel.
| Ya | Tidak ada |
nullMode | Parameter ini hanya berlaku untuk LindormTable dan menentukan cara menangani nilai null dari data sumber.
| Tidak | EMPTY_BYTES |
formatType | Parameter ini hanya berlaku untuk mesin komputasi dan menentukan format tabel untuk tugas sinkronisasi. Nilai yang valid:
| Tidak | Tidak ada |