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:
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.
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.
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
Masuk ke Konsol DataWorks. Di wilayah target, klik di panel navigasi kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Integration.
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
Di bagian Source Information, pilih sumber data
MySQLyang telah Anda tambahkan. Di bagian Destination, pilih sumber dataMaxComputeyang telah Anda tambahkan.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.
CatatanTugas 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.
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
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.
|
Customize Mapping Rules for Destination Table Names (opsional) | Sistem memiliki aturan default untuk pembuatan nama tabel:
Skenario berikut didukung:
|
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:
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:
Anda dapat memberikan nilai konstanta atau variabel ke kolom. Alihkan tipe di Value Type. Metode berikut didukung:
|
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 ( |
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.
|
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.
Klik Advanced Configuration di pojok kanan atas halaman untuk membuka halaman konfigurasi parameter lanjutan.
Modifikasi nilai parameter berdasarkan deskripsi parameter. Arti setiap parameter dijelaskan di samping nama parameter.
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.
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.
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
-
Setelah menyelesaikan semua konfigurasi, klik Save untuk menyimpan tugas.
-
Di halaman , 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.
CatatanTugas 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.
-
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. |
|
Pemeriksaan produksi data untuk partisi T-2 tabel dasar tujuan gagal. |
|
|
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.
di kolom Destination Table Name untuk menambahkan kolom.