DataWorks menyediakan PolarDB-X 2.0 Reader dan PolarDB-X 2.0 Writer untuk membaca dan menulis data ke sumber data PolarDB-X 2.0. Topik ini menjelaskan cara menyinkronkan data dari atau ke sumber data PolarDB-X 2.0.
Batasan
Anda hanya dapat menggunakan kelompok sumber daya eksklusif untuk Data Integration untuk membaca atau menulis data ke sumber data PolarDB-X 2.0.
Versi yang Didukung
Pembacaan dan penulisan data batch didukung di PolarDB-X 2.0. Data dari tampilan dapat dibaca selama sinkronisasi batch.
Tipe Data yang Didukung
Untuk informasi tentang semua tipe data di PolarDB-X 2.0, lihat Tipe Data. Tabel berikut memberikan status dukungan untuk tipe data utama.
Tipe Data | PolarDB-X 2.0 Reader untuk pembacaan data batch | PolarDB-X 2.0 Writer untuk penulisan data batch |
TINYINT | Didukung | Didukung |
SMALLINT | Didukung | Didukung |
INTEGER | Didukung | Didukung |
BIGINT | Didukung | Didukung |
FLOAT | Didukung | Didukung |
DOUBLE | Didukung | Didukung |
DECIMAL/NUMBERIC | Didukung | Didukung |
REAL | Tidak didukung | Tidak didukung |
VARCHAR | Didukung | Didukung |
JSON | Didukung | Didukung |
TEXT | Didukung | Didukung |
MEDIUMTEXT | Didukung | Didukung |
LONGTEXT | Didukung | Didukung |
VARBINARY | Didukung | Didukung |
BINARY | Didukung | Didukung |
TINYBLOB | Didukung | Didukung |
MEDIUMBLOB | Didukung | Didukung |
LONGBLOB | Didukung | Didukung |
ENUM | Didukung | Didukung |
SET | Didukung | Didukung |
BOOLEAN | Didukung | Didukung |
BIT | Didukung | Didukung |
DATE | Didukung | Didukung |
DATETIME | Didukung | Didukung |
TIMESTAMP | Didukung | Didukung |
TIME | Didukung | Didukung |
YEAR | Didukung | Didukung |
LINESTRING | Tidak didukung | Tidak didukung |
POLYGON | Tidak didukung | Tidak didukung |
MULTIPOINT | Tidak didukung | Tidak didukung |
MULTILINESTRING | Tidak didukung | Tidak didukung |
MULTIPOLYGON | Tidak didukung | Tidak didukung |
GEOMETRYCOLLECTION | Tidak didukung | Tidak didukung |
Siapkan Lingkungan PolarDB-X 2.0 Sebelum Sinkronisasi Data
Sebelum menggunakan DataWorks untuk menyinkronkan data dari atau ke sumber data PolarDB-X 2.0, Anda harus menyiapkan lingkungan PolarDB-X 2.0. Ini memastikan bahwa tugas sinkronisasi data dapat dikonfigurasi dan berjalan sesuai harapan. Informasi berikut menjelaskan cara menyiapkan lingkungan tersebut.
Persiapan 1: Periksa versi database PolarDB-X Anda
Jika versi database PolarDB-X Anda adalah PolarDB-X 1.0, lihat Sumber Data DRDS (PolarDB-X 1.0) untuk menyiapkan lingkungan. Jika versi database Anda adalah PolarDB-X 2.0, ikuti panduan dalam topik ini.
Persiapan 2: Siapkan akun dengan izin yang diperlukan
Disarankan untuk merencanakan dan membuat akun khusus agar DataWorks dapat mengakses database PolarDB-X 2.0 Anda. Untuk menyiapkan akun tersebut, ikuti langkah-langkah berikut:
Opsional. Masuk ke Konsol PolarDB-X 2.0 untuk membuat akun. Jika Anda sudah memiliki akun seperti itu, lewati langkah ini.
Berikan izin yang diperlukan kepada akun tersebut.
Sinkronisasi batch:
Pembacaan data batch: Akun harus memiliki izin SELECT.
Penulisan data batch: Akun harus memiliki izin INSERT, DELETE, dan UPDATE.
Sinkronisasi waktu nyata data dalam database:
Akun istimewa: Secara default, data log biner dapat dibaca untuk sinkronisasi waktu nyata.
Akun standar: Gunakan akun istimewa untuk memberikan izin SELECT, REPLICATION SLAVE, dan REPLICATION CLIENT pada database tertentu kepada akun standar.
-- Buat akun yang dapat digunakan untuk sinkronisasi data dan tentukan kata sandi. Dengan cara ini, Anda dapat menggunakan akun dan kata sandi untuk mengakses database dari host mana pun. % menunjukkan host.
-- CREATE USER 'Akun untuk sinkronisasi data'@'%' IDENTIFIED BY 'Kata Sandi'.
-- Berikan izin SELECT, REPLICATION SLAVE, dan REPLICATION CLIENT kepada akun tersebut.
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'Akun untuk sinkronisasi data'@'%';Kembangkan Tugas Sinkronisasi Data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi data, lihat bagian berikut. Untuk pengaturan parameter, lihat infotip setiap parameter di tab konfigurasi tugas.
Tambahkan Sumber Data
Sebelum mengonfigurasi tugas sinkronisasi data untuk menyinkronkan data dari atau ke sumber data tertentu, tambahkan sumber data ke DataWorks. Untuk informasi lebih lanjut, lihat Tambah dan Kelola Sumber Data.
Konfigurasikan Tugas Sinkronisasi Batch untuk Menyinkronkan Data Tabel Tunggal
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat 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.
Lampiran: Kode dan Parameter
Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode
Jika Anda menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, konfigurasikan parameter untuk pembaca dan penulis sumber data terkait sesuai dengan persyaratan format di editor kode. Untuk informasi lebih lanjut tentang persyaratan format, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode. Informasi berikut menjelaskan detail konfigurasi parameter untuk pembaca dan penulis di editor kode.
Kode untuk PolarDB-X 2.0 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 maksimum catatan data kotor yang diizinkan.
},
"speed":{
"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.
"concurrent":1,// Jumlah maksimum thread paralel.
"mbps":"12"// Laju transmisi maksimum.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter dalam Kode untuk PolarDB-X 2.0 Reader
Parameter | Deskripsi | Diperlukan | Nilai Default |
datasource | Nama sumber data. Harus sama dengan nama sumber data yang Anda tambahkan di halaman manajemen sumber data. | Ya | Tidak ada nilai default |
table | Nama tabel dari mana Anda ingin membaca data. Setiap tugas sinkronisasi hanya dapat digunakan untuk menyinkronkan data dari satu tabel. | Ya | Tidak ada nilai default |
column | Nama kolom dari mana 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 | field yang digunakan untuk sharding data saat PolarDB-X 2.0 Reader membaca data. Jika Anda mengonfigurasi parameter ini, tabel sumber di-sharding berdasarkan nilai parameter ini. Kemudian, thread paralel dijalankan untuk membaca data. Dengan cara ini, data dapat disinkronkan lebih efisien.
| Tidak | Tidak ada nilai default |
where | Klausa WHERE. Misalnya, Anda dapat menyetel parameter ini ke
| Tidak | Tidak ada nilai default |
checkSlave | Menentukan apakah akan memeriksa latensi sinkronisasi data antara instance utama dan instance sekunder baca-saja. Jika Anda menambahkan instance baca-saja PolarDB-X 2.0 sebagai sumber data, Anda harus memeriksa latensi sinkronisasi data antara instance baca-saja dan instance utama sebelum menjalankan tugas sinkronisasi data. Ini membantu mencegah kehilangan data yang disebabkan oleh latensi. | Tidak | true |
slaveDelayLimit | Latensi maksimum sinkronisasi data antara instance utama dan instance baca-saja, dalam detik. Jika latensi melebihi nilai parameter ini, tugas sinkronisasi data gagal. Ini membantu mencegah kehilangan data yang disebabkan oleh latensi. | Tidak | 30 |
Kode untuk PolarDB-X 2.0 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 ingin Anda jalankan setelah tugas sinkronisasi dijalankan.
"datasource":"",// Nama sumber data.
"column":[// Nama kolom.
"id",
"value"
],
"writeMode":"insert",// Mode penulisan. Nilai valid: insert dan replace.
"batchSize":1024,// Jumlah catatan data yang ditulis sekaligus.
"table":"",// Nama tabel.
"preSql":[
"delete from XXX;" // Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan.
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{// Jumlah maksimum catatan data kotor yang diizinkan.
"record":"0"
},
"speed":{
"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.
"concurrent":1, // Jumlah maksimum thread paralel.
"mbps":"12"// Laju transmisi maksimum. Anda dapat menentukan laju transmisi maksimum untuk mencegah beban baca yang berat pada sumber atau beban tulis yang berat pada tujuan.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter dalam Kode untuk PolarDB-X 2.0 Writer
Parameter | Deskripsi | Diperlukan | Nilai Default |
datasource | Nama sumber data. Harus sama dengan nama sumber data yang Anda tambahkan di halaman manajemen sumber data. | Ya | Tidak ada nilai default |
table | Nama tabel ke mana Anda ingin menulis data. | Ya | Tidak ada nilai default |
writeMode | Mode penulisan. Nilai valid:
| Tidak | insert |
column | Nama kolom ke mana Anda ingin menulis data. Pisahkan nama dengan koma (,), seperti "column": ["id", "name", "age"]. Jika Anda ingin menulis data ke semua kolom di tabel tujuan, atur parameter ini ke asterisk (*), seperti "column": ["*"]. | Ya | Tidak ada nilai default |
preSql | Pernyataan SQL yang ingin Anda jalankan sebelum tugas sinkronisasi dijalankan. Anda hanya dapat menjalankan satu pernyataan SQL di UI tanpa kode dan beberapa pernyataan SQL di editor kode. Misalnya, Anda dapat menyetel parameter ini ke pernyataan SQL berikut untuk menghapus data usang sebelum tugas sinkronisasi dijalankan: Catatan Jika Anda mengonfigurasi beberapa pernyataan SQL, pernyataan tersebut tidak dijalankan dalam transaksi yang sama. | Tidak | Tidak ada nilai default |
postSql | Pernyataan SQL yang ingin Anda jalankan setelah tugas sinkronisasi dijalankan. Anda hanya dapat menjalankan satu pernyataan SQL di UI tanpa kode dan beberapa pernyataan SQL di editor kode. Misalnya, Anda dapat menyetel parameter ini ke pernyataan berikut untuk menambahkan timestamp setelah tugas sinkronisasi dijalankan: Catatan Jika Anda mengonfigurasi beberapa pernyataan SQL, pernyataan tersebut tidak dijalankan dalam transaksi yang sama. | 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 PolarDB-X 2.0 dan meningkatkan throughput. Jika Anda menyetel parameter ini ke nilai yang terlalu besar, kesalahan out of memory (OOM) mungkin terjadi selama sinkronisasi data. | Tidak | 256 |