DataWorks menyediakan GBase 8a Reader dan GBase 8a Writer untuk membaca data dari serta menulis data ke sumber data GBase 8a. Topik ini menjelaskan kemampuan menyinkronkan data dari atau ke sumber data GBase 8a.
Batasan
GBase 8a Reader dan GBase 8a Writer hanya mendukung kelompok sumber daya eksklusif untuk Data Integration.
INSERT INTO: Jika terjadi konflik kunci utama atau indeks unik, data tidak dapat ditulis ke baris yang bertentangan.Data hanya dapat ditulis ke tabel yang disimpan di database utama.
CatatanTugas sinkronisasi yang menggunakan GBase 8a Writer harus memiliki setidaknya izin untuk menjalankan
INSERT INTO. Kebutuhan izin tambahan bergantung pada pernyataan SQL yang ditentukan dalam parameter preSql dan postSql saat Anda mengonfigurasi tugas tersebut.GBase 8a Writer tidak mendukung parameter writeMode.
Mengembangkan tugas sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur mengonfigurasi tugas sinkronisasi data, lihat bagian berikut. Untuk detail pengaturan parameter, lihat tip info setiap parameter pada tab konfigurasi tugas.
Menambahkan sumber data
Mengonfigurasi tugas sinkronisasi batch untuk menyinkronkan data tabel tunggal
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Mengonfigurasi Tugas Sinkronisasi Batch Menggunakan Antarmuka Tanpa Kode dan Mengonfigurasi Tugas Sinkronisasi Batch Menggunakan Editor Kode.
Untuk informasi tentang semua parameter yang dikonfigurasi dan kode yang dijalankan saat menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, lihat Lampiran: Kode dan Parameter.
Lampiran: Kode dan parameter
Lampiran: Mengonfigurasi tugas sinkronisasi batch menggunakan editor kode
Kode untuk GBase 8a Reader
{
"type": "job",
"steps": [
{
"stepType": "gbase8a", // Nama plugin.
"parameter": {
"datasource": "", // Nama sumber data.
"username": "",
"password": "",
"where": "",
"column": [ // Nama kolom.
"id",
"name"
],
"splitPk": "id",
"connection": [
{
"table": [ // Nama tabel.
"table"
],
"datasource":""
}
]
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {
"print": false,
"fieldDelimiter": ","
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0" // Jumlah maksimum catatan data kotor yang diizinkan.
},
"speed": {
"throttle": true, // Menentukan apakah akan mengaktifkan pembatasan kecepatan. Nilai false menunjukkan bahwa pembatasan dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan diaktifkan. Parameter mbps hanya berlaku jika parameter throttle diatur ke true.
"concurrent": 1, // Jumlah maksimum thread paralel.
"mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
}
}
}Parameter dalam kode untuk GBase 8a Reader
Parameter | Deskripsi | Diperlukan | Nilai default |
datasource | Nama sumber data. Jika edisi layanan DataWorks yang Anda aktifkan mendukung sumber data GBase 8a, Anda dapat menambahkan sumber data GBase 8a dan menentukan sumber data dalam parameter ini. | Tidak | Tidak ada nilai default |
table | Nama tabel tempat Anda ingin membaca data. GBase 8a Reader dapat membaca data dari beberapa tabel. Tentukan nama tabel dalam array JSON. Jika Anda menentukan beberapa tabel, Anda harus memastikan bahwa tabel-tabel tersebut memiliki skema yang sama. GBase 8a Reader tidak memeriksa apakah tabel-tabel tersebut memiliki skema yang sama. Catatan Parameter table harus disertakan dalam parameter connection. | Ya | Tidak ada nilai default |
column | Nama kolom tempat Anda ingin membaca data. Tentukan nama-nama tersebut dalam array JSON. Nilai default adalah [ * ], yang menunjukkan semua kolom dalam tabel sumber.
| Ya | Tidak ada nilai default |
splitPk | Bidang yang digunakan untuk sharding data saat GBase 8a Reader membaca data. Jika Anda mengonfigurasi parameter ini, tabel sumber di-shard berdasarkan nilai parameter ini. Data Integration kemudian menjalankan thread paralel untuk membaca data. Dengan cara ini, data dapat disinkronkan lebih efisien.
| Tidak | Tidak ada nilai default |
where | Klausa WHERE. GBase 8a Reader menghasilkan pernyataan SQL berdasarkan pengaturan parameter column, table, dan where dan menggunakan pernyataan yang dihasilkan untuk membaca data. Sebagai contoh, ketika Anda melakukan pengujian, Anda dapat menyetel parameter where ke limit 10. Untuk membaca data yang dihasilkan pada hari saat ini, Anda dapat menyetel parameter where ke
| Tidak | Tidak ada nilai default |
querySql | Pernyataan SQL yang digunakan untuk penyaringan data yang lebih halus. Jika Anda mengonfigurasi parameter ini, data difilter hanya berdasarkan nilai parameter ini. Jika Anda mengonfigurasi parameter querySql, GBase 8a Reader mengabaikan pengaturan parameter table, column, where, dan splitPk. | Tidak | Tidak ada nilai default |
fetchSize | Jumlah catatan data yang dibaca sekaligus. Parameter ini menentukan jumlah interaksi antara Data Integration dan database dan memengaruhi efisiensi pembacaan. Catatan Jika Anda menyetel parameter ini ke nilai yang lebih besar dari 2048, kesalahan out of memory (OOM) mungkin terjadi selama sinkronisasi data. | Tidak | 1.024 |
Kode untuk GBase 8a Writer
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"gbase8a",// Nama plugin.
"parameter":{
"datasource": "Nama sumber data",
"username": "",
"password": "",
"column": [// Nama kolom.
"id",
"name"
],
"connection": [
{
"table": [// Nama tabel.
"Gbase8a_table"
],
"datasource":""
}
],
"preSql": [ // Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan.
"delete from @table where db_id = -1"
],
"postSql": [// Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan.
"update @table set db_modify_time = now() where db_id = 1"
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah maksimum catatan data kotor yang diizinkan.
},
"speed":{
"throttle":true,// Menentukan apakah akan mengaktifkan pembatasan kecepatan. Nilai false menunjukkan bahwa pembatasan dinonaktifkan, dan nilai true menunjukkan bahwa pembatasan diaktifkan. Parameter mbps hanya berlaku jika parameter throttle diatur ke true.
"concurrent":1, // Jumlah maksimum thread paralel.
"mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter dalam kode untuk GBase 8a Writer
Parameter | Deskripsi | Diperlukan | Nilai default |
datasource | Nama sumber data. Harus sama dengan nama sumber data yang telah ditambahkan. Anda dapat menambahkan sumber data menggunakan editor kode. | Ya | Tidak ada nilai default |
table | Nama tabel tempat Anda ingin menulis data. Tentukan nama dalam array JSON. Catatan Parameter table harus disertakan dalam parameter connection. | Ya | Tidak ada nilai default |
column | Nama kolom tempat Anda ingin menulis data. Pisahkan nama dengan koma (,), seperti Catatan Parameter column tidak boleh dibiarkan kosong. | Ya | Tidak ada nilai default |
preSql | Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan. Gunakan | Tidak | Tidak ada nilai default |
postSql | Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan. | Tidak | Tidak ada nilai default |
batchSize | Jumlah catatan data yang ditulis sekaligus. Atur parameter ini ke nilai yang sesuai berdasarkan kebutuhan bisnis Anda. Hal ini sangat mengurangi interaksi antara Data Integration dan GBase 8a serta meningkatkan throughput. Jika Anda menyetel parameter ini ke nilai yang terlalu besar, kesalahan OOM mungkin terjadi selama sinkronisasi data. | Tidak | 1.024 |