Pipeline sinkronisasi real-time dari MySQL ke LogHub (SLS) menyinkronkan data inkremental ke tujuan. Topik ini menjelaskan cara membuat task untuk menyinkronkan seluruh database MySQL ke LogHub (SLS) secara real-time dan memantau statusnya.
Prasyarat
-
Anda telah membeli serverless resource group.
-
Anda telah membuat sumber data MySQL dan sumber data LogHub (SLS). Untuk informasi lebih lanjut, lihat Konfigurasi sumber data.
-
Harus terdapat koneksi jaringan antara resource group dan sumber data. Untuk informasi lebih lanjut, lihat Ikhtisar solusi koneksi jaringan.
Prosedur
Langkah 1: Pilih jenis task sinkronisasi
Masuk ke Konsol DataWorks. Di wilayah target, klik di panel navigasi sebelah kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Integration.
-
Di panel navigasi sebelah kiri, klik Synchronization Task. Di bagian atas halaman, klik Create Synchronization Task. Di kotak dialog, konfigurasikan pengaturan dasar berikut:
-
Source Type:
MySQL. -
Destination Type:
LogHub. -
Specific Type:
real-time synchronization of entire database. -
Synchronization Mode: incremental synchronization. Metode ini terus-menerus menyinkronkan data binlog dari database bisnis Anda ke LogHub.
-
Langkah 2: Konfigurasi jaringan dan resource
-
Di bagian Network and Resource Configuration, pilih Resource Group untuk task sinkronisasi. Anda dapat mengalokasikan compute units (CUs) untuk Task Resource Usage.
-
Untuk Source Information, pilih sumber data
MySQLyang telah ditambahkan. Untuk Destination, pilih sumber dataLogHubyang telah ditambahkan. Lalu, klik Test Connectivity. -
Setelah kedua uji konektivitas berhasil, klik Next.
Langkah 3: Pilih database dan tabel
Pada langkah ini, di area Source Table, pilih tabel sumber yang akan disinkronkan dan klik ikon
untuk memindahkannya ke area Selected Tables di sebelah kanan.
Di area Source Table, Anda juga dapat memilih tabel dengan menempelkan daftar. Anda dapat memilih hingga 5.000 tabel.
-
Select Specific Databases/Tables:
-
Di area Source Table, gunakan bidang Database Filter dan Table Filter untuk mencari database dan tabel yang ingin disinkronkan. Pilih item tersebut dan klik ikon
untuk memindahkannya ke area Selected Databases/Tables. -
Di area Selected Databases/Tables, gunakan bidang Database Filter dan Table Filter untuk menemukan tabel yang ingin dikecualikan. Pilih tabel tersebut dan klik ikon
untuk memindahkannya kembali ke area Source Databases/Tables.
-
-
Use regex for table selection (supports adding/removing tables by regex during runtime).:
Masukkan ekspresi reguler di bidang Database Filter dan Table Filter. Klik Confirm untuk memilih tabel yang sesuai.
CatatanSebagai contoh, untuk menyinkronkan tabel dari database yang namanya dimulai dengan
adan tabel yang namanya dimulai denganorder, masukkana.*di kotak Database Filter danorder.*di kotak Table Filter.
Langkah 4: Petakan tabel tujuan
Setelah Anda memilih tabel yang akan disinkronkan, tabel tersebut akan ditampilkan secara otomatis di halaman ini. Namun, tabel tujuan belum dipetakan. Anda harus menentukan pemetaan antara tabel sumber dan tabel tujuan, yang menentukan cara data dibaca dan ditulis. Setelah menentukan pemetaan, klik Refresh Mapping untuk melanjutkan ke langkah berikutnya. Anda dapat merefresh pemetaan sekarang atau setelah menyesuaikan aturan untuk tabel tujuan.
1. Pilih Logstore tujuan
Di kolom Destination Logstore, pilih Logstore tujuan untuk task sinkronisasi dari daftar drop-down. Anda juga dapat memilih beberapa tabel lalu klik untuk mengonfigurasinya secara massal.
2. Konfigurasi aturan DML
Data Integration menyediakan aturan pemrosesan DML default. Anda juga dapat menentukan aturan pemrosesan kustom untuk perintah DML yang menulis ke tabel tujuan.
-
Tentukan aturan untuk satu tabel: Klik Configuration di kolom DML Rule Configuration untuk tabel tertentu guna menentukan aturan DML-nya.
-
Tentukan aturan secara massal: Pilih semua tabel yang akan disinkronkan, lalu di bagian bawah daftar, klik .
Langkah 5: Konfigurasi alert
Untuk mencegah keterlambatan sinkronisasi data akibat error task, Anda dapat mengonfigurasi kebijakan alert untuk task sinkronisasi.
-
Klik Alert Settings di pojok kanan atas halaman untuk membuka halaman pengaturan Alert Rule Configurations for Real-time Synchronization Subnode.
-
Klik Add Alert Rule untuk mengonfigurasi aturan alert.
CatatanAturan alert yang ditentukan di sini berlaku untuk subtask sinkronisasi real-time yang dihasilkan oleh task ini. Setelah selesai mengonfigurasi task, Anda dapat membuka halaman Jalankan dan kelola task sinkronisasi real-time untuk melihat dan mengubah aturan alert pemantauan untuk subtask sinkronisasi real-time.
-
Kelola aturan alert.
Untuk aturan alert yang sudah ada, Anda dapat menggunakan toggle alert untuk mengaktifkan atau menonaktifkan aturan alert. Anda juga dapat mengirim alert ke kontak berbeda berdasarkan tingkat keparahan alert.
Langkah 6: Konfigurasi parameter lanjutan
Untuk menyesuaikan task secara lebih rinci, klik Configuration di kolom Custom Advanced Parameters untuk mengubah parameter lanjutan.
-
Di pojok kanan atas halaman, klik Advanced Parameters untuk membuka halaman konfigurasi parameter lanjutan.
-
Tabel berikut menjelaskan parameter utama.
Parameter
Deskripsi
Expand business data
Menentukan apakah akan meratakan field data bisnis dari tabel sumber ke level teratas entri log.
-
true: Memperluas data. Untuk format perluasan, Anda dapat memilih Partial expansion or Full expansion di bagian Data Expansion Format.
-
false (default): Tidak memperluas data. Data dikemas dalam satu field JSON.
Pass through DDL information
Mengontrol apakah akan menangkap operasi Data Definition Language (DDL) dari tabel sumber, seperti
CREATE TABLEdanALTER TABLE, dan menyinkronkannya ke SLS sebagai entri log.-
true (default): Meneruskan informasi DDL.
-
false: Tidak meneruskan informasi DDL.
Source NULL value handling
Menentukan nilai yang akan ditulis ke field tujuan ketika field sumber bernilai NULL. Secara default, nilai ini kosong, yang mempertahankan nilai NULL.
Data Expansion Format
Menentukan struktur data bisnis (field
data) saat ditulis ke SLS. Opsi ini hanya muncul ketika opsi Expand business data diatur ke true. Format yang Anda pilih secara langsung memengaruhi cara sistem downstream mengonsumsi log. Untuk contoh format, lihat Lampiran: Contoh format perluasan data.-
Partial expansion (default): Kompatibel dengan format koleksi Logtail untuk binlog MySQL.
-
Full expansion: Meratakan semua field data bisnis, termasuk gambar before dan after dari perubahan, sebagai pasangan kunci-nilai independen di level teratas data.
-
Langkah 7: Konfigurasi resource group
Klik Configure Resource Group di pojok kanan atas halaman untuk melihat dan mengganti resource group yang digunakan oleh task saat ini.
Langkah 8: Terapkan dan jalankan task sinkronisasi
-
Setelah menyelesaikan semua konfigurasi, klik Save untuk menyimpan task.
-
Di halaman , temukan task sinkronisasi yang telah Anda buat, lalu klik Deploy di kolom Operation. Jika Anda memilih Start immediately after deployment saat penerapan, task akan langsung berjalan setelah Anda mengonfirmasi. Jika tidak, Anda harus menjalankan task secara manual.
CatatanTask Data Integration harus diterapkan ke lingkungan produksi sebelum dapat dijalankan. Oleh karena itu, Anda harus melakukan operasi Publish setelah membuat atau mengedit task agar perubahan berlaku.
-
Klik Name/ID task yang sesuai di Tasks untuk melihat proses eksekusi detail task tersebut.
Kelola task sinkronisasi
Lihat status task
Setelah membuat task sinkronisasi, Anda dapat melihat daftar task yang telah dibuat beserta informasi dasarnya di halaman task sinkronisasi. Setelah task berhasil dibuat, task tersebut muncul di daftar task dengan status Running. Di ikhtisar eksekusi, status sinkronisasi real-time adalah Pending Start, dan resource group-nya adalah Serverless_Group.
-
Di kolom Operations, Anda dapat Start atau Stop task sinkronisasi. Di bawah More, Anda dapat menemukan aksi lain seperti Edit dan View.
-
Untuk task yang sedang berjalan, Anda dapat memeriksa Execution Overview untuk melihat status operasionalnya, atau klik area di ikhtisar untuk melihat detailnya. Bagian Basic Information di halaman detail task menampilkan ID task, sumber data, resource group, solusi sinkronisasi, dan penggunaan CU saat ini. Anda dapat beralih antar tab Execution Status, Run Log, Failover, dan Resource Usage untuk memantau task.
Task sinkronisasi real-time dari MySQL ke LogHub (SLS) menampilkan statistik real-time, termasuk progres, catatan DDL, catatan DML, dan informasi alert.
Jalankan ulang task
Dalam skenario tertentu, seperti saat Anda perlu menambahkan atau menghapus tabel, atau mengubah skema tabel tujuan atau informasi nama tabel, Anda dapat mengklik Rerun di kolom Operations task sinkronisasi. Sistem hanya akan menyinkronkan tabel yang baru ditambahkan atau dimodifikasi. Tabel yang sebelumnya telah disinkronkan atau tidak dimodifikasi tidak akan disinkronkan lagi.
-
Klik Rerun untuk menjalankan ulang inisialisasi penuh dan sinkronisasi real-time.
-
Edit task untuk menambahkan atau menghapus tabel, simpan task, lalu terapkan. Setelah penerapan, tombol Apply Updates muncul di kolom Operations. Klik Apply Updates untuk memicu jalankan ulang task yang dimodifikasi. Hanya tabel yang baru ditambahkan atau dimodifikasi yang akan disinkronkan. Tabel yang sebelumnya telah disinkronkan tidak akan disinkronkan lagi.
Lampiran: Contoh format perluasan data
-
Tanpa perluasan
{ "ExecutionTime": 1761017850000, "_db_": "*****", "_event_": "row_update", "_event_time_": 1761017850, "_file_name_": "mysql-bin.*****", "_gtid_": "4a21a3ce-ad7a-11f0-a8f3**********", "_host_": "rm-*********.mysql.rds.aliyuncs.com", "_id_": "176101777********", "_offset_": "265*****", "_table_": "t_parameter", "data": { "updateBefore": { "_old_id": "3", "_old_name": "82174b93-b810-4030-8652-e5c1667d3f72", "_old_value": "+@}8-/XC", "_old_status": "kBdO", "_old_description": "a?!L7{jaH+", "_old_create_time": "2023-12-28 19:03:43", "_old_create_user": "+Zs", "_old_modify_time": "2006-11-26 20:42:31", "_old_modify_user": "brTYGI?jLL" }, "updateAfter": { "id": "3", "name": "82174b93-b810-4030-8652-e5c1667d3f72-tagd", "value": "+@}8-/XC", "status": "kBdO", "description": "a?!L7{jaH+", "create_time": "2023-12-28 19:03:43", "create_user": "+Zs", "modify_time": "2006-11-26 20:42:31", "modify_user": "brTYGI?jLL" } } } -
Perluasan parsial: Kompatibel dengan format koleksi Logtail untuk binlog MySQL
{ "ExecutionTime": 1761017850000, "_db_": "*****", "_event_": "row_update", "_event_time_": 1761017850, "_file_name_": "mysql-bin.*****", "_gtid_": "4a21a3ce-ad7a-11f0-a8f3**********", "_host_": "rm-*********.mysql.rds.aliyuncs.com", "_id_": "176101777********", "_offset_": "265*****", "_table_": "t_parameter", "old_data": { "_old_id": "1", "_old_name": "0e459c1a-c6ce-459b-b374-a161b095c8e9", "_old_value": "Hello", "_old_status": "b", "_old_description": "cw", "_old_create_time": "2007-08-06 16:19:03", "_old_create_user": "!wW4", "_old_modify_time": "2017-04-21 18:21:58", "_old_modify_user": "s" }, "data": { "id": "1", "name": "0e459c1a-c6ce-459b-b374-a161b095c8e9-dsg", "value": "Hello", "status": "b", "description": "cw", "create_time": "2007-08-06 16:19:03", "create_user": "!wW4", "modify_time": "2017-04-21 18:21:58", "modify_user": "s" } } -
Perluasan penuh: Semua field diratakan.
{ "ExecutionTime": 1761017850000, "_db_": "****", "_event_": "row_update", "_event_time_": 1761017850, "_file_name_": "mysql-bin.*****", "_gtid_": "4a21a3ce-ad7a-11f0-a8f3**********", "_host_": "rm-*********.mysql.rds.aliyuncs.com", "_id_": "176101777********", "_offset_": "265*****", "_table_": "t_parameter", "_old_create_time": "2024-09-27 15:27:10", "_old_create_user": "o", "_old_description": "LZ[1HsTE", "_old_id": "6", "_old_modify_time": "2008-03-15 08:05:53", "_old_modify_user": "/{=>7_d@0Q", "_old_name": "cf8a671c-4414-45f5-a22c-62c353a6f1ef", "_old_status": "K:HQOX-?gK", "_old_value": "23]sn<t", "create_time": "2024-09-27 15:27:10", "create_user": "o", "description": "LZ[1HsTE", "id": "6", "modify_time": "2008-03-15 08:05:53", "modify_user": "/{=>7_d@0Q", "name": "cf8a671c-4414-45f5-a22c-62c353a6f1efgsdsa", "status": "K:HQOX-?gK", "value": "23]sn<t" }