Sumber data MySQL menyediakan saluran baca-tulis dua arah untuk menyinkronkan data dengan database MySQL melalui Data Integration.
Versi MySQL yang didukung
-
Baca dan tulis offline:
Mendukung MySQL 5.5.x, 5.6.x, 5.7.x, dan 8.0.x. Kompatibel dengan Amazon RDS for MySQL, Azure Database for MySQL, dan Amazon Aurora MySQL.
Sinkronisasi offline dapat membaca dari view.
-
Baca real-time:
Data Integration menggunakan langganan real-time untuk membaca data dari MySQL. Mendukung sinkronisasi real-time untuk versi MySQL 5.5.x, 5.6.x, 5.7.x, dan 8.0.x, tetapi tidak mendukung fitur baru MySQL 8.0 seperti functional index. Fitur ini juga kompatibel dengan Amazon RDS for MySQL, Azure Database for MySQL, dan Amazon Aurora MySQL.
PentingJika Anda perlu menyinkronkan data dari DRDS, jangan mengonfigurasinya sebagai sumber data MySQL. Sebagai gantinya, konfigurasikan langsung sebagai sumber data DRDS. Untuk petunjuknya, lihat Konfigurasi sumber data DRDS.
Batasan
Sinkronisasi real-time
-
Anda tidak dapat menyinkronkan data dari read-only instance MySQL yang menjalankan versi lebih lama dari 5.6.x.
-
Menyinkronkan tabel yang berisi functional index tidak didukung.
-
XA ROLLBACK tidak didukung.
Untuk transaksi dalam status XA PREPARE, sinkronisasi real-time menulis data ke tujuan. Jika perintah XA ROLLBACK dikeluarkan, sinkronisasi real-time tidak membatalkan data yang telah dipersiapkan. Untuk menangani skenario ini, Anda harus secara manual menghapus tabel dari tugas sinkronisasi real-time, lalu menambahkannya kembali untuk menyinkronkan ulang.
-
Format binary log server MySQL harus diatur ke ROW.
-
Sinkronisasi real-time tidak menyinkronkan penghapusan bertingkat (cascading deletes) pada tabel terkait.
-
Untuk database Amazon Aurora MySQL, Anda harus terhubung ke instans primary/writer Anda. Anda tidak dapat mengaktifkan fitur Binlog pada read replica Aurora MySQL, dan tugas sinkronisasi real-time memerlukan Binlog untuk pembaruan inkremental.
-
Untuk perubahan DDL online pada tabel MySQL, sinkronisasi real-time hanya mendukung penambahan kolom (Add Column) melalui Data Management Service (DMS).
-
Membaca stored procedure dari MySQL tidak didukung.
Sinkronisasi offline
-
Ketika Anda menggunakan plugin MySQL Reader untuk menyinkronkan beberapa tabel dari database ter-shard, Anda harus mengatur concurrency ke nilai yang lebih besar dari jumlah tabel agar pemisahan tabel (table splitting) aktif. Jika tidak, sistem membuat satu tugas per tabel.
-
Membaca stored procedure dari MySQL tidak didukung.
Tipe data yang didukung
Untuk daftar lengkap tipe data MySQL di setiap versi, lihat dokumentasi resmi MySQL. Tabel berikut mencantumkan status dukungan tipe data utama, menggunakan MySQL 8.0.x sebagai contoh.
|
Type |
Baca offline (MySQL Reader) |
Tulis offline (MySQL Writer) |
Baca real-time |
Tulis real-time |
|
TINYINT |
|
|
|
|
|
SMALLINT |
|
|
|
|
|
INTEGER |
|
|
|
|
|
BIGINT |
|
|
|
|
|
FLOAT |
|
|
|
|
|
DOUBLE |
|
|
|
|
|
DECIMAL/NUMERIC |
|
|
|
|
|
REAL |
|
|
|
|
|
VARCHAR |
|
|
|
|
|
JSON |
|
|
|
|
|
TEXT |
|
|
|
|
|
MEDIUMTEXT |
|
|
|
|
|
LONGTEXT |
|
|
|
|
|
VARBINARY |
|
|
|
|
|
BINARY |
|
|
|
|
|
TINYBLOB |
|
|
|
|
|
MEDIUMBLOB |
|
|
|
|
|
LONGBLOB |
|
|
|
|
|
ENUM |
|
|
|
|
|
SET |
|
|
|
|
|
BOOLEAN |
|
|
|
|
|
BIT |
|
|
|
|
|
DATE |
|
|
|
|
|
DATETIME |
|
|
|
|
|
TIMESTAMP |
|
|
|
|
|
TIME |
|
|
|
|
|
YEAR |
|
|
|
|
|
LINESTRING |
|
|
|
|
|
POLYGON |
|
|
|
|
|
MULTIPOINT |
|
|
|
|
|
MULTILINESTRING |
|
|
|
|
|
MULTIPOLYGON |
|
|
|
|
|
GEOMETRYCOLLECTION |
|
|
|
|
Ketika data disimpan dalam kolom DATE MySQL, MySQL secara otomatis menormalisasi nilai tanggal ke format yyyy-mm-dd. Misalnya, nilai tanggal sumber 20260423 dalam format yyyymmdd dikonversi menjadi 2026-04-23. Ini adalah mekanisme bawaan MySQL dan tidak bergantung pada konfigurasi tugas sinkronisasi DataWorks. Jika Anda perlu mempertahankan format aslinya, ubah tipe field tersebut menjadi VARCHAR di tabel tujuan.
Prasyarat
Persiapkan lingkungan MySQL Anda sebelum menambahkannya sebagai sumber data di DataWorks untuk memastikan tugas sinkronisasi data berjalan dengan benar.
Lengkapi prasyarat berikut.
Verifikasi versi MySQL
Data Integration hanya mendukung versi MySQL tertentu. Untuk informasi selengkapnya, lihat bagian Versi MySQL yang didukung. Periksa versi MySQL Anda dengan menjalankan perintah berikut:
SELECT version();
Konfigurasi izin akun
Kami menyarankan membuat akun MySQL khusus untuk akses sumber data DataWorks.
-
Opsional: Buat akun.
Untuk petunjuk detail, lihat Buat akun MySQL.
-
Berikan izin.
-
Batch
Dalam skenario sinkronisasi batch:
-
Untuk membaca data dari MySQL, akun harus memiliki izin baca (
SELECT) pada tabel yang ingin Anda sinkronkan. -
Untuk menulis data ke MySQL, akun harus memiliki izin tulis (
INSERT,DELETE, danUPDATE) pada tabel yang ingin Anda sinkronkan.
CatatanJika Anda hanya perlu membaca data dari MySQL untuk sinkronisasi tanpa menulis kembali data, Anda hanya perlu memberikan izin
SELECTkepada akun tersebut. IzinINSERT,DELETE, danUPDATEtidak diperlukan untuk sinkronisasi read-only. -
-
Real-time
Dalam skenario sinkronisasi real-time, akun harus memiliki izin
SELECT,REPLICATION SLAVE, danREPLICATION CLIENTpada database.
Anda dapat menjalankan perintah berikut untuk memberikan izin yang diperlukan. Atau, Anda dapat memberikan izin
SUPERkepada akun tersebut. Dalam perintah berikut, ganti'sync_account'dengan nama akun yang Anda buat.-- Opsional: Buat akun sinkronisasi yang dapat terhubung dari host mana pun ('%'). -- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'your_password'; -- Berikan izin yang diperlukan kepada akun sinkronisasi. GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync_account'@'%';Sintaks
*.*memberikan izin pada semua tabel di semua database. Anda juga dapat memberikan izin pada tabel tertentu di database tertentu. Misalnya, untuk memberikan izin pada tabeluserdi databasetest, jalankan perintah berikut:GRANT SELECT, REPLICATION CLIENT ON test.user TO 'sync_account'@'%';.CatatanIzin
REPLICATION SLAVEadalah izin global dan tidak dapat diberikan untuk database atau tabel tertentu. -
Aktifkan binlog MySQL (hanya untuk sinkronisasi real-time)
Data Integration melakukan sinkronisasi data inkremental real-time dengan berlangganan binlog MySQL. Anda harus mengaktifkan binlog MySQL sebelum mengonfigurasi tugas sinkronisasi di DataWorks.
-
Jika binlog sedang digunakan, database tidak dapat menghapusnya. Latensi tinggi pada tugas sinkronisasi real-time dapat menunda penghapusan binlog, yang berpotensi menghabiskan ruang disk. Kami menyarankan mengonfigurasi alert latensi untuk tugas Anda dan memantau ruang disk database.
-
Pertahankan binlog setidaknya selama 72 jam. Jika tugas gagal dan binlog tidak lagi tersedia, Anda tidak dapat mengatur ulang checkpoint ke posisi sebelum kegagalan, yang dapat menyebabkan kehilangan data. Dalam kasus ini, Anda harus menggunakan sinkronisasi batch untuk mengisi kembali data.
-
Periksa apakah binlog diaktifkan.
-
Jalankan pernyataan berikut untuk memeriksa apakah binlog diaktifkan.
SHOW variables LIKE "log_bin";Jika nilai yang dikembalikan adalah
ON, binlog diaktifkan. -
Untuk memeriksa status binlog pada database replika, jalankan pernyataan berikut.
SHOW variables LIKE "log_slave_updates";Jika nilai yang dikembalikan adalah
ON, binlog diaktifkan pada database replika.
Jika nilai yang dikembalikan tidak sesuai harapan:
-
Untuk MySQL open-source, lihat dokumentasi resmi MySQL untuk petunjuk mengaktifkan binlog.
-
Untuk RDS for MySQL, lihat Backup instans ApsaraDB RDS for MySQL untuk petunjuk mengaktifkan binlog.
-
Untuk PolarDB for MySQL, lihat Aktifkan atau nonaktifkan binary logging untuk petunjuk mengaktifkan binlog.
-
-
Periksa format binlog.
Jalankan pernyataan berikut untuk memeriksa format binlog.
SHOW variables LIKE "binlog_format";Kemungkinan nilai yang dikembalikan:
-
Nilai kembali ROW menunjukkan bahwa format binlog yang diaktifkan adalah
ROW. -
STATEMENT: Format binlog adalah
STATEMENT. -
MIXED: Format binlog adalah
MIXED.
PentingSinkronisasi real-time DataWorks hanya mendukung format ROW. Jika nilai yang dikembalikan bukan ROW, Anda harus mengubah pengaturan
binlog_format. -
-
Periksa apakah full row image dicatat.
Jalankan pernyataan berikut untuk memeriksa pengaturan row image.
SHOW variables LIKE "binlog_row_image";Kemungkinan nilai yang dikembalikan:
-
FULL: Full row image dicatat.
-
MINIMAL: Minimal row image dicatat, bukan full row image.
PentingSinkronisasi real-time DataWorks hanya mendukung server MySQL yang telah mengaktifkan full row image untuk binlog. Jika nilai yang dikembalikan bukan FULL, Anda harus mengubah pengaturan binlog_row_image.
-
Konfigurasi izin baca binlog OSS
Ketika Anda menambahkan sumber data MySQL, jika Anda mengatur Configuration Mode ke ApsaraDB for RDS dan instans RDS for MySQL Anda berada di wilayah yang sama dengan ruang kerja DataWorks Anda, Anda dapat mengaktifkan Baca binlog dari OSS. DataWorks kemudian mengambil binlog dari OSS jika akses langsung ke binlog RDS for MySQL gagal, sehingga mencegah gangguan pada tugas sinkronisasi real-time.
Jika Anda menggunakan Alibaba Cloud RAM User atau Alibaba Cloud RAM Role untuk identitas akses binlog OSS, Anda juga harus memberikan izin yang diperlukan.
-
Pengguna RAM
-
Login ke konsol Resource Access Management (RAM), buka halaman Pengguna, lalu temukan Pengguna RAM target.
-
Pada kolom Operations, klik Attach Policy.
-
Konfigurasi parameter berikut dan klik OK.
-
Ruang Lingkup: Akun Alibaba Cloud
-
Permission Policy: kebijakan sistem
-
Policy Name:
AliyunDataWorksAccessingRdsOSSBinlogPolicy
-
-
-
Peran RAM
-
Login ke konsol Resource Access Management (RAM) dan buat peran RAM. Untuk informasi selengkapnya, lihat Buat peran RAM untuk akun Alibaba Cloud tepercaya.
Parameter utama:
-
Pilih entitas tepercaya: Akun Alibaba Cloud
-
Pilih akun: Akun Alibaba Cloud lain. Masukkan ID akun Alibaba Cloud yang memiliki ruang kerja DataWorks.
-
Role name: Masukkan nama kustom.
-
-
Berikan izin kepada peran RAM. Untuk informasi selengkapnya, lihat Berikan izin kepada peran RAM.
Parameter utama:
-
Permission Policy: kebijakan sistem
-
Policy Name:
AliyunDataWorksAccessingRdsOSSBinlogPolicy
-
-
Ubah kebijakan kepercayaan peran RAM. Untuk informasi selengkapnya, lihat Edit kebijakan kepercayaan peran RAM.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "di.dataworks.aliyuncs.com", "dataworks.aliyuncs.com" ] } } ], "Version": "1" }
-
Tambahkan sumber data
Mode instans Alibaba Cloud
Jika database MySQL Anda berjalan pada instans RDS Alibaba Cloud, kami menyarankan membuat sumber data dalam mode instans Alibaba Cloud. Konfigurasikan parameter sebagai berikut:
|
Parameter |
Deskripsi |
|
Data Source Name |
Nama sumber data harus unik dalam ruang kerja. Kami menyarankan menggunakan nama yang secara jelas mengidentifikasi bisnis dan lingkungan, misalnya, |
|
Connection Mode |
Pilih mode instans Alibaba Cloud. Untuk informasi selengkapnya tentang mode koneksi, lihat Skenario 1: Mode Instans (Akun Cloud Saat Ini) dan Skenario 2: Mode Instans (Akun Cloud Lain). |
|
Alibaba Cloud Account |
Pilih akun cloud tempat instans tersebut berada. Jika Anda memilih Another Alibaba Cloud Account, Anda harus mengonfigurasi izin lintas akun. Untuk informasi selengkapnya, lihat Otorisasi Lintas Akun (RDS, Hive, atau Kafka). Jika Anda memilih akun cloud lain, berikan informasi berikut:
|
|
Region |
Wilayah instans tersebut. |
|
Instance |
Pilih nama instance yang akan dihubungkan. |
|
Standby library settings |
Jika instans RDS Anda memiliki instans read-only (instans cadangan), Anda dapat mengonfigurasi tugas untuk membaca data darinya. Hal ini mencegah operasi baca mengganggu performa instans utama. |
|
Instance Address |
Setelah memilih instans yang benar, klik Dapatkan Alamat Terbaru untuk melihat informasi seperti alamat publik/pribadi, VPC, dan vSwitch-nya. |
|
Database |
Nama database tempat sumber data terhubung. Pastikan pengguna yang ditentukan memiliki izin yang diperlukan untuk mengakses database ini. |
|
Corresponding access identity |
Pilih sumber kredensial yang digunakan DataWorks untuk mengakses MySQL. Opsi berikut didukung:
|
|
Dukungan pembacaan binlog OSS |
Jika diaktifkan, DataWorks mencoba mengambil binlog dari OSS ketika binlog RDS tidak dapat diakses. Hal ini mencegah gangguan pada tugas sinkronisasi real-time. Untuk informasi selengkapnya, lihat Konfigurasi otorisasi untuk membaca binlog OSS. Berdasarkan konfigurasi otorisasi Anda, atur identitas akses binlog OSS. |
|
Authentication Method |
Pilih tanpa autentikasi atau autentikasi SSL. Jika Anda memilih autentikasi SSL, pastikan fitur tersebut juga diaktifkan pada instans. Siapkan file sertifikat dan unggah ke Authentication File Management. |
|
Version |
Login ke server MySQL dan jalankan kueri |
Mode string koneksi
Anda juga dapat menggunakan mode string koneksi untuk membuat sumber data agar lebih fleksibel. Konfigurasikan parameter sebagai berikut:
|
Parameter |
Deskripsi |
|
Data Source Name |
Nama sumber data harus unik dalam ruang kerja. Kami menyarankan menggunakan nama yang secara jelas mengidentifikasi bisnis dan lingkungan, misalnya, |
|
Connection Mode |
Pilih User-created Data Store with Public IP Addresses. Dalam mode ini, URL JDBC digunakan untuk terhubung ke database. |
|
Pratinjau string koneksi |
Setelah memasukkan alamat koneksi dan nama database, DataWorks secara otomatis menghasilkan pratinjau URL JDBC. |
|
Connection Address |
Alamat host: Masukkan alamat akses aktual server database. Pastikan alamat tersebut dapat diakses jaringan dari grup resource DataWorks. Skenario umum meliputi:
Jika database adalah instans RDS Alibaba Cloud, Anda dapat menemukan alamat tersebut di halaman Database Connection dalam detail instans. Nomor port: Port database. Nilai default adalah 3306. |
|
Database Name |
Nama database tempat sumber data terhubung. Pastikan pengguna yang ditentukan memiliki izin yang diperlukan untuk mengakses database ini. |
|
Corresponding access identity |
Pilih sumber kredensial yang digunakan DataWorks untuk mengakses MySQL. Opsi berikut didukung:
|
|
Version |
Login ke server MySQL dan jalankan kueri |
|
Authentication Method |
Pilih tanpa autentikasi atau autentikasi SSL. Jika Anda memilih autentikasi SSL, pastikan fitur tersebut juga diaktifkan pada instans. Siapkan file sertifikat dan unggah ke Authentication File Management. |
|
Advanced Parameters |
Parameter: Pilih parameter yang didukung dari daftar drop-down, misalnya, Nilai: Masukkan nilai yang sesuai untuk parameter yang dipilih, misalnya, URL JDBC kemudian secara otomatis diperbarui menjadi: Sebagai contoh, jika Anda mengalami error terkait zona waktu atau perlu menentukan zona waktu, klik Add Property, pilih |
Pastikan grup resource DataWorks dapat terhubung ke database. Jika tidak, tugas selanjutnya akan gagal. Konfigurasi jaringan bergantung pada lingkungan database dan mode koneksi sumber data. Untuk informasi selengkapnya, lihat Uji konektivitas.
Alur kerja sinkronisasi MySQL
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Konfigurasi sinkronisasi offline tabel tunggal
-
Lihat Konfigurasi mode wizard dan Konfigurasi mode skrip untuk prosedurnya.
-
Lihat Lampiran: Contoh skrip MySQL dan referensi parameter untuk semua parameter mode skrip dan contoh skrip.
Konfigurasi sinkronisasi real-time tabel tunggal
Lihat Konfigurasi tugas sinkronisasi real-time (Lama) untuk prosedurnya.
Konfigurasi sinkronisasi database penuh
Lihat Konfigurasi tugas sinkronisasi real-time database penuh untuk prosedurnya.
FAQ
Untuk masalah umum Data Integration lainnya, lihat FAQ Data Integration.
Lampiran: Contoh skrip MySQL dan 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 selengkapnya, lihat Konfigurasi mode skrip. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Contoh skrip Reader
Contoh berikut menunjukkan konfigurasi untuk satu tabel dalam satu database dan untuk tabel ter-shard.
Komentar dalam contoh JSON berikut hanya untuk keperluan demonstrasi. Hapus komentar sebelum menjalankan skrip.
-
Tabel tunggal dalam satu database
{ "type": "job", "version": "2.0",// Nomor versi. "steps": [ { "stepType": "mysql",// Nama konektor. "parameter": { "column": [// Kolom yang akan dibaca. "id" ], "connection": [ { "querySql": [ "select a,b from join1 c join join2 d on c.id = d.id;" ], "datasource": ""// Nama sumber data. } ], "where": "",// Kondisi filter. "splitPk": "",// Kunci shard. "encoding": "UTF-8"// Format encoding. }, "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,// Atur ke true untuk mengaktifkan pembatasan laju. Jika false, pembatasan laju dinonaktifkan dan parameter 'mbps' diabaikan. "concurrent": 1,// Jumlah thread konkuren. "mbps": "12"// Batas laju. 1 mbps = 1 MB/s. } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Tabel ter-shard
CatatanMySQL Reader dapat membaca data dari beberapa tabel MySQL yang memiliki skema yang sama. Dalam konteks ini, "tabel ter-shard" mengacu pada skenario di mana data dari beberapa tabel sumber ditulis ke satu tabel tujuan. Untuk menyinkronkan tabel ter-shard di tingkat database, buat tugas di Data Integration dan pilih fitur sharding database penuh.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "indexes": [ { "type": "unique", "column": [ "id" ] } ], "envType": 0, "useSpecialSecret": false, "column": [ "id", "buyer_name", "seller_name", "item_id", "city", "zone" ], "tableComment": "Tabel pesanan uji", "connection": [ { "datasource": "rds_dataservice", "table": [ "rds_table" ] }, { "datasource": "rds_workshop_log", "table": [ "rds_table" ] } ], "where": "", "splitPk": "id", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": {}, "name": "Writer", "category": "writer" }, { "name": "Processor", "stepType": null, "category": "processor", "copies": 1, "parameter": { "nodes": [], "edges": [], "groups": [], "version": "2.0" } } ], "setting": { "executeMode": null, "errorLimit": { "record": "" }, "speed": { "concurrent": 2, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Parameter Reader
|
Parameter |
Deskripsi |
Wajib |
Default |
|
datasource |
Nama sumber data yang akan dibaca. Harus sesuai dengan sumber data yang dikonfigurasi di editor kode. |
Ya |
Tidak ada |
|
table |
Nama tabel sumber yang akan disinkronkan. Tugas Data Integration hanya dapat membaca data dari satu tabel logis. Contoh berikut menunjukkan cara menggunakan pola lanjutan untuk parameter
Catatan
Tugas membaca kolom yang ditentukan dalam parameter |
Ya |
Tidak ada |
|
column |
Array JSON yang menentukan kolom yang akan dibaca dari tabel sumber. Untuk memilih semua kolom, gunakan
|
Ya |
Tidak ada |
|
splitPk |
Ketika MySQL Reader mengekstrak data, menentukan parameter
|
Tidak |
Tidak ada |
|
splitFactor |
Faktor sharding. Parameter ini mengontrol berapa banyak shard yang dibuat. Jika concurrency diaktifkan, data dibagi menjadi Catatan
Rentang yang direkomendasikan: 1 hingga 100. Nilai yang terlalu besar dapat menyebabkan error kehabisan memori (OOM). |
Tidak |
5 |
|
where |
Kondisi filter. Dalam skenario tipikal, untuk hanya menyinkronkan data hari ini, Anda dapat mengatur kondisi
|
Tidak |
Tidak ada |
|
querySql (Hanya tersedia di editor kode; tidak didukung di antarmuka tanpa kode.) |
Dalam beberapa kasus penggunaan, parameter Catatan
Parameter |
Tidak |
Tidak ada |
|
useSpecialSecret |
Menentukan apakah akan menggunakan password masing-masing sumber data individu ketika beberapa sumber data sumber dikonfigurasi. Nilai yang valid:
Jika beberapa sumber data sumber memiliki username dan password yang berbeda, atur parameter ini ke true untuk menggunakan kredensial masing-masing sumber data. |
Tidak |
false |
Contoh skrip Writer
{
"type": "job",
"version": "2.0",// Nomor versi.
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "mysql",// Nama konektor.
"parameter": {
"postSql": [],// Pernyataan SQL yang dijalankan setelah tugas.
"datasource": "",// Nama sumber data.
"column": [// Kolom yang akan ditulis.
"id",
"value"
],
"writeMode": "insert",// Mode tulis. Nilai yang valid: insert, replace, dan update.
"batchSize": 1024,// Jumlah catatan per batch.
"table": "",// Nama tabel tujuan.
"nullMode": "skipNull",// Kebijakan untuk menangani nilai NULL.
"skipNullColumn": [// Kolom yang akan dilewati jika bernilai NULL.
"id",
"value"
],
"preSql": [
"delete from XXX;"// Pernyataan SQL yang dijalankan sebelum tugas.
]
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {// Jumlah maksimum catatan data kotor yang diizinkan.
"record": "0"
},
"speed": {
"throttle": true,// Atur ke true untuk mengaktifkan pembatasan laju. Jika false, pembatasan laju dinonaktifkan dan parameter 'mbps' diabaikan.
"concurrent": 1,// Jumlah thread konkuren.
"mbps": "12"// Batas laju dalam MB/s untuk mencegah tekanan I/O berlebihan pada database. 1 mbps = 1 MB/s.
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parameter Writer
|
Parameter |
Deskripsi |
Wajib |
Default |
|
datasource |
Nama sumber data tujuan. Harus sesuai dengan sumber data yang dikonfigurasi di editor kode. |
Ya |
Tidak ada |
|
table |
Nama tabel tujuan. |
Ya |
Tidak ada |
|
writeMode |
Mode tulis. Opsi yang didukung sesuai dengan pernyataan MySQL
|
Tidak |
insert |
|
nullMode |
Menentukan kebijakan untuk menangani nilai NULL dari sumber. Nilai yang valid:
Penting
Ketika dikonfigurasi sebagai skipNull, tugas secara dinamis membuat pernyataan SQL untuk menulis data guna mendukung nilai default di tujuan. Hal ini meningkatkan jumlah operasi FLUSH dan mengurangi kecepatan sinkronisasi. Dalam skenario terburuk, tugas akan melakukan FLUSH sekali untuk setiap catatan data. |
Tidak |
writeNull |
|
skipNullColumn |
Ketika nullMode diatur ke skipNull, kolom yang ditentukan oleh parameter ini tidak dipaksa menjadi Format: |
Tidak |
Semua kolom yang dikonfigurasi untuk tugas. |
|
column |
Kolom tujuan yang akan ditulis, ditentukan sebagai array JSON string. Contoh: |
Ya |
Tidak ada |
|
preSql |
Satu atau beberapa pernyataan SQL yang dieksekusi sebelum tugas sinkronisasi dimulai. Antarmuka tanpa kode hanya mendukung satu pernyataan, sedangkan editor kode mendukung beberapa. Misalnya, Anda dapat menghapus data yang ada dari tabel: Catatan
Transaksi tidak didukung untuk beberapa pernyataan SQL. |
Tidak |
Tidak ada |
|
postSql |
Satu atau beberapa pernyataan SQL yang dieksekusi setelah tugas sinkronisasi selesai. Antarmuka tanpa kode hanya mendukung satu pernyataan, sedangkan editor kode mendukung beberapa. Misalnya, Anda dapat menambahkan kolom timestamp dengan menggunakan pernyataan berikut: Catatan
Transaksi tidak didukung untuk beberapa pernyataan SQL. |
Tidak |
Tidak ada |
|
batchSize |
Jumlah catatan per batch tulis. Nilai yang lebih besar mengurangi round-trip jaringan dan dapat meningkatkan throughput, tetapi mengatur nilai terlalu tinggi dapat menyebabkan error kehabisan memori (OOM). |
Tidak |
256 |
|
updateColumn |
Ketika |
Tidak |
Tidak ada |