Sumber data MySQL menyediakan saluran dua arah untuk membaca dari dan menulis ke MySQL. Topik ini menjelaskan kemampuan sinkronisasi data DataWorks untuk MySQL.
Versi MySQL yang didukung
Baca dan tulis offline:
Mendukung MySQL 5.5.x, 5.6.x, 5.7.x, dan 8.0.x, serta kompatibel dengan Amazon RDS for MySQL, Azure MySQL, dan Amazon Aurora MySQL.
Sinkronisasi offline mendukung pembacaan data dari view.
Baca real-time:
Data Integration membaca data MySQL secara real-time dengan berlangganan log biner MySQL. Sinkronisasi real-time didukung untuk MySQL versi 5.5.x, 5.6.x, 5.7.x, dan 8.0.x. Untuk versi 8.0.x, semua fitur didukung kecuali fitur baru seperti functional indexes. Solusi ini kompatibel dengan Amazon RDS for MySQL, Azure MySQL, dan Amazon Aurora MySQL.
PentingUntuk menyinkronkan data dari database DRDS for MySQL, jangan mengonfigurasinya sebagai sumber data MySQL. Untuk informasi selengkapnya, lihat Konfigurasi sumber data DRDS.
Batasan
Baca real-time
Sinkronisasi data dari instans hanya baca MySQL tidak didukung.
Menyinkronkan tabel yang berisi functional indexes tidak didukung.
XA ROLLBACK tidak didukung.
XA ROLLBACK tidak didukung. Untuk data dalam transaksi yang berada dalam status XA PREPARE, sinkronisasi real-time menuliskan data tersebut ke tujuan. Jika terjadi XA ROLLBACK, sinkronisasi real-time tidak membatalkan data ini. Untuk menangani skenario ini, Anda harus menghapus tabel secara manual dari tugas sinkronisasi real-time, lalu menambahkannya kembali untuk memulai ulang sinkronisasi.
Hanya format ROW untuk binary logging server MySQL yang didukung.
Sinkronisasi real-time tidak menyinkronkan catatan di tabel terkait yang dihapus oleh operasi cascade delete.
Untuk database Amazon Aurora MySQL, Anda harus terhubung ke instans database utama atau writer Anda. Hal ini karena AWS tidak mengizinkan Anda mengaktifkan fitur binary logging pada read replica Aurora MySQL. Tugas sinkronisasi real-time memerlukan log biner untuk melakukan pembaruan inkremental.
Sinkronisasi real-time operasi DDL online hanya mendukung penambahan kolom (Add Column) ke tabel MySQL menggunakan Data Management DMS.
Membaca stored procedures dari MySQL tidak didukung.
Baca offline
Ketika plugin MySQL Reader menyinkronkan data dari beberapa tabel dalam database ter-shard, jumlah tugas ter-shard secara default sama dengan jumlah tabel. Untuk mengaktifkan sharding pada satu tabel, Anda harus mengatur jumlah tugas konkuren ke nilai yang lebih besar dari jumlah tabel.
Membaca stored procedures dari MySQL tidak didukung.
Tipe data yang didukung
Untuk daftar lengkap tipe data setiap versi MySQL, lihat dokumentasi resmi MySQL. Tabel berikut mencantumkan tipe data utama yang didukung di MySQL 8.0.x sebagai contoh.
Tipe data | Baca offline (MySQL Reader) | Tulis offline (MySQL Writer) | Baca real-time | Penulisan 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 |
Persiapan
Sebelum mengonfigurasi sumber data MySQL di DataWorks, lengkapi persiapan yang dijelaskan di bagian ini untuk memastikan tugas selanjutnya berjalan sesuai harapan.
Bagian berikut menjelaskan persiapan yang diperlukan untuk menyinkronkan data MySQL.
Konfirmasi versi MySQL
Data Integration memiliki persyaratan versi tertentu untuk MySQL. Untuk informasi selengkapnya, lihat bagian Versi MySQL yang didukung. Anda dapat menjalankan pernyataan berikut di database MySQL Anda untuk memeriksa versi saat ini.
SELECT version();Konfigurasi izin akun
Buat akun MySQL khusus untuk DataWorks mengakses sumber data. Prosedurnya sebagai berikut.
Opsional: Buat akun.
Untuk informasi selengkapnya, lihat Buat akun MySQL.
Konfigurasi izin.
Luring
Sinkronisasi Offline
Untuk membaca data dari MySQL, akun harus memiliki izin
SELECTpada tabel target.Untuk menulis data ke MySQL, akun harus memiliki izin
INSERT,DELETE, danUPDATEpada tabel target.
Sinkronisasi real-time
Untuk sinkronisasi real-time, akun harus memiliki izin
SELECT,REPLICATION SLAVE, danREPLICATION CLIENTpada database.
Anda dapat menjalankan perintah berikut untuk memberikan izin kepada akun, atau Anda dapat langsung memberikan izin
SUPER. Dalam pernyataan berikut, ganti'sync_account'dengan akun yang Anda buat.-- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password'; //Buat akun sinkronisasi, atur kata sandi, dan izinkan login ke database dari host mana pun. Tanda persen (%) menunjukkan host apa pun. GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync_account'@'%'; // Berikan izin SELECT, REPLICATION SLAVE, dan REPLICATION CLIENT pada database ke akun sinkronisasi.*.*memberikan izin yang ditentukan pada semua tabel di semua database. Anda juga dapat memberikan izin pada tabel tertentu di database target. Misalnya, untuk memberikan izin `SELECT` dan `REPLICATION CLIENT` pada tabel user di database test, jalankan pernyataan berikut:GRANT SELECT, REPLICATION CLIENT ON test.user TO 'sync_account'@'%';.CatatanREPLICATION SLAVEadalah izin global. Anda tidak dapat memberikan izin ini pada tabel tertentu di database target.
Aktifkan binary logging MySQL (hanya untuk sinkronisasi real-time)
Data Integration melakukan sinkronisasi real-time data inkremental dengan berlangganan log biner MySQL. Sebelum mengonfigurasi tugas sinkronisasi di DataWorks, Anda harus mengaktifkan layanan binary logging MySQL. Prosedurnya sebagai berikut:
Jika log biner sedang digunakan, database tidak dapat menghapusnya. Jika tugas sinkronisasi real-time mengalami latensi tinggi, log biner di database sumber mungkin disimpan dalam waktu lama. Konfigurasi peringatan latensi untuk tugas Anda dan pantau disk space database Anda.
Anda harus menyimpan log biner setidaknya selama 72 jam. Hal ini mencegah kehilangan data jika tugas gagal dan tidak dapat diatur ulang ke offset sebelumnya karena log biner telah dihapus. Dalam kasus ini, Anda harus melakukan sinkronisasi offline penuh untuk mengisi kembali data.
Periksa apakah binary logging diaktifkan.
Jalankan pernyataan berikut untuk memeriksa apakah binary logging diaktifkan.
SHOW variables LIKE "log_bin";Jika perintah mengembalikan ON, binary logging diaktifkan.
Jika Anda menyinkronkan data dari database sekunder, Anda juga dapat menjalankan pernyataan berikut untuk memeriksa apakah binary logging diaktifkan.
SHOW variables LIKE "log_slave_updates";Jika perintah mengembalikan ON, binary logging diaktifkan pada database sekunder.
Jika hasilnya tidak sesuai:
Untuk MySQL open source, lihat dokumentasi resmi MySQL untuk mengaktifkan binary logging.
Untuk ApsaraDB RDS for MySQL, lihat cadangan log RDS for MySQL untuk mengaktifkan binary logging.
Untuk PolarDB for MySQL, lihat Aktifkan binary logging untuk mengaktifkan binary logging.
Periksa format log biner.
Jalankan pernyataan berikut untuk memeriksa format log biner.
SHOW variables LIKE "binlog_format";Nilai pengembalian yang mungkin dijelaskan sebagai berikut:
ROW: Format log biner adalah ROW.
STATEMENT: Format log biner adalah STATEMENT.
MIXED: Format log biner adalah MIXED.
PentingSinkronisasi real-time DataWorks hanya mendukung format ROW untuk binary logging server MySQL. Jika perintah mengembalikan nilai selain ROW, Anda harus memodifikasi format log biner.
Periksa apakah full row image logging diaktifkan.
Jalankan pernyataan berikut untuk memeriksa apakah full row image logging diaktifkan.
SHOW variables LIKE "binlog_row_image";Nilai pengembalian yang mungkin dijelaskan sebagai berikut:
FULL: Full row image logging diaktifkan untuk log biner.
MINIMAL: Minimal row image logging diaktifkan untuk log biner. Full row image logging tidak diaktifkan.
PentingSinkronisasi real-time DataWorks hanya mendukung server MySQL yang mengaktifkan full row image logging. Jika perintah mengembalikan nilai selain FULL, Anda harus memodifikasi konfigurasi binlog_row_image.
Konfigurasi otorisasi untuk membaca log biner dari OSS
Saat menambahkan sumber data MySQL, jika Anda mengatur Configuration Mode ke Alibaba Cloud Instance Mode dan instans RDS for MySQL berada di wilayah yang sama dengan ruang kerja DataWorks, Anda dapat mengaktifkan Enable Binary Log Reading from OSS. Setelah mengaktifkan fitur ini, jika DataWorks tidak dapat mengakses log biner RDS, sistem akan mencoba mendapatkan log biner dari OSS. Hal ini mencegah tugas sinkronisasi real-time terganggu.
Jika Anda mengatur Identity to Access Binary Logs from OSS ke Alibaba Cloud RAM User atau Alibaba Cloud RAM Role, Anda juga harus mengonfigurasi izin akun seperti dijelaskan di bawah ini.
Pengguna RAM Alibaba Cloud
Login ke Konsol RAM dan temukan pengguna RAM yang ingin Anda berikan izin.
Pada kolom Actions, klik Add Permissions.
Konfigurasi parameter kunci berikut dan klik Grant permissions.
Atur Resource Scope ke Tingkat Akun.
Atur Policy ke Kebijakan Sistem.
Atur Policy Name ke
AliyunDataWorksAccessingRdsOSSBinlogPolicy.

Peran RAM Alibaba Cloud
Login ke Konsol RAM dan buat peran RAM. Untuk informasi selengkapnya, lihat Buat peran RAM untuk akun Alibaba Cloud tepercaya.
Parameter kunci:
Atur Principal Type ke Akun Alibaba Cloud.
Atur Principal Name ke Akun Alibaba Cloud Lain dan masukkan ID akun Alibaba Cloud yang memiliki ruang kerja DataWorks.
Atur Role Name ke nama kustom.
Berikan izin kepada peran RAM yang dibuat. Untuk informasi selengkapnya, lihat Berikan izin kepada peran RAM.
Parameter kunci:
Atur Policy ke Kebijakan Sistem.
Atur Policy Name ke
AliyunDataWorksAccessingRdsOSSBinlogPolicy.
Modifikasi kebijakan kepercayaan untuk peran RAM yang dibuat. Untuk informasi selengkapnya, lihat Modifikasi kebijakan kepercayaan peran RAM.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<Alibaba_Cloud_account_ID_of_the_DataWorks_user>@di.dataworks.aliyuncs.com", "<Alibaba_Cloud_account_ID_of_the_DataWorks_user>@dataworks.aliyuncs.com" ] } } ], "Version": "1" }
Tambahkan sumber data
Mode instans Alibaba Cloud
Jika database MySQL Anda adalah instans RDS Alibaba Cloud, Anda dapat membuat sumber data dalam mode instans Alibaba Cloud. Tabel berikut menjelaskan parameter-parameternya:
Parameter | Deskripsi |
Nama Sumber Data | Nama sumber data. Nama harus unik dalam ruang kerja. Gunakan nama yang mengidentifikasi bisnis dan lingkungan, seperti |
Mode Konfigurasi | Pilih mode instans Alibaba Cloud. Untuk informasi selengkapnya, lihat Skenario 1: Mode instans (akun Alibaba Cloud saat ini) dan Skenario 2: Mode instans (akun Alibaba Cloud lain). |
Akun Alibaba Cloud | Pilih akun yang memiliki instans. Jika Anda memilih Other Alibaba Cloud Account, Anda harus mengonfigurasi izin cross-account. Untuk informasi selengkapnya, lihat Otorisasi cross-account (RDS, Hive, atau Kafka). Jika Anda memilih Akun Alibaba Cloud Lain, Anda harus menentukan informasi berikut:
|
Wilayah | Wilayah tempat instans berada. |
Instance | Nama instans yang ingin Anda hubungkan. |
Konfigurasi Instans Sekunder | Jika sumber data memiliki instans hanya baca (read replica), Anda dapat memilih read replica untuk operasi baca saat mengonfigurasi tugas. Hal ini mencegah gangguan pada database utama dan tidak memengaruhi kinerjanya. |
Alamat Instans | Setelah memilih instans yang benar, klik Dapatkan Titik Akhir Terbaru untuk melihat titik akhir publik atau privat, VPC, dan vSwitch instans. |
Database | Nama database yang perlu diakses oleh sumber data. Pastikan pengguna yang ditentukan memiliki izin untuk mengakses database. |
Username/Password | Username dan password akun database MySQL. Jika Anda menggunakan instans RDS, Anda dapat membuat dan mengelola akun di bagian Account Management instans. |
Aktifkan Pembacaan Log Biner dari OSS | Jika Anda mengaktifkan fitur ini, ketika DataWorks tidak dapat mengakses log biner RDS, sistem akan mencoba mendapatkan log biner dari OSS. Hal ini mencegah tugas sinkronisasi real-time terganggu. Untuk informasi selengkapnya tentang konfigurasi, lihat Konfigurasi otorisasi untuk membaca log biner dari OSS. Kemudian, atur OSS Binlog Access Identity berdasarkan konfigurasi otorisasi. |
Metode Autentikasi | Anda dapat memilih Tanpa Autentikasi atau Autentikasi SSL. Jika Anda memilih Autentikasi SSL, autentikasi SSL harus diaktifkan pada instans itu sendiri. Siapkan file sertifikat dan unggah ke Certificate File Management. |
Versi | Anda dapat login ke server MySQL dan menjalankan perintah `SELECT VERSION()` untuk melihat nomor versi. |
Mode string koneksi
Anda juga dapat membuat sumber data dalam mode string koneksi untuk fleksibilitas yang lebih besar. Tabel berikut menjelaskan parameter-parameternya:
Parameter | Deskripsi |
Nama Sumber Data | Nama sumber data. Nama harus unik dalam ruang kerja. Gunakan nama yang mengidentifikasi bisnis dan lingkungan, seperti |
Mode Konfigurasi | Pilih Connection String Mode. Mode ini menghubungkan ke database menggunakan URL JDBC. |
Pratinjau String Koneksi JDBC | Setelah Anda memasukkan titik akhir dan nama database, DataWorks secara otomatis menggabungkannya menjadi URL JDBC untuk Anda pratinjau. |
Alamat Koneksi | Host IP: Alamat IP atau nama domain host database. Jika database adalah instans RDS Alibaba Cloud, Anda dapat melihat titik akhir di halaman produk instans. Port: Port database. Nilai default adalah 3306. |
Nama Database | Nama database yang perlu diakses oleh sumber data. Pastikan pengguna yang ditentukan memiliki izin untuk mengakses database. |
Username/Password | Username dan password akun database MySQL. Jika Anda menggunakan instans RDS, Anda dapat membuat dan mengelola akun di bagian Account Management instans. |
Versi | Anda dapat login ke server MySQL dan menjalankan perintah `SELECT VERSION()` untuk melihat nomor versi. |
Metode Autentikasi | Anda dapat memilih Tanpa Autentikasi atau Autentikasi SSL. Jika Anda memilih Autentikasi SSL, autentikasi SSL harus diaktifkan pada instans itu sendiri. Siapkan file sertifikat dan unggah ke Authentication File Management. |
Parameter Lanjutan | Parameter: Klik daftar drop-down parameter dan pilih nama parameter yang didukung, seperti connectTimeout. Nilai: Masukkan nilai untuk parameter yang dipilih, seperti 3000. URL kemudian diperbarui secara otomatis menjadi: jdbc:mysql://192.168.90.28:3306/test?connectTimeout=50000 |
Anda harus memastikan kelompok sumber daya dapat terhubung ke sumber data. Jika tidak, tugas selanjutnya tidak dapat dijalankan. Konfigurasi jaringan yang diperlukan tergantung pada lingkungan jaringan dan mode koneksi sumber data Anda. Untuk informasi selengkapnya, lihat Uji konektivitas.
Kembangkan tugas sinkronisasi data: Panduan proses sinkronisasi MySQL
Untuk informasi tentang titik masuk dan prosedur mengonfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Panduan mengonfigurasi tugas sinkronisasi offline untuk satu tabel
Untuk instruksi, lihat Konfigurasi tugas sinkronisasi offline di antarmuka tanpa kode dan Konfigurasi tugas sinkronisasi offline di editor kode.
Untuk daftar lengkap parameter dan contoh skrip untuk editor kode, lihat Lampiran: Contoh skrip MySQL dan deskripsi parameter.
Panduan mengonfigurasi tugas sinkronisasi real-time untuk satu tabel
Untuk instruksi, lihat Konfigurasi tugas sinkronisasi real-time di DataStudio.
Panduan mengonfigurasi tugas sinkronisasi tingkat database: offline, penuh dan inkremental (real-time), serta ter-shard (real-time)
Untuk instruksi, lihat Konfigurasi tugas sinkronisasi di Data Integration.
FAQ
Untuk informasi selengkapnya tentang masalah umum lainnya di Data Integration, lihat FAQ tentang Data Integration.
Lampiran: Contoh skrip MySQL 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 selengkapnya, 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.
Contoh skrip Reader
Bagian ini memberikan contoh konfigurasi untuk satu tabel dalam satu database dan untuk tabel ter-shard:
Komentar dalam contoh JSON berikut hanya untuk tujuan demonstrasi. Anda harus menghapus komentar saat mengonfigurasi skrip.
Satu tabel dalam satu database
{ "type": "job", "version": "2.0",// Nomor versi. "steps": [ { "stepType": "mysql",// Nama plugin. "parameter": { "column": [// Nama kolom. "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 catatan error yang diizinkan. }, "speed": { "throttle": true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, dan laju transfer data tidak dibatasi. Jika throttle diatur ke true, laju transfer data dibatasi. "concurrent": 1,// Jumlah tugas konkuren. "mbps": "12"// Laju transfer data maksimum. 1 mbps = 1 MB/s. } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }Tabel ter-shard
CatatanSharding memungkinkan MySQL Reader memilih beberapa tabel MySQL yang memiliki skema yang sama. Dalam konteks ini, sharding berarti menulis data dari beberapa tabel sumber MySQL ke satu tabel tujuan. Untuk mengonfigurasi sharding tingkat database, Anda dapat membuat tugas di Data Integration dan memilih fitur sharding tingkat database.
{ "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 coba", "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 skrip Reader
Parameter | Deskripsi | Wajib | Nilai default |
datasource | Nama sumber data. Editor kode mendukung penambahan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang ditambahkan. | Ya | Tidak ada |
table | Nama tabel dari mana data akan disinkronkan. Tugas integrasi data hanya dapat membaca data dari satu tabel. Contoh berikut menunjukkan penggunaan lanjutan parameter table untuk mengonfigurasi rentang:
Catatan Tugas membaca semua tabel yang cocok. Secara khusus, tugas membaca kolom yang ditentukan oleh parameter column di tabel-tabel ini. Jika tabel atau kolom tidak ada, tugas gagal. | Ya | Tidak ada |
column | Kumpulan nama kolom yang akan disinkronkan dari tabel yang dikonfigurasi. Gunakan array JSON untuk menggambarkan informasi field. Secara default, semua kolom dikonfigurasi, misalnya, [*].
| Ya | Tidak ada |
splitPk | Saat MySQL Reader mengekstrak data, menentukan parameter splitPk melakukan sharding data berdasarkan field yang diwakili oleh splitPk. Hal ini memungkinkan sinkronisasi data berjalan sebagai tugas konkuren, yang meningkatkan efisiensi sinkronisasi.
| Tidak | Tidak ada |
splitFactor | Faktor sharding. Anda dapat mengonfigurasi jumlah shard untuk sinkronisasi data. Jika Anda mengonfigurasi beberapa thread konkuren, data di-shard menjadi `jumlah thread konkuren × splitFactor` bagian. Misalnya, jika jumlah thread konkuren adalah 5 dan splitFactor adalah 5, data di-shard menjadi 5 × 5 = 25 bagian dan diproses oleh 5 thread konkuren. Catatan Nilai yang direkomendasikan berkisar antara 1 hingga 100. Nilai yang terlalu besar dapat menyebabkan error kehabisan memori (OOM). | Tidak | 5 |
where | Kondisi filter. Dalam banyak skenario bisnis, Anda mungkin hanya ingin menyinkronkan data untuk hari ini. Anda dapat mengatur kondisi where ke
| Tidak | Tidak ada |
querySql (Mode lanjutan. Parameter ini tidak didukung di antarmuka tanpa kode.) | Dalam beberapa skenario bisnis, parameter `where` tidak cukup untuk menggambarkan kondisi filter. Anda dapat menggunakan parameter ini untuk mendefinisikan pernyataan SQL filter kustom. Jika Anda mengonfigurasi parameter ini, sistem mengabaikan parameter `tables`, `columns`, dan `splitPk` dan menggunakan konten parameter ini untuk memfilter data. Misalnya, untuk menyinkronkan data setelah penggabungan beberapa tabel, gunakan Catatan Parameter querySql bersifat case-sensitive. Misalnya, jika Anda menulisnya sebagai querysql, parameter tersebut tidak akan berlaku. | Tidak | Tidak ada |
useSpecialSecret | Jika Anda memiliki beberapa sumber data sumber, tentukan apakah akan menggunakan password masing-masing sumber data. Nilai yang valid:
Jika Anda telah mengonfigurasi beberapa sumber data sumber dan masing-masing sumber data menggunakan username dan password yang berbeda, Anda dapat mengatur parameter ini ke true untuk menggunakan password 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 plugin.
"parameter": {
"postSql": [],// Pernyataan SQL yang akan dijalankan setelah impor.
"datasource": "",// Sumber data.
"column": [// Nama kolom.
"id",
"value"
],
"writeMode": "insert",// Mode tulis. Anda dapat mengatur ke insert, replace, atau update.
"batchSize": 1024,// Jumlah catatan yang akan dikirimkan dalam satu batch.
"table": "",// Nama tabel.
"nullMode": "skipNull",// Kebijakan untuk menangani nilai null.
"skipNullColumn": [// Kolom yang akan dilewati jika nilainya null.
"id",
"value"
],
"preSql": [
"delete from XXX;"// Pernyataan SQL yang akan dijalankan sebelum impor.
]
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {// Jumlah catatan error yang diizinkan.
"record": "0"
},
"speed": {
"throttle": true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, dan laju transfer data tidak dibatasi. Jika throttle diatur ke true, laju transfer data dibatasi.
"concurrent": 1,// Jumlah tugas konkuren.
"mbps": "12"// Laju transfer data maksimum. Hal ini mencegah tekanan baca/tulis berlebihan pada database hulu/hilir. 1 mbps = 1 MB/s.
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}Parameter skrip Writer
Parameter | Deskripsi | Wajib | Nilai default |
datasource | Nama sumber data. Editor kode mendukung penambahan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang ditambahkan. | Ya | Tidak ada |
table | Nama tabel yang akan disinkronkan data. | Ya | Tidak ada |
writeMode | Mode impor. Anda dapat memilih INSERT INTO, ON DUPLICATE KEY UPDATE, atau REPLACE INTO.
| Tidak | insert |
nullMode | Kebijakan untuk menangani nilai null. Nilai yang valid:
Penting Jika Anda mengatur parameter ini ke skipNull, tugas secara dinamis menghasilkan pernyataan SQL untuk menulis data guna mendukung nilai default tujuan. Hal ini meningkatkan jumlah operasi FLUSH dan mengurangi kecepatan sinkronisasi. Dalam skenario terburuk, operasi FLUSH dilakukan untuk setiap catatan data. | Tidak | writeNull |
skipNullColumn | Saat nullMode diatur ke skipNull, kolom yang dikonfigurasi untuk parameter ini tidak dipaksa ditulis sebagai Format: | Tidak | Secara default, semua kolom yang dikonfigurasi untuk tugas. |
column | Field di tabel tujuan yang akan ditulis data. Pisahkan field dengan koma (,), misalnya, | Ya | Tidak ada |
preSql | Pernyataan SQL yang akan dijalankan sebelum tugas sinkronisasi data dimulai. Di antarmuka tanpa kode, Anda hanya dapat menjalankan satu pernyataan SQL. Di editor kode, Anda dapat menjalankan beberapa pernyataan SQL. Misalnya, Anda dapat menghapus data lama dari tabel sebelum eksekusi: `TRUNCATE TABLE tablename`. Catatan Transaksi tidak didukung untuk beberapa pernyataan SQL. | Tidak | Tidak ada |
postSql | Pernyataan SQL yang akan dijalankan setelah tugas sinkronisasi data selesai. Di antarmuka tanpa kode, Anda hanya dapat menjalankan satu pernyataan SQL. Di editor kode, Anda dapat menjalankan beberapa pernyataan SQL. Misalnya, Anda dapat menambahkan timestamp: Catatan Transaksi tidak didukung untuk beberapa pernyataan SQL. | Tidak | Tidak ada |
batchSize | Jumlah catatan yang akan dikirimkan dalam satu batch. Nilai yang lebih besar dapat secara signifikan mengurangi interaksi jaringan antara sistem sinkronisasi data dan MySQL serta meningkatkan throughput keseluruhan. Jika nilai ini diatur terlalu tinggi, dapat menyebabkan error kehabisan memori (OOM) dalam proses sinkronisasi data. | Tidak | 256 |
updateColumn | Saat writeMode diatur ke update, ini adalah field yang akan diperbarui saat terjadi konflik primary key atau unique index. Pisahkan field dengan koma (,), misalnya, | Tidak | Tidak ada |