Sumber data PolarDB-X 2.0 menyediakan saluran dua arah untuk membaca dan menulis data ke PolarDB-X 2.0. Topik ini menjelaskan kemampuan sinkronisasi data yang didukung DataWorks untuk PolarDB-X 2.0.
Batasan
Sumber data PolarDB-X 2.0 mendukung kelompok resource serverless (disarankan) dan kelompok resource eksklusif untuk Data Integration.
Versi yang didukung
Baca dan tulis offline: PolarDB-X 2.0 didukung. Anda dapat menggunakan sinkronisasi offline untuk membaca data dari view.
Tipe field yang didukung
Untuk daftar lengkap tipe field PolarDB-X 2.0, lihat Tipe data. Tabel berikut mencantumkan tipe field utama yang didukung.
Field type | Offline read (PolarDB-X 2.0 Reader) | Offline write (PolarDB-X 2.0 Writer) |
TINYINT | Support | Support |
SMALLINT | Supported | Support |
INTEGER | Support | Support |
BIGINT | Support | Supported |
FLOAT | Supported | Support |
DOUBLE | Support | Support |
DECIMAL/NUMBERIC | Support | Support |
REAL | Not supported | Not supported |
VARCHAR | Support | Supported |
JSON | Support | Support |
TEXT | Support | Support |
MEDIUMTEXT | Support | Support |
LONGTEXT | Supported | Supported |
VARBINARY | Support | Support |
BINARY | Support | Support |
TINYBLOB | Support | Support |
MEDIUMBLOB | Support | Support |
LONGBLOB | Support | Support |
ENUM | Support | Support |
SET | Supported | Support |
BOOLEAN | Support | Support |
BIT | Support | Support |
DATE | Support | Support |
DATETIME | Supported | Support |
TIMESTAMP | Support | Support |
TIME | Support | Support |
YEAR | Support | Support |
LINESTRING | Not supported | Not supported |
POLYGON | Not supported | Not supported |
MULTIPOINT | Not supported | Not supported |
MULTILINESTRING | Not supported | Not supported |
MULTIPOLYGON | Not supported | Not supported |
GEOMETRYCOLLECTION | Not supported | Not supported |
Prasyarat untuk sinkronisasi data
Sebelum melakukan sinkronisasi data di DataWorks, Anda harus menyiapkan lingkungan PolarDB-X 2.0 seperti yang dijelaskan dalam bagian ini agar tugas sinkronisasi berjalan sesuai harapan. Bagian-bagian berikut menjelaskan persiapan yang diperlukan.
Konfirmasi versi PolarDB-X
Untuk PolarDB-X 1.0, gunakan sumber data DRDS. Untuk PolarDB-X 2.0, gunakan sumber data ini.
Konfigurasi izin akun
Buat akun PolarDB-X 2.0 khusus agar DataWorks dapat mengakses sumber data tersebut. Ikuti langkah-langkah berikut:
(Opsional) Buka Konsol PolarDB-X 2.0 untuk membuat akun. Jika Anda sudah memiliki akun, lewati langkah ini.
Konfigurasi izin.
Untuk skenario sinkronisasi offline:
Untuk membaca data dari PolarDB-X 2.0 dalam tugas offline, akun harus memiliki izin baca (SELECT) pada tabel sumber.
Untuk menulis data ke PolarDB-X 2.0 dalam tugas offline, akun harus memiliki izin tulis (INSERT, DELETE, UPDATE) pada tabel tujuan.
Untuk skenario sinkronisasi real-time (seluruh database):
Akun istimewa: Secara default, akun istimewa dapat membaca data binary logging (binlog) untuk sinkronisasi real-time.
Akun standar: Gunakan akun istimewa untuk memberikan izin SELECT, REPLICATION SLAVE, dan REPLICATION CLIENT pada database tertentu kepada akun standar.
-- Buat akun sinkronisasi dan atur password. Ini memungkinkan akun login ke database dari host mana pun. Tanda persen (%) merepresentasikan host apa pun.
-- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password';
-- Berikan izin SELECT, REPLICATION SLAVE, dan REPLICATION CLIENT pada database kepada akun sinkronisasi.
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync_account'@'%'; Tambahkan sumber data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Manajemen sumber data. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Kembangkan tugas sinkronisasi data: Panduan proses sinkronisasi PolarDB-X 2.0
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Panduan konfigurasi tugas sinkronisasi offline untuk satu tabel
Untuk petunjuknya, lihat Konfigurasi tugas sinkronisasi offline di editor kode.
Untuk semua parameter dan contoh skrip editor kode, lihat Lampiran: Demo skrip dan deskripsi parameter.
Lampiran: Demo skrip dan deskripsi parameter
Konfigurasi tugas sinkronisasi batch menggunakan editor kode
Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasi tugas di editor kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Demo skrip Reader
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"polardbx20",// Nama plugin.
"parameter":{
"connection": [
{
"datasource":"",
"table": [
"t1"
]
}
],
"column": [
"c1",
"c2",
"'const'"
],
"where": "",
"splitPk": "",
"checkSlave": "true",
"slaveDelayLimit": "300"
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan error.
},
"speed":{
"throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, dan tidak ada batasan laju. Jika throttle diatur ke true, batasan laju diterapkan.
"concurrent":1,// Jumlah tugas konkuren.
"mbps":"12"// Batasan laju.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter skrip Reader
Script Parameter Name | Description | Required | Default value |
datasource | Nama sumber data. Nama harus sama dengan nama sumber data PolarDB-X 2.0 yang Anda buat di halaman Manajemen Sumber Data. | Yes | None |
table | Nama tabel yang akan disinkronkan. Hanya satu tabel yang didukung. | Yes | None |
column | Kolom yang akan disinkronkan dari tabel yang dikonfigurasi. Gunakan array JSON untuk menggambarkan kolom. Secara default, semua kolom digunakan. Contoh: [*].
| Yes | None |
splitPk | Saat menggunakan PolarDB-X 2.0 Reader untuk mengekstraksi data, Anda dapat menggunakan parameter splitPk untuk partisi data. Ini memungkinkan sinkronisasi data konkuren dan meningkatkan efisiensi.
| No | None |
where | Kondisi filter. Dalam banyak skenario bisnis, Anda mungkin hanya ingin menyinkronkan data hari ini. Untuk melakukannya, atur kondisi where menjadi
| No | None |
checkSlave | Memeriksa latensi replikasi antara instans primary dan instans hanya baca. Saat sumber data adalah instans hanya baca PolarDB-X 2.0, pemeriksaan ini dilakukan sebelum tugas dimulai untuk mencegah kehilangan data akibat latensi replikasi. | No | true |
slaveDelayLimit | Latensi replikasi maksimum yang diizinkan antara instans primary dan instans hanya baca, dalam satuan detik. Jika latensi aktual melebihi nilai ini, tugas akan gagal. Ini mencegah kehilangan data akibat latensi replikasi. | No | 30 |
Demo skrip Writer
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"PolarDB-X 2.0",// Nama plugin.
"parameter":{
"postSql":[],// Pernyataan SQL yang dieksekusi setelah data diimpor.
"datasource":"",// Sumber data.
"column":[// Nama kolom.
"id",
"value"
],
"writeMode":"insert",// Mode penulisan. Anda dapat mengatur ini ke insert atau replace.
"batchSize":1024,// Jumlah catatan yang dikirimkan dalam satu batch.
"table":"",// Nama tabel.
"preSql":[
"delete from XXX;" // Pernyataan SQL yang dieksekusi sebelum data diimpor.
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{// Jumlah catatan error.
"record":"0"
},
"speed":{
"throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, dan tidak ada batasan laju. Jika throttle diatur ke true, batasan laju diterapkan.
"concurrent":1, // Jumlah tugas konkuren.
"mbps":"12"// Batasan laju. Ini mengontrol laju sinkronisasi maksimum untuk mencegah tekanan baca/tulis berlebihan pada database hulu atau hilir.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter skrip Writer
Script Parameter Name | Description | Required | Default value |
datasource | Nama sumber data. Nama harus sama dengan nama sumber data PolarDB-X 2.0 yang Anda buat di halaman Manajemen Sumber Data. | Yes | None |
table | Nama tabel yang akan disinkronkan. | Yes | None |
writeMode | Mode impor. Mode berikut didukung: insert into dan replace into.
| No | insert |
column | Kolom di tabel tujuan tempat Anda ingin menulis data. Pisahkan nama kolom dengan koma (,). Contoh: "column": ["id", "name", "age"]. Untuk menulis data ke semua kolom secara berurutan, gunakan tanda bintang (*). Contoh: "column": ["*"]. | Yes | None |
preSql | Pernyataan SQL yang dieksekusi sebelum tugas sinkronisasi data dijalankan. Di Antarmuka tanpa kode, hanya satu pernyataan SQL yang diizinkan. Di editor kode, beberapa pernyataan SQL didukung. Misalnya, untuk menghapus data lama dari tabel sebelum tugas dijalankan: Catatan Transaksi tidak didukung untuk beberapa pernyataan SQL. | No | None |
postSql | Pernyataan SQL yang dieksekusi setelah tugas sinkronisasi data dijalankan. Di Antarmuka tanpa kode, hanya satu pernyataan SQL yang diizinkan. Di editor kode, beberapa pernyataan SQL didukung. Misalnya, untuk menambahkan timestamp: Catatan Transaksi tidak didukung untuk beberapa pernyataan SQL. | No | None |
batchSize | Jumlah catatan yang dikirimkan dalam satu batch. Nilai yang lebih besar dapat secara signifikan mengurangi interaksi jaringan antara sistem sinkronisasi data dan PolarDB-X 2.0, yang meningkatkan throughput keseluruhan. Namun, jika nilai ini terlalu besar, dapat menyebabkan overflow memori. | No | 256 |