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, MySQL 5.6.x, MySQL 5.7.x, dan MySQL 8.0.x. 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 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. Kompatibel dengan Amazon RDS for MySQL, Azure MySQL, dan Amazon Aurora MySQL.
PentingUntuk menyinkronkan data dari database DRDS for MySQL, jangan konfigurasikan sebagai sumber data MySQL. Untuk informasi selengkapnya, lihat Konfigurasikan sumber data DRDS.
Batasan
Baca real-time
Tidak mendukung sinkronisasi data dari instans hanya baca MySQL versi sebelum 5.6.x.
Tidak mendukung sinkronisasi tabel yang berisi functional indexes.
XA ROLLBACK tidak didukung.
Untuk data dalam transaksi yang berada dalam status XA PREPARE, sinkronisasi real-time akan menulis data tersebut ke tujuan. Jika terjadi XA ROLLBACK, sinkronisasi real-time tidak akan melakukan rollback data tersebut. Untuk menangani skenario ini, Anda harus menghapus tabel secara manual dari tugas sinkronisasi real-time, lalu menambahkannya kembali untuk memulai ulang sinkronisasi.
Hanya mendukung format ROW untuk binary logging server MySQL.
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. 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 untuk operasi DDL Online hanya mendukung penambahan kolom (Add Column) ke tabel MySQL menggunakan Data Management DMS.
Tidak mendukung pembacaan prosedur tersimpan dari MySQL.
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.
Tidak mendukung pembacaan prosedur tersimpan dari MySQL.
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) | Pembacaan 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 |
Persiapan
Sebelum mengonfigurasi sumber data MySQL di DataWorks, lengkapi persiapan yang dijelaskan dalam 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();Konfigurasikan izin akun
Buat akun MySQL khusus untuk DataWorks mengakses sumber data. Prosedurnya sebagai berikut.
Opsional: Buat akun.
Untuk informasi selengkapnya, lihat Buat akun MySQL.
Konfigurasikan izin.
Offline
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. Pada pernyataan berikut, ganti'sync_account'dengan akun yang telah 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. Konfigurasikan peringatan latensi untuk tugas Anda dan pantau ruang disk database Anda.
Anda harus menyimpan log biner setidaknya selama 72 jam. 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 mengubah 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 mengubah konfigurasi binlog_row_image.
Konfigurasikan 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. 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.
Konfigurasikan parameter utama berikut dan klik Grant permissions.
Atur Resource Scope ke Account Level.
Atur Policy ke System Policy.
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 utama:
Atur Principal Type ke Alibaba Cloud Account.
Atur Principal Name ke Other Alibaba Cloud Account 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 utama:
Atur Policy ke System Policy.
Atur Policy Name ke
AliyunDataWorksAccessingRdsOSSBinlogPolicy.
Ubah kebijakan kepercayaan untuk peran RAM yang dibuat. Untuk informasi selengkapnya, lihat Ubah 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 merupakan instans RDS Alibaba Cloud, Anda dapat membuat sumber data dalam mode instans Alibaba Cloud. Tabel berikut menjelaskan parameter-parameternya:
Parameter | Deskripsi |
Data Source Name | Nama sumber data. Nama harus unik dalam ruang kerja. Gunakan nama yang mengidentifikasi bisnis dan lingkungan, misalnya |
Configuration Mode | 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). |
Alibaba Cloud Account | Pilih akun tempat instans berada. 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 Other Alibaba Cloud Account, Anda harus menentukan informasi berikut:
|
Region | Wilayah tempat instans berada. |
Instance | Nama instans yang ingin Anda hubungkan. |
Configure Secondary Instance | Jika sumber data memiliki instans hanya baca (read replica), Anda dapat memilih read replica untuk operasi baca saat mengonfigurasi tugas. Ini mencegah gangguan pada database utama dan tidak memengaruhi performanya. |
Instance Address | Setelah memilih instans yang benar, klik Get Latest Endpoint untuk melihat endpoint publik atau pribadi, VPC, dan vSwitch instans. |
Database | Nama database yang perlu diakses oleh sumber data. Pastikan pengguna yang ditentukan memiliki izin untuk mengakses database tersebut. |
Username/Password | Username dan password akun database MySQL. Jika Anda menggunakan instans RDS, Anda dapat membuat dan mengelola akun di bagian Account Management instans. |
Enable Binary Log Reading from OSS | Jika Anda mengaktifkan fitur ini, ketika DataWorks tidak dapat mengakses log biner RDS, sistem akan mencoba mendapatkan log biner dari OSS. Ini mencegah tugas sinkronisasi real-time terganggu. Untuk informasi selengkapnya tentang konfigurasi, lihat Konfigurasikan otorisasi untuk membaca log biner dari OSS. Kemudian, atur OSS Binlog Access Identity berdasarkan konfigurasi otorisasi. |
Authentication Method | Anda dapat memilih No Authentication atau SSL Authentication. Jika memilih SSL Authentication, autentikasi SSL harus diaktifkan pada instans itu sendiri. Siapkan file sertifikat dan unggah ke Certificate File Management. |
Version | 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 |
Data Source Name | Nama sumber data. Nama harus unik dalam ruang kerja. Gunakan nama yang mengidentifikasi bisnis dan lingkungan, misalnya |
Configuration Mode | Pilih Connection String Mode. Mode ini menghubungkan ke database menggunakan URL JDBC. |
JDBC Connection String Preview | Setelah Anda memasukkan endpoint dan nama database, DataWorks secara otomatis menggabungkannya menjadi URL JDBC untuk Anda pratinjau. |
Connection Address | Host IP: Alamat IP atau nama domain host database. Jika database adalah instans RDS Alibaba Cloud, Anda dapat melihat endpoint di halaman produk instans. Port: Port database. Nilai default adalah 3306. |
Database Name | Nama database yang perlu diakses oleh sumber data. Pastikan pengguna yang ditentukan memiliki izin untuk mengakses database tersebut. |
Username/Password | Username dan password akun database MySQL. Jika Anda menggunakan instans RDS, Anda dapat membuat dan mengelola akun di bagian Account Management instans. |
Version | Anda dapat login ke server MySQL dan menjalankan perintah `SELECT VERSION()` untuk melihat nomor versi. |
Authentication Method | Anda dapat memilih No Authentication atau SSL Authentication. Jika memilih SSL Authentication, autentikasi SSL harus diaktifkan pada instans itu sendiri. Siapkan file sertifikat dan unggah ke Authentication File Management. |
Advanced Parameters | Parameter: Klik daftar drop-down parameter dan pilih nama parameter yang didukung, seperti Value: Masukkan nilai untuk parameter yang dipilih, seperti 3000. URL kemudian diperbarui secara otomatis menjadi: |
Anda harus memastikan bahwa kelompok sumber daya dapat terhubung ke sumber data. Jika tidak, tugas selanjutnya tidak dapat dijalankan. Konfigurasi jaringan yang diperlukan bergantung 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 petunjuk, lihat Konfigurasikan tugas sinkronisasi offline di Antarmuka tanpa kode dan Konfigurasikan 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 petunjuk, lihat Konfigurasikan tugas sinkronisasi real-time di DataStudio.
Panduan mengonfigurasi tugas sinkronisasi tingkat database: offline, penuh dan inkremental (real-time), serta ter-shard (real-time)
Untuk petunjuk, lihat Konfigurasikan 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
Konfigurasikan 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 Konfigurasikan 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 tempat data akan disinkronkan. Tugas integrasi data hanya dapat membaca data dari satu tabel. Contoh 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 tersebut. 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 akan 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 hari ini. Anda dapat mengatur kondisi where menjadi
| 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 isi parameter ini untuk memfilter data. Misalnya, untuk menyinkronkan data setelah penggabungan tabel ganda, gunakan Catatan Parameter querySql bersifat case-sensitive. Misalnya, jika Anda menulisnya sebagai querysql, itu 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 setiap 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. 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 tempat data akan disinkronkan. | 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 tempat data akan ditulis. 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 secara signifikan dapat 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 ketika terjadi konflik primary key atau unique index. Pisahkan field dengan koma (,), misalnya | Tidak | Tidak ada |