DataWorks menyediakan HybridDB for MySQL Reader dan HybridDB for MySQL Writer untuk membaca data dari dan menulis data ke sumber data HybridDB for MySQL. Topik ini menjelaskan kemampuan sinkronisasi data dari atau ke sumber data HybridDB for MySQL.
Batasan
Data dari Tampilan dapat dibaca selama sinkronisasi batch.
HybridDB for MySQL Reader dapat membaca tabel dan tampilan. Saat membaca data dari tabel, Anda dapat menentukan semua atau beberapa kolom secara berurutan, mengubah urutan kolom, menentukan bidang konstan, serta mengonfigurasi fungsi HybridDB for MySQL seperti now().
Pemetaan Tipe Data
Tabel berikut mencantumkan pemetaan tipe data yang digunakan oleh HybridDB for MySQL Reader atau HybridDB for MySQL Writer untuk mengonversi tipe data.
Kategori | Tipe Data HybridDB for MySQL |
Integer | INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT, dan YEAR |
Floating point | FLOAT, DOUBLE, dan DECIMAL |
String | VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, dan LONGTEXT |
Tanggal dan waktu | DATE, DATETIME, TIMESTAMP, dan TIME |
Boolean | BOOL |
Biner | TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, dan VARBINARY |
Tipe data yang tidak tercantum dalam tabel di atas tidak didukung.
HybridDB for MySQL Reader memproses TINYINT(1) sebagai tipe data integer.
Tambahkan Sumber Data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam Tambahkan dan kelola sumber data. Anda dapat melihat tip informasi parameter di konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Mengembangkan Tugas Sinkronisasi Data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Konfigurasikan Tugas Sinkronisasi Batch untuk Menyinkronkan Data Tabel Tunggal
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan tugas sinkronisasi batch menggunakan UI tanpa kode dan Konfigurasikan 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.
Konfigurasikan Pengaturan Sinkronisasi untuk Mengimplementasikan Sinkronisasi Batch Semua Data dalam Database
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan tugas sinkronisasi di Data Integration.
Lampiran: Kode dan Parameter
Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode
Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasikan tugas sinkronisasi batch menggunakan editor kode. Informasi berikut menjelaskan parameter yang perlu dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Kode untuk HybridDB for MySQL Reader
Contoh kode untuk HybridDB for MySQL Reader membaca data dari tabel yang tidak di-sharding:
{
"type": "job",
"steps": [
{
"parameter": {
"datasource": "px_aliyun_hymysql",// Nama sumber data.
"column": [// Nama kolom tempat Anda ingin menulis data.
"id",
"name",
"sex",
"salary",
"age",
"pt"
],
"where": "id=10001",// Klausul WHERE.
"splitPk": "id",// Kunci shard.
"table": "person"// Nama tabel sumber.
},
"name": "Reader",
"category": "reader"
},
{
"parameter": {}
],
"version": "2.0",// Nomor versi.
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {// Jumlah maksimum catatan data kotor yang diizinkan.
"record": ""
},
"speed": {
"concurrent": 7,// Jumlah maksimum thread paralel.
"throttle": true,// Menentukan apakah akan mengaktifkan throttling. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle disetel ke true.
"mbps": 1 // Laju transmisi maksimum. Unit: MB/s.
}
}
}Parameter dalam Kode untuk HybridDB for MySQL Reader
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 membaca data. Setiap tugas sinkronisasi hanya dapat digunakan untuk menyinkronkan data ke satu tabel. | Ya | Tidak ada nilai default |
column | Nama kolom tempat Anda ingin membaca data. Tentukan nama dalam array JSON. Nilai defaultnya adalah [*], yang menunjukkan semua kolom dalam tabel sumber.
| Ya | Tidak ada nilai default |
splitPk | Bidang yang digunakan untuk sharding data saat HybridDB for MySQL Reader membaca data. Jika Anda mengonfigurasi parameter ini, tabel sumber di-sharding berdasarkan nilai parameter ini. Data Integration kemudian menjalankan thread paralel untuk membaca data. Ini meningkatkan efisiensi sinkronisasi data.
| Tidak | Tidak ada nilai default |
where | Klausul WHERE. Misalnya, Anda dapat menyetel parameter ini ke
| Tidak | Tidak ada nilai default |
querySql (parameter lanjutan, yang hanya tersedia di editor kode) | Pernyataan SQL yang digunakan untuk penyaringan data yang diperhalus. Jika Anda menentukan parameter ini, HybridDB for MySQL Reader hanya menyaring data berdasarkan nilai parameter ini. Misalnya, jika Anda ingin menggabungkan beberapa tabel untuk sinkronisasi data, atur parameter ini ke | Tidak | Tidak ada nilai default |
singleOrMulti (hanya tersedia untuk tabel yang di-sharding) | Menentukan bahwa tabel sumber adalah tabel yang di-sharding. Setelah Anda beralih dari UI tanpa kode ke editor kode, konfigurasi | Ya | multi |
Kode untuk HybridDB for MySQL Writer
{
"type": "job",
"steps": [
{
"parameter": {},
{
"parameter": {
"postSql": [],// Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan.
"datasource": "px_aliyun_hy***",// Nama sumber data.
"column": [// Nama kolom.
"id",
"name",
"sex",
"salary",
"age",
"pt"
],
"writeMode": "insert",// Mode penulisan.
"batchSize": 256,// Jumlah catatan data yang ditulis sekaligus.
"encoding": "UTF-8",// Format encoding.
"table": "person_copy",// Nama tabel tujuan.
"preSql": []// Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan.
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",// Nomor versi.
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {// Jumlah maksimum catatan data kotor yang diizinkan.
"record": ""
},
"speed": {
"concurrent": 7,// Jumlah maksimum thread paralel.
"throttle": true,// Menentukan apakah akan mengaktifkan throttling. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle disetel ke true.
"mbps": 1,// Laju transmisi maksimum. Unit: MB/s.
}
}
}Parameter dalam Kode untuk HybridDB for MySQL 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. | Ya | Tidak ada nilai default |
writeMode | Mode penulisan. Nilai valid:
| Tidak | insert |
column | Nama kolom tempat Anda ingin menulis data. Pisahkan nama dengan koma (,), seperti | Ya | Tidak ada nilai default |
preSql | Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi batch dijalankan. Misalnya, Anda dapat menyetel parameter ini ke pernyataan SQL yang digunakan untuk menghapus data lama. Anda hanya dapat menjalankan satu pernyataan SQL di UI tanpa kode dan beberapa pernyataan SQL di editor kode. | Tidak | Tidak ada nilai default |
postSql | Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi batch dijalankan. Misalnya, Anda dapat menyetel parameter ini ke pernyataan SQL yang digunakan untuk menambahkan timestamp. Anda hanya dapat menjalankan satu pernyataan SQL di UI tanpa kode dan beberapa pernyataan SQL di editor kode. | Tidak | Tidak ada nilai default |
batchSize | Jumlah catatan data yang ditulis sekaligus. Atur parameter ini ke nilai yang sesuai berdasarkan kebutuhan bisnis Anda. Ini sangat mengurangi interaksi antara Data Integration dan HybridDB for MySQL dan meningkatkan throughput. Jika Anda menyetel parameter ini ke nilai yang terlalu besar, kesalahan out of memory (OOM) mungkin terjadi selama sinkronisasi data. | Tidak | 1.024 |