全部产品
Search
文档中心

DataWorks:Konfigurasi tugas sinkronisasi penuh dan inkremental

更新时间:Mar 11, 2026

Data Integration memungkinkan Anda melakukan sinkronisasi penuh dan inkremental seluruh database dari sumber seperti ApsaraDB for OceanBase, MySQL, Oracle, dan PolarDB ke MaxCompute. Proses ini menggabungkan migrasi data penuh awal dengan sinkronisasi real-time berkelanjutan untuk data inkremental, yang kemudian digabungkan ke tujuan setiap hari (T+1). Topik ini menggunakan contoh sinkronisasi dari MySQL ke MaxCompute untuk menunjukkan cara membuat tugas sinkronisasi penuh dan inkremental.

Cara kerja

Tugas sinkronisasi penuh dan inkremental menggunakan proses terpadu untuk melakukan muatan penuh awal data historis, lalu terus-menerus menyinkronkan data inkremental. Setelah tugas dimulai, sistem secara otomatis membuat dan mengoordinasikan subtask offline dan real-time untuk menggabungkan data ke tabel tujuan, yang disebut tabel dasar (base table).

Proses intinya terdiri dari tiga fase:

  1. Muatan penuh awal: Saat tugas dimulai, tugas sinkronisasi batch dijalankan terlebih dahulu untuk memigrasikan struktur tabel dan data historis dari semua tabel di database sumber ke tabel dasar tujuan di MaxCompute. Setelah muatan penuh awal selesai, tugas sinkronisasi batch ini dihentikan sementara.

  2. Sinkronisasi data inkremental: Setelah migrasi penuh, sistem menjalankan tugas sinkronisasi real-time yang terus-menerus menangkap perubahan data inkremental (operasi Insert, Update, dan Delete) dari database sumber—misalnya, dari binary log (binlog) MySQL—dan menuliskannya ke tabel log sementara di MaxCompute dalam waktu nyaris real-time.

  3. Penggabungan berkala: Sistem secara otomatis menjalankan tugas Merge setiap hari (T+1) untuk menggabungkan data inkremental yang terakumulasi di tabel log dari hari sebelumnya (T) dengan data penuh di tabel dasar. Proses ini menghasilkan snapshot lengkap terbaru dari data untuk hari T dan menuliskannya ke partisi baru di tabel dasar. Tugas merge dijalankan sekali per hari.

Diagram berikut menggambarkan alur data saat menulis ke tabel partisi:

image

Tugas ini memiliki fitur-fitur berikut:

  • Pemetaan tabel many-to-many atau many-to-one: Anda dapat menyinkronkan beberapa tabel sumber ke tabel tujuan masing-masing atau menggabungkan data dari beberapa tabel sumber ke satu tabel tujuan menggunakan aturan pemetaan.

  • Komposisi tugas: Tugas sinkronisasi penuh dan inkremental terdiri dari subtask sinkronisasi batch untuk muatan penuh awal, subtask sinkronisasi real-time untuk data inkremental, dan tugas Merge untuk konsolidasi data.

  • Dukungan tabel tujuan: Anda dapat menulis data ke tabel partisi maupun non-partisi di MaxCompute.

Batasan

  • Persyaratan resource: Tugas ini memerlukan Serverless resource group. Untuk sinkronisasi berbasis instans, spesifikasi resource minimum adalah grup sumber daya eksklusif untuk Data Integration dengan 8-core dan 16 GB serta 2 CU untuk Serverless resource group.

  • Konektivitas jaringan: Pastikan konektivitas jaringan antara resource group Data Integration dan kedua sumber data (misalnya, MySQL dan MaxCompute). Untuk informasi lebih lanjut, lihat Solusi konektivitas jaringan.

  • Batasan wilayah: Sinkronisasi hanya didukung ke sumber data MaxCompute buatan pengguna yang berada di Wilayah yang sama dengan ruang kerja DataWorks saat ini. Saat menggunakan sumber data MaxCompute buatan pengguna, Anda tetap harus menyambungkan resource komputasi MaxCompute di bagian Data Development ruang kerja DataWorks Anda. Jika tidak, Anda tidak dapat membuat node SQL MaxCompute, dan pembuatan node 'done' sinkronisasi penuh akan gagal.

  • Batasan resource group penjadwalan: Tugas ini menggunakan Serverless resource group yang dikonfigurasi sebagai resource group penjadwalan.

  • Batasan jenis tabel tujuan: Anda tidak dapat menyinkronkan data ke tabel eksternal MaxCompute.

Penting

  • Persyaratan primary key: Tabel tanpa primary key tidak dapat disinkronkan. Untuk tabel yang tidak memiliki primary key, Anda harus secara manual menentukan satu atau beberapa kolom sebagai primary key bisnis menggunakan opsi Specify Primary Key selama konfigurasi.

  • Penundaan visibilitas data: Setelah Anda mengonfigurasi tugas sinkronisasi penuh dan inkremental ke MaxCompute, hanya data historis yang tersedia untuk kueri pada hari yang sama. Data inkremental baru dapat dikueri di MaxCompute setelah tugas Merge selesai pada hari berikutnya. Untuk informasi lebih lanjut, lihat deskripsi penggabungan berkala di bagian Cara kerja.

  • Penyimpanan dan siklus hidup: Tugas sinkronisasi penuh dan inkremental membuat partisi penuh baru setiap hari. Untuk mencegah konsumsi penyimpanan berlebihan, tabel MaxCompute yang dibuat otomatis oleh tugas sinkronisasi memiliki siklus hidup default 30 hari. Jika durasi ini tidak sesuai dengan kebutuhan bisnis Anda, Anda dapat mengubah siklus hidup dengan mengklik nama tabel MaxCompute yang sesuai selama konfigurasi tugas. Untuk informasi lebih lanjut, lihat Edit struktur tabel tujuan (opsional).

  • SLA: Data Integration menggunakan saluran data MaxCompute untuk unggah dan unduh data. Untuk informasi lebih lanjut tentang perjanjian tingkat layanan (SLA) saluran data sinkronisasi, lihat Skenario dan alat untuk Data Transfer Service (Upload). Evaluasi pilihan teknis Anda berdasarkan SLA saluran data MaxCompute.

  • Kebijakan retensi binlog: Sinkronisasi real-time bergantung pada binary log (binlog) database sumber MySQL. Pastikan periode retensi binlog cukup untuk mencegah kegagalan sinkronisasi. Jika tugas dijeda lama atau mencoba ulang setelah kegagalan, tugas tersebut mungkin gagal menemukan posisi awal jika binlog yang diperlukan telah dipurge.

Penagihan

  • Tugas sinkronisasi penuh dan inkremental mencakup tugas sinkronisasi batch untuk fase muatan penuh, tugas sinkronisasi real-time untuk fase inkremental, dan tugas berkala untuk fase penggabungan berkala. Ketiga tugas ini ditagih secara terpisah dan mengonsumsi CU dari resource group. Untuk informasi lebih lanjut tentang penagihan, lihat Penagihan Serverless resource groups. Tugas berkala juga dikenakan biaya penjadwalan. Untuk informasi lebih lanjut, lihat Biaya instans penjadwalan.

  • Selain itu, proses sinkronisasi ke MaxCompute memerlukan penggabungan berkala data penuh dan inkremental, yang mengonsumsi resource komputasi MaxCompute. Biaya ini ditagih langsung oleh MaxCompute dan sebanding dengan ukuran dataset penuh serta frekuensi penggabungan. Untuk informasi lebih lanjut, lihat Item penagihan dan harga.

Prosedur

Langkah 1: Pilih jenis tugas sinkronisasi

  1. Buka halaman Data Integration.

    Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi kiri, pilih Data Integration > Data Integration. Di halaman yang muncul, pilih ruang kerja yang diinginkan dari daftar drop-down dan klik Go to Data Integration.

  2. Di panel navigasi kiri, klik Synchronization Task. Di bagian atas halaman, klik Create Synchronization Task dan konfigurasikan parameter berikut:

    • Source Type: MySQL.

    • Destination Type: MaxCompute.

    • Specific Type: Full and Incremental for Entire Database.

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

Langkah 2: Mengonfigurasi sumber data dan kelompok sumber daya

  1. Untuk Source Information, pilih sumber data MySQL. Untuk Destination, pilih sumber data MaxCompute.

  2. Di bagian Running Resources, pilih Resource Group untuk tugas sinkronisasi dan alokasikan Resource Group untuk CU. Anda dapat mengatur CU secara terpisah untuk sinkronisasi penuh dan inkremental guna mengontrol resource secara tepat dan mencegah pemborosan.

    Catatan

    DataWorks mengirimkan tugas sinkronisasi batch ke resource group eksekusi Data Integration melalui resource group penjadwalan. Akibatnya, tugas offline mengonsumsi resource dari kedua resource group tersebut, dengan resource group penjadwalan dikenakan biaya penjadwalan.

  3. Pastikan kedua sumber data (sumber dan tujuan) lulus pemeriksaan Connectivity Check.

Langkah 3: Pilih tabel sumber

Di area Source Table, pilih tabel yang akan disinkronkan dari sumber data. Klik ikon image untuk memindahkan tabel ke daftar Selected Tables.

image

Jika Anda memiliki banyak tabel, Anda dapat menggunakan Database Filtering, Search for Tables, atau mengonfigurasi ekspresi reguler untuk memilih tabel yang diperlukan.

Langkah 4: Konfigurasikan pengaturan tugas

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

    Untuk mencegah kesalahan partisi lintas hari akibat latensi data, perluas rentang ini sedikit. Hal ini memastikan bahwa semua data untuk partisi digabungkan dengan benar.

  • Merge task scheduling: Atur jadwal untuk tugas Merge harian. Untuk informasi lebih lanjut tentang cara mengonfigurasi penjadwalan, lihat Scheduling configuration.

  • Periodic scheduling parameters: Atur parameter penjadwalan yang nantinya dapat digunakan untuk memberikan nilai ke partisi. Hal ini memungkinkan Anda membuat partisi secara otomatis berdasarkan tanggal.

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

Langkah 5: Konfigurasikan pemetaan tabel tujuan

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

Aksi

Deskripsi

Refresh

Sistem secara otomatis mencantumkan tabel sumber yang Anda pilih. Namun, Anda harus merefresh pemetaan agar properti tabel tujuan berlaku.

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

  • Destination Table Name: Nama tabel tujuan dihasilkan secara otomatis berdasarkan aturan di Customize Mapping Rules for Destination Table Names. Format default-nya adalah ${SourceDatabaseName}_${TableName}. Jika tabel dengan nama ini belum ada di tujuan, sistem akan membuatnya secara otomatis.

Customize Mapping Rules for Destination Table Names (Opsional)

Sistem memiliki aturan penamaan tabel default: ${SourceDatabaseName}_${TableName}. Anda dapat mengklik tombol Edit di kolom Customize Mapping Rules for Destination Table Names untuk menambahkan aturan kustom.

  • Rule Name: Tentukan nama untuk aturan tersebut. Gunakan nama yang jelas menunjukkan tujuan bisnisnya.

  • Destination Table Name: Anda dapat menyusun nama tabel tujuan dengan mengklik ikon image dan menggabungkan opsi dari Manual Input dan Built-in Variable. Variabel tersebut mencakup nama sumber data sumber, nama database sumber, dan nama tabel sumber.

  • Edit Built-in Variable: Anda dapat menerapkan konversi string pada variabel bawaan.

Fitur ini mendukung skenario berikut:

  1. Tambahkan awalan atau akhiran ke nama: Tambahkan awalan atau akhiran konstan ke nama tabel sumber.

    Rule configuration

    Result

    image

    image

  2. Lakukan penggantian string seragam: Ganti string dev_ di semua nama tabel sumber dengan prd_.

    Rule configuration

    Result

    image

    image

  3. Tulis data dari beberapa tabel ke satu tabel.

    Rule configuration

    Result

    image

    image

Edit Mapping of Field Data Types (Opsional)

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

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

Edit Destination Table Structure (Opsional)

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

DataWorks secara otomatis menghasilkan struktur tabel tujuan berdasarkan struktur tabel sumber. Dalam kebanyakan kasus, tidak diperlukan intervensi manual. Anda juga dapat memodifikasi struktur tabel dengan cara berikut:

  • Tambahkan field ke satu tabel: Klik ikon image.png di kolom Destination Table Name untuk menambahkan field.

  • Tambahkan field secara batch: Pilih semua tabel yang ingin disinkronkan, lalu pilih Batch Modify > Destination Table Schema - Batch Modify and Add Field di bagian bawah daftar.

  • Anda tidak dapat mengganti nama kolom.

Untuk tabel yang sudah ada, Anda hanya dapat menambahkan field. Untuk tabel baru, Anda dapat menambahkan field, field partisi, serta mengatur tipe atau properti tabel. Untuk informasi lebih lanjut, lihat bagian yang dapat diedit di UI.

Value assignment

Field native dipetakan secara otomatis berdasarkan kecocokan nama field antara tabel sumber dan tujuan. Anda harus secara manual memberikan nilai untuk field baru yang ditambahkan pada langkah sebelumnya. Untuk melakukannya:

  • Berikan nilai untuk satu tabel: Klik tombol Configuration di kolom Value assignment untuk memberikan nilai ke field tabel tujuan.

  • Berikan nilai secara batch: Di bagian bawah daftar, pilih Batch Modify > Value assignment untuk memberikan nilai ke field yang sama di beberapa tabel tujuan.

Anda dapat memberikan konstanta atau variabel. Alihkan tipe di daftar drop-down Value Type. Metode berikut didukung:

  • Table Field

    • Manual assignment: Masukkan nilai konstan atau parameter penjadwalan, seperti abc atau ${bizdate}.

    • Select variable: Pilih variabel yang disediakan sistem sebagai nilai field. Untuk informasi lebih lanjut tentang jenis variabel, lihat deskripsi di UI.

    • Source Field: Gunakan nilai field tabel sumber. Anda dapat memilih untuk menggunakan nilai field atau nilai waktu.

      • Field Value: Jika field sumber bukan tipe berbasis waktu, Anda dapat menulis nilainya langsung ke field tujuan.

      • Time Value: Jika field sumber berisi nilai terkait waktu, Anda dapat memprosesnya berdasarkan formatnya dan menentukan Destination Format untuk memformat nilai output.

        • Time String: String yang merepresentasikan waktu, seperti 2018-10-23 02:13:56 atau 2021/05/18. Anda dapat mengubah string ini menjadi nilai waktu dengan menentukan format waktu sumber dan tujuan. Untuk contoh di atas, Anda dapat menggunakan format seperti yyyy-MM-dd HH:mm:ss dan yyyy/MM/dd.

        • Time Object: Jika nilai sumber sudah merupakan tipe data berbasis waktu seperti Date atau Datetime, pilih tipe ini.

        • Unix Timestamp (seconds): Timestamp tingkat detik 10 digit, seperti 1610529203 atau "1610529203".

        • Unix Timestamp (milliseconds): Timestamp tingkat milidetik 13 digit, seperti 1610529203002 atau "1610529203002".

    • Function: Gunakan fungsi untuk melakukan transformasi sederhana pada nilai field sumber sebelum memberikannya ke field tujuan. Untuk informasi lebih lanjut, lihat Use function expressions to assign values to destination table fields.

  • Partition Field: Anda dapat membuat partisi secara dinamis berdasarkan nilai yang dihitung atau waktu event dari field sumber.

    • Manual assignment: Anda dapat memasukkan nilai konstan atau parameter penjadwalan yang telah Anda atur di konfigurasi Configure Scheduling Parameters for Periodical Scheduling, seperti abc atau ${bizdate}.

Source Split PK

Dari daftar drop-down Source Split PK, Anda dapat memilih field dari tabel sumber atau memilih Not Split. Saat tugas sinkronisasi dijalankan, tugas tersebut akan dibagi menjadi beberapa subtask berdasarkan field ini untuk membaca data secara konkuren.

Gunakan field dengan distribusi data merata, seperti primary key, sebagai kolom split. Tipe string, float, dan date tidak didukung.

Saat ini, fitur Source Split PK hanya didukung ketika sumbernya adalah MySQL.

Execute Full Synchronization

Jika Anda telah mengonfigurasi sinkronisasi data penuh di langkah 3, Anda dapat menghapus centang opsi ini untuk melewati sinkronisasi data penuh untuk tabel tertentu. Ini berguna jika Anda telah menyinkronkan dataset penuh ke tujuan menggunakan metode lain.

Full condition

Terapkan kondisi filter ke sumber selama fase muatan penuh. Masukkan hanya konten klausa WHERE, tanpa kata kunci WHERE.

Configure DML Rule

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

Full Data Merge Cycle

Saat ini, hanya penggabungan harian yang didukung. Anda dapat mengonfigurasi waktu penjadwalan spesifik untuk tugas penggabungan di pengaturan Custom merge time.

Merge Primary Key

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

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

  • Primary key komposit: Jika tidak ada kolom unik tunggal, Anda dapat memilih beberapa kolom untuk membentuk kunci komposit. Kombinasi nilai di kolom-kolom ini harus secara unik mengidentifikasi setiap baris untuk memastikan keunikan data dan mencegah penimpaan data.

Langkah 6: Konfigurasikan pengaturan lanjutan

Konfigurasi parameter lanjutan

Untuk menyesuaikan tugas secara detail dan memenuhi kebutuhan sinkronisasi kustom, buka tab Advanced Parameters untuk memodifikasi parameter lanjutan.

  1. Di pojok kanan atas halaman, klik Advanced configuration untuk membuka halaman konfigurasi parameter lanjutan.

  2. Ubah nilai parameter berdasarkan tooltip. Penjelasan untuk setiap parameter ditampilkan di sebelah namanya.

  3. Anda juga dapat menggunakan konfigurasi berbasis AI. Masukkan perintah dalam bahasa alami, seperti menyesuaikan konkurensi tugas, dan model AI akan menghasilkan rekomendasi nilai parameter. Anda kemudian dapat memilih apakah akan menerima parameter yang dihasilkan AI tersebut.

    image

Penting

Modifikasi parameter ini hanya jika Anda benar-benar memahami tujuannya. Perubahan yang salah dapat menyebabkan masalah tak terduga seperti penundaan tugas, konsumsi resource berlebihan yang menghambat tugas lain, atau kehilangan data.

Konfigurasi kemampuan DDL

Beberapa pipeline sinkronisasi real-time dapat mendeteksi perubahan metadata pada struktur tabel sumber dan memberi tahu tujuan. Tujuan kemudian dapat memperbarui dirinya sesuai atau mengambil tindakan lain, seperti mengirim peringatan, mengabaikan perubahan, atau menghentikan tugas.

Di pojok kanan atas halaman, klik Configure DDL Capability untuk mengatur kebijakan penanganan untuk setiap jenis perubahan. Kebijakan yang didukung bervariasi tergantung pada saluran.

  • Normal: Tujuan memproses perubahan DDL dari sumber.

  • Ignore: Pesan perubahan diabaikan, dan tujuan tidak dimodifikasi.

  • Error: Tugas sinkronisasi real-time untuk seluruh database dihentikan, dan statusnya diatur ke Error.

  • Alert: Peringatan dikirim ke pengguna saat jenis perubahan ini terjadi di sumber. Anda harus mengonfigurasi aturan notifikasi DDL di pengaturan Configure Alert Rule.

Catatan

Saat kolom baru ditambahkan di sumber dan juga dibuat di tujuan melalui sinkronisasi DDL, sistem tidak melakukan pengisian ulang data untuk baris yang sudah ada di tabel tujuan.

Langkah 7: Jalankan tugas sinkronisasi

  1. Setelah konfigurasi tugas sinkronisasi selesai, klik Complete di bagian bawah halaman.

  2. Di bagian Synchronization Task halaman Data Integration, temukan tugas sinkronisasi yang telah dibuat dan klik Deploy di kolom Operation. Jika Anda memilih Start immediately after deployment, tugas akan berjalan segera setelah Anda mengklik Confirm; jika tidak, Anda perlu menjalankannya secara manual.

    Catatan

    Tugas Data Integration harus diterapkan ke lingkungan produksi agar dapat dijalankan, sehingga tugas yang baru dibuat atau diedit hanya akan berlaku setelah diterapkan.

  3. Klik Name/ID tugas sinkronisasi di bagian Tasks dan lihat proses berjalan rinci dari tugas sinkronisasi tersebut.

Langkah selanjutnya

Setelah mengonfigurasi tugas, Anda dapat mengelolanya, menambah atau menghapus tabel, mengonfigurasi pemantauan dan peringatan, serta melihat metrik operasional utama. Untuk informasi lebih lanjut, lihat O&M untuk tugas sinkronisasi penuh dan inkremental.

FAQ

Q: Mengapa data di tabel dasar tidak diperbarui seperti yang diharapkan?

A: Hal ini dapat terjadi karena beberapa alasan. Lihat tabel di bawah untuk penyebab umum dan solusinya.

image

Gejala

Penyebab

Solusi

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

Kegagalan tugas sinkronisasi real-time mencegah pembuatan data untuk partisi T-1 di tabel log inkremental.

  • Selidiki penyebab kegagalan tugas sinkronisasi real-time dan mulai ulang tugas tersebut dari titik kegagalan.

    Catatan

    RDS memiliki periode retensi terbatas untuk binary log (binlog). Jika binlog untuk titik waktu yang diperlukan telah dipurge, tugas sinkronisasi real-time akan gagal dan melaporkan error 'starting position not found'.

  • Atur pemantauan dan peringatan untuk subtask sinkronisasi real-time.

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

  1. Tugas Merge dari hari sebelumnya gagal.

  2. Partisi dari hari sebelumnya di tabel dasar dihapus.

  • Konfigurasikan pemantauan untuk status eksekusi tugas Merge. Untuk informasi lebih lanjut, lihat Rule management.

  • Jika partisi T-2 di tabel dasar tidak sengaja dihapus, gunakan fitur pengisian ulang data untuk memulihkannya. Setelah data dipulihkan, jalankan ulang tugas Merge. Untuk informasi lebih lanjut, lihat O&M untuk instans pengisian ulang.