All Products
Search
Document Center

DataWorks:Sinkronisasi MySQL ke MaxCompute menggunakan tugas full dan inkremental

Last Updated:Jun 25, 2026

Data Integration mendukung sinkronisasi full dan inkremental seluruh database dari sumber seperti ApsaraDB for OceanBase, MySQL, Oracle, dan PolarDB ke MaxCompute. Tautan sinkronisasi ini melakukan migrasi full awal, lalu terus-menerus menyinkronkan perubahan inkremental dan menggabungkannya ke tabel tujuan setiap hari (T+1). Topik ini menggunakan contoh sinkronisasi dari MySQL ke MaxCompute untuk menjelaskan cara membuat tugas full dan inkremental.

Cara kerja

Tugas full dan inkremental menggabungkan subtugas batch dan real-time untuk memigrasikan serta menggabungkan data ke tabel dasar tujuan. Setelah tugas dijalankan, sistem secara otomatis membuat dan mengoordinasikan subtugas batch dan real-time untuk menggabungkan data ke tabel tujuan (tabel dasar).

Proses ini terdiri dari tiga fase:

  1. Initial full load: Tugas batch memigrasikan skema tabel dan data yang ada dari semua tabel di database sumber ke MaxCompute. Setelah selesai, tugas batch ini dibekukan.

  2. Incremental synchronization: Tugas real-time terus-menerus menangkap perubahan (Insert, Update, Delete) dari binlog database sumber (misalnya binlog MySQL) dan menuliskannya ke tabel log sementara di MaxCompute dalam waktu nyaris real-time.

  3. Periodic merge: Tugas penggabungan harian (T+1) menggabungkan data inkremental dari hari sebelumnya dari tabel log dengan tabel dasar, menghasilkan snapshot lengkap di partisi baru. Tugas penggabungan ini dijalankan sekali setiap hari.

Fitur utama:

  • Pemetaan tabel many-to-many atau many-to-one: Sinkronkan beberapa tabel sumber ke tabel tujuan yang sesuai, atau gabungkan beberapa tabel sumber menjadi satu tabel tujuan menggunakan aturan pemetaan.

  • Komposisi: Tugas full dan inkremental terdiri dari subtugas batch (full load), subtugas real-time (sinkronisasi inkremental), dan tugas penggabungan (konsolidasi data).

  • Dukungan tabel tujuan: Data dapat ditulis ke tabel berpartisi maupun non-partisi di MaxCompute.

Catatan penggunaan

  • Kebutuhan resource: Tugas harus dijalankan pada serverless resource group. Saat Anda menyinkronkan data berdasarkan instans, spesifikasi minimum: 2 CU untuk serverless resource group.

  • Konektivitas jaringan: Pastikan resource group untuk Data Integration memiliki konektivitas jaringan ke kedua sumber data, baik sumber (seperti MySQL) maupun tujuan (seperti MaxCompute). Untuk informasi lebih lanjut, lihat Network connectivity.

  • Batasan wilayah: Hanya sumber data MaxCompute yang dikelola sendiri di wilayah yang sama dengan ruang kerja DataWorks saat ini yang didukung. Saat Anda menggunakan sumber data MaxCompute yang dikelola sendiri, Anda tetap harus mengaitkan resource komputasi MaxCompute di Data Studio. Jika tidak, Anda tidak dapat membuat node SQL MaxCompute, yang menyebabkan kegagalan pada node full synchronization done.

  • Batasan resource group penjadwalan: serverless resource group yang dikonfigurasi untuk tugas digunakan sebagai resource group penjadwalan.

  • Batasan jenis tabel tujuan: Menyinkronkan data sumber ke tabel eksternal MaxCompute tidak didukung.

Catatan

  • Persyaratan primary key: Tabel tanpa primary key tidak didukung. Untuk tabel tanpa primary key, Anda harus secara manual menentukan satu atau beberapa kolom sebagai primary key bisnis (Specify Primary Key) selama konfigurasi.

  • Latensi visibilitas data: Pada hari Anda mengonfigurasi tugas full dan inkremental ke MaxCompute, Anda hanya dapat mengkueri data full historis. Data inkremental hanya dapat dikueri di MaxCompute setelah penggabungan hari berikutnya selesai. Untuk informasi lebih lanjut, lihat bagian periodic merge di Cara kerja.

  • Penyimpanan dan siklus hidup: Tugas full dan inkremental menghasilkan partisi lengkap setiap hari. Untuk menghindari penggunaan penyimpanan berlebihan, tabel MaxCompute yang dibuat otomatis oleh tugas memiliki siklus hidup default 30 hari. Jika hal ini tidak sesuai dengan kebutuhan bisnis Anda, Anda dapat mengklik nama tabel MaxCompute yang sesuai untuk mengubah siklus hidup saat mengonfigurasi tugas. Untuk informasi lebih lanjut, lihat Edit the destination table schema (optional).

  • SLA: Data Integration menggunakan saluran data MaxCompute untuk mengunggah dan mengunduh data. Untuk informasi lebih lanjut tentang SLA saluran data, lihat MaxCompute data channel SLA. Evaluasi solusi sinkronisasi data Anda berdasarkan SLA saluran data MaxCompute.

  • Kebijakan retensi binlog: Sinkronisasi real-time bergantung pada binlog instans MySQL sumber. Pastikan periode retensi binlog cukup untuk mencegah gangguan sinkronisasi akibat hilangnya start offset ketika tugas dijeda dalam waktu lama atau diulang setelah kegagalan.

Penagihan

  • Tugas full dan inkremental mencakup tugas sinkronisasi batch untuk fase full load, tugas sinkronisasi real-time untuk fase inkremental, dan tugas terjadwal untuk fase penggabungan periodik. Ketiga fase ini ditagih secara terpisah. Ketiganya mengonsumsi CU dari resource group. Untuk informasi lebih lanjut tentang penagihan CU, lihat Resource group billing. Tugas terjadwal juga dikenai biaya penjadwalan tugas. Untuk informasi lebih lanjut, lihat Task scheduling billing.

  • Selain itu, tautan sinkronisasi full dan inkremental ke MaxCompute memerlukan penggabungan data full-inkremental periodik, yang mengonsumsi resource komputasi MaxCompute. Biaya ini langsung dikenakan oleh MaxCompute dan sebanding dengan ukuran data full serta siklus penggabungan. Untuk informasi lebih lanjut, lihat MaxCompute billing.

Prosedur

Langkah 1: Pilih jenis tugas sinkronisasi

  1. Masuk ke Konsol DataWorks. Di wilayah target, klik Data Integration > Data Integration di panel navigasi kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Integration.

  2. Di panel navigasi kiri, klik Synchronization Task, lalu klik Create Synchronization Task di bagian atas halaman. Di dialog yang muncul, konfigurasikan pengaturan utama berikut:

    • Source Type: MySQL.

    • Destination Type: MaxCompute.

    • Specific Type: Full and Incremental.

    • Sync Procedure: Schema Migration, Incremental Sync, Full Synchronization, dan Periodic Merge.

Langkah 2: Konfigurasikan sumber data dan resource group

  1. Di bagian Source Information, pilih sumber data MySQL yang telah Anda tambahkan. Di bagian Destination, pilih sumber data MaxCompute yang telah Anda tambahkan.

  2. Di bagian Running Resources, pilih Resource Group untuk tugas dan alokasikan Resource Group CU kepadanya. Anda dapat mengonfigurasi CU secara terpisah untuk sinkronisasi full dan sinkronisasi inkremental guna mengontrol resource secara tepat dan menghindari pemborosan.

    Catatan

    Tugas sinkronisasi batch di DataWorks didistribusikan oleh resource group penjadwalan ke resource group Data Integration untuk dieksekusi. Oleh karena itu, tugas sinkronisasi batch mengonsumsi resource dari kedua resource group tersebut, yang mengakibatkan biaya instans penjadwalan.

  3. Pastikan kedua sumber data, baik sumber maupun tujuan, lulus Connectivity Check.

Langkah 3: Pilih tabel untuk disinkronkan

Di area Source Tables, pilih tabel yang akan disinkronkan dan klik ikon image untuk memindahkannya ke daftar Selected Tables di sebelah kanan.

Tersedia dua metode pemilihan tabel: Select Specific Tables dan Select Tables by Regex. Beralih antar metode akan menghapus hasil metode lainnya. Anda dapat memilih hingga 5.000 tabel. Anda juga dapat menggunakan Batch Paste to Select Tables untuk menambahkan tabel secara cepat.

Jika terdapat banyak database dan tabel, Anda dapat menggunakan Database Filtering atau Search for Tables, atau mengonfigurasi ekspresi reguler untuk memilih tabel yang akan disinkronkan.

Langkah 4: Konfigurasikan pengaturan tugas

  • Log table time range: Parameter ini menentukan rentang waktu kueri untuk menggabungkan data dari tabel log ke partisi tujuan.

    Untuk menghindari kesalahan partisi lintas hari akibat latensi data, perluas rentang ini secara tepat agar semua data yang termasuk dalam partisi digabungkan dengan benar.

  • Merge task schedule settings: Atur waktu penjadwalan untuk tugas penggabungan harian. Untuk informasi lebih lanjut tentang cara mengonfigurasi waktu penjadwalan, lihat Schedule settings.

  • Periodic scheduling parameters: Konfigurasikan parameter penjadwalan. Anda dapat menggunakan parameter penjadwalan untuk memberikan nilai ke partisi dalam pengaturan partisi berikutnya, sehingga memungkinkan Anda menulis data ke partisi berdasarkan tanggal.

  • Table partition settings: Konfigurasikan partisi untuk tabel tujuan, termasuk parameter utama seperti nama kolom partisi dan metode pemberian nilai. Anda dapat menggunakan parameter penjadwalan di kolom pemberian nilai untuk menghasilkan partisi secara otomatis berdasarkan tanggal.

Langkah 5: Konfigurasikan pemetaan tabel tujuan

Pada langkah ini, Anda menentukan aturan pemetaan antara tabel sumber dan tabel tujuan, serta menentukan primary key, partisi dinamis, konfigurasi DDL/DML, dan aturan lainnya untuk menentukan cara penulisan data.

Action

Description

Refresh

Sistem secara otomatis mencantumkan tabel sumber yang Anda pilih, tetapi atribut tabel tujuan baru berlaku setelah Anda merefresh dan mengonfirmasinya.

  • Pilih tabel yang akan disinkronkan secara batch dan klik Batch Refresh Mapping.

  • Nama tabel tujuan: Nama tabel tujuan dihasilkan secara otomatis berdasarkan aturan Customize Mapping Rules for Destination Table Names. Format default adalah ${source_database_name}_${table_name}. Jika tabel dengan nama yang sama belum ada di tujuan, sistem akan membuatnya secara otomatis.

Customize Mapping Rules for Destination Table Names (opsional)

Sistem memiliki aturan default untuk pembuatan nama tabel: ${source_database_name}_${table_name}. Anda juga dapat mengklik Edit di kolom Customize Mapping Rules for Destination Table Names untuk menambahkan aturan kustom nama tabel tujuan.

  • Nama aturan: Tentukan nama aturan. Kami menyarankan Anda memberikan nama yang memiliki makna bisnis yang jelas.

  • Nama tabel tujuan: Anda dapat mengklik tombol image untuk memilih Manual Input dan Built-in Variable untuk menggabungkan nama tabel tujuan. Variabel yang didukung mencakup nama sumber data sumber, nama database sumber, dan nama tabel sumber.

  • Edit variabel bawaan: Anda dapat melakukan transformasi string pada variabel bawaan.

Skenario berikut didukung:

  1. Menambahkan awalan atau akhiran pada nama tabel: Tambahkan awalan atau akhiran ke nama tabel sumber dengan mengonfigurasi konstanta.

  2. Penggantian string seragam: Ganti string dev_ dalam nama tabel sumber dengan prd_.

  3. Menulis beberapa tabel ke satu tabel.

Edit column type mapping (opsional)

Sistem menyediakan pemetaan default antara tipe kolom sumber dan tujuan. Anda dapat mengklik Edit Mapping of Field Data Types di pojok kanan atas tabel untuk menyesuaikan pemetaan tipe kolom antara tabel sumber dan tujuan. Setelah dikonfigurasi, klik Apply and Refresh Mapping.

Saat mengedit pemetaan tipe kolom, pastikan aturan konversi tipe benar. Aturan yang salah menyebabkan kegagalan konversi tipe yang menghasilkan data kotor dan memengaruhi eksekusi tugas.

Edit the destination table schema (opsional)

Sistem secara otomatis membuat tabel tujuan yang belum ada berdasarkan aturan pemetaan nama tabel kustom, atau menggunakan kembali tabel yang sudah ada dengan nama yang sama.

DataWorks secara otomatis menghasilkan skema tabel tujuan berdasarkan skema tabel sumber. Intervensi manual tidak diperlukan dalam skenario umum. Anda juga dapat memodifikasi skema tabel dengan cara berikut:

  • Menambahkan kolom ke satu tabel: Klik tombol image.png di kolom Destination Table Name untuk menambahkan kolom.

  • Menambahkan kolom secara batch: Pilih semua tabel yang akan disinkronkan dan pilih Batch Modify > Destination Table Schema - Batch Modify and Add Field di bagian bawah tabel.

  • Mengganti nama kolom tidak didukung.

Untuk tabel yang sudah ada, Anda hanya dapat menambahkan kolom. Untuk tabel baru, Anda dapat menambahkan kolom, kolom partisi, serta mengatur tipe tabel atau properti tabel. Lihat area yang dapat diedit di halaman untuk detailnya.

Value assignment

Kolom native dipetakan secara otomatis berdasarkan kolom dengan nama yang sama di tabel sumber dan tujuan. Kolom yang baru ditambahkan pada langkah sebelumnya memerlukan pemberian nilai secara manual. Lakukan operasi berikut:

  • Pemberian nilai per tabel: Klik tombol Configuration di kolom Value assignment untuk memberikan nilai ke kolom tabel tujuan.

  • Pemberian nilai batch: Di bagian bawah daftar, pilih Batch Modify > Value assignment untuk memberikan nilai secara batch ke kolom dengan nama yang sama di tabel tujuan.

Anda dapat memberikan nilai konstanta atau variabel ke kolom. Alihkan tipe di Value Type. Metode berikut didukung:

  • Kolom tabel

    • Manual input: Masukkan nilai konstanta atau parameter penjadwalan secara langsung, seperti abc atau ${bizdate}.

    • Select variable: Pilih variabel yang disediakan sistem sebagai nilai kolom. Untuk jenis variabel, lihat deskripsi di halaman.

    • Source column: Gunakan nilai kolom tabel sumber sebagai nilai kolom. Tipe nilai dapat berupa nilai kolom atau nilai waktu.

      • Nilai kolom: Jika kolom sumber bukan tipe waktu, Anda dapat langsung menulis nilai kolom sumber ke kolom tujuan.

      • Nilai waktu: Jika nilai kolom sumber adalah nilai waktu, Anda dapat memprosesnya sesuai format berbeda dan menentukan Destination Format untuk memformat nilai partisi.

        • String waktu: String yang merepresentasikan waktu, seperti 2018-10-23 02:13:56 atau 2021/05/18. Serialisasi sebagai waktu dengan menentukan format waktu sumber dan tujuan. Untuk contoh di atas, Anda dapat menggunakan format yyyy-MM-dd HH:mm:ss dan yyyy/MM/dd masing-masing untuk serialisasi.

        • Objek waktu: Jika nilai sumber adalah tipe waktu seperti Date atau Datetime, pilih tipe yang sesuai secara langsung.

        • Unix timestamp (detik): Timestamp tingkat detik. Angka atau string dalam format timestamp 10 digit juga didukung, seperti 1610529203 atau "1610529203".

        • Unix timestamp (milidetik): Timestamp tingkat milidetik. Angka atau string dalam format timestamp 13 digit juga didukung, seperti 1610529203002 atau "1610529203002".

    • Function: Terapkan transformasi sederhana ke kolom sumber menggunakan fungsi untuk menghasilkan nilai partisi. Untuk informasi lebih lanjut, lihat Function reference.

  • Kolom partisi: Buat partisi secara dinamis berdasarkan nilai yang dienumerasi atau waktu event dari kolom sumber.

    • Manual input: Masukkan nilai konstanta atau parameter penjadwalan yang telah dikonfigurasi di Configure Scheduling Parameters for Periodical Scheduling, seperti abc atau ${bizdate}.

Source Split Key

Di kolom source split key, pilih kolom dari tabel sumber dalam daftar drop-down atau pilih Not Split. Selama eksekusi tugas, data dibagi menjadi beberapa tugas berdasarkan kolom ini untuk pembacaan data batch secara konkuren.

Kami menyarankan Anda menggunakan kolom dengan distribusi data merata, seperti primary key tabel, sebagai source split key. Tipe string, floating-point, dan date tidak didukung.

Source split key saat ini hanya didukung ketika sumbernya adalah MySQL.

Skip Full Synchronization

Jika sinkronisasi full dikonfigurasi di langkah 3, Anda dapat membatalkan sinkronisasi data full untuk tabel tertentu. Ini berlaku ketika Anda telah menyinkronkan data full ke tujuan melalui metode lain.

Full condition

Terapkan filter berbasis kondisi ke sumber selama fase full load. Tentukan hanya klausa WHERE di sini tanpa kata kunci WHERE.

Configure DML Rule

Filter pemrosesan pesan DML dan mengontrol data perubahan (Insert, Update, Delete) yang ditangkap dari sumber sebelum data ditulis ke tujuan selama sinkronisasi real-time. Aturan ini hanya berlaku selama fase inkremental.

Full Merge Cycle

Saat ini, hanya penggabungan harian yang didukung. Anda dapat mengonfigurasi waktu penjadwalan spesifik untuk tugas penggabungan di Custom Merge Time.

Merge Primary Key

Anda dapat menentukan primary key dengan memilih satu atau beberapa kolom dalam tabel.

  • Primary key kolom tunggal: Pilih satu kolom dengan nilai unik (seperti id) sebagai primary key.

  • Primary key komposit: Jika tidak ada satu kolom pun yang unik, pilih kombinasi beberapa kolom. Nilai gabungan kolom-kolom ini harus secara unik mengidentifikasi setiap baris untuk memastikan keunikan data selama penulisan dan mencegah penimpaan.

Langkah 6: Konfigurasi lanjutan

Konfigurasi parameter lanjutan

Jika Anda memerlukan konfigurasi tugas detail halus untuk memenuhi kebutuhan sinkronisasi kustom, buka tab Advanced Parameters untuk memodifikasi parameter lanjutan.

  1. Klik Advanced Configuration di pojok kanan atas halaman untuk membuka halaman konfigurasi parameter lanjutan.

  2. Modifikasi nilai parameter berdasarkan deskripsi parameter. Arti setiap parameter dijelaskan di samping nama parameter.

  3. Konfigurasi berbantuan AI juga didukung. Masukkan instruksi bahasa alami, seperti menyesuaikan konkurensi tugas, dan model bahasa besar akan menghasilkan nilai parameter yang direkomendasikan. Anda dapat memutuskan apakah akan menerima parameter yang dihasilkan AI berdasarkan kebutuhan aktual Anda.

Penting

Modifikasi parameter hanya jika Anda sepenuhnya memahami artinya. Modifikasi yang salah dapat menyebabkan masalah tak terduga seperti latensi tugas, konsumsi resource berlebihan yang menghambat tugas lain, atau kehilangan data.

Konfigurasi kemampuan DDL

Beberapa tautan sinkronisasi real-time dapat mendeteksi perubahan metadata pada skema tabel sumber dan memberi tahu tujuan untuk menyinkronkan pembaruan tersebut, atau melakukan tindakan lain seperti memberi peringatan, mengabaikan, atau menghentikan tugas.

Klik Configure DDL Capability di pojok kanan atas halaman untuk menetapkan kebijakan pemrosesan untuk setiap jenis perubahan. Kebijakan yang didukung bervariasi tergantung saluran.

  • Normal: Tujuan memproses informasi perubahan DDL dari sumber.

  • Ignore: Pesan perubahan diabaikan dan tidak ada modifikasi yang dilakukan pada tujuan.

  • Error: Tugas sinkronisasi real-time dihentikan dan statusnya diatur ke Error.

  • Alert: Peringatan dikirim ketika jenis perubahan ini terjadi pada sumber. Anda harus mengonfigurasi aturan notifikasi DDL di Configure Alert Rule.

Catatan

Setelah kolom baru ditambahkan di sumber dan disinkronkan ke tujuan melalui DDL, sistem tidak melakukan backfill data yang ada di tabel tujuan untuk kolom tersebut.

Langkah 7: Jalankan tugas sinkronisasi

  1. Setelah menyelesaikan semua konfigurasi, klik Save untuk menyimpan tugas.

  2. Di halaman Data Integration > Sync Tasks, temukan tugas sinkronisasi yang telah Anda buat, lalu klik Deploy di kolom Operation. Jika Anda memilih Start immediately after deployment selama deployment, tugas akan langsung dijalankan setelah Anda mengonfirmasi. Jika tidak, Anda harus menjalankan tugas secara manual.

    Catatan

    Tugas Data Integration harus diterapkan ke lingkungan produksi sebelum dapat dijalankan. Oleh karena itu, Anda harus melakukan operasi Publish setelah membuat atau mengedit tugas agar perubahan berlaku.

  3. Klik Name/ID tugas yang sesuai di Tasks untuk melihat proses eksekusi tugas secara detail.

Langkah berikutnya

Setelah menyelesaikan konfigurasi tugas, Anda dapat mengelola tugas yang telah dibuat, menambah atau menghapus tabel, mengonfigurasi peringatan pemantauan untuk tugas, serta melihat metrik utama tugas. Untuk informasi lebih lanjut, lihat Manage synchronization tasks.

FAQ

T: Mengapa data pada tabel dasar tidak diperbarui sesuai harapan?

J: Berikut adalah analisis akar penyebab dan solusinya:

Symptom

Cause

Solution

Pemeriksaan produksi data untuk partisi T-1 tabel log inkremental gagal.

Tugas sinkronisasi real-time gagal, menyebabkan data partisi T-1 di tabel log inkremental tidak diproduksi secara normal.

  • Periksa penyebab kegagalan tugas sinkronisasi real-time dan mulai ulang tugas dari offset yang gagal.

    Catatan

    Retensi binlog RDS terbatas. Jika binlog pada titik waktu yang sesuai telah dipurge, tugas sinkronisasi real-time akan melaporkan error bahwa offset tidak ditemukan.

  • Konfigurasikan peringatan pemantauan untuk subtugas sinkronisasi real-time.

Pemeriksaan produksi data untuk partisi T-2 tabel dasar tujuan gagal.

  1. Tugas penggabungan hari sebelumnya gagal.

  2. Partisi hari sebelumnya dari tabel dasar dihapus.

  • Konfigurasikan pemantauan status eksekusi untuk node penggabungan. Untuk informasi lebih lanjut, lihat Configure monitoring rules.

  • Jika Anda secara tidak sengaja menghapus partisi T-2 tabel dasar, gunakan fitur backfill data untuk memulihkannya. Setelah partisi dipulihkan, jalankan ulang node penggabungan. Untuk informasi lebih lanjut, lihat Backfill data.