DataWorks Data Integration menyinkronkan data di antara berbagai sumber data, termasuk MySQL, MaxCompute, Hologres, dan Kafka. Layanan ini menyediakan sinkronisasi batch untuk pekerjaan Extract, Transform, and Load (ETL) T+1, Sinkronisasi Data Real-time untuk replikasi data dengan latensi tingkat detik, serta Migrasi Seluruh Database.
Solusi sinkronisasi
Jenis | Granularitas sumber | Granularitas target | Ketepatan waktu | Skenario sinkronisasi |
Batch tabel tunggal | Tabel tunggal | Tabel tunggal/partisi | T+1 atau berkala | Sinkronisasi penuh atau inkremental secara berkala |
Batch sharding | Beberapa tabel dengan skema identik | Tabel tunggal/partisi | T+1 atau berkala | Sinkronisasi penuh atau inkremental secara berkala |
Real-time tabel tunggal | Tabel tunggal | Tabel tunggal/partisi | Latensi tingkat detik hingga menit | Capture Perubahan Data (CDC) |
Batch seluruh database | Seluruh database atau beberapa tabel | Tabel dan partisi yang sesuai | Satu kali atau berkala | Sinkronisasi penuh atau inkremental satu kali atau berkala. Mendukung sinkronisasi penuh awal diikuti pembaruan inkremental berkala. |
Real-time seluruh database | Seluruh database atau beberapa tabel | Tabel dan partisi yang sesuai | Latensi tingkat detik hingga menit | Sinkronisasi penuh + Capture Perubahan Data (CDC) |
Sinkronisasi penuh dan inkremental seluruh database | Seluruh database atau beberapa tabel | Tabel dan partisi yang sesuai | Sinkronisasi penuh awal: Pemrosesan batch Sinkronisasi inkremental berikutnya: T+1 | Sinkronisasi penuh + Capture Perubahan Data (CDC) |
Pendekatan sinkronisasi
Saat memilih pendekatan sinkronisasi data, pertimbangkan dua pertanyaan inti berikut:
Persyaratan latensi: Seberapa sering Anda perlu menyinkronkan data? Apakah pembaruan harian (batch) sudah cukup, atau Anda memerlukan pembaruan real-time dalam hitungan detik atau menit?
Skala dan kompleksitas: Berapa banyak tabel yang perlu Anda sinkronkan? Apakah logika pemrosesan untuk tabel-tabel tersebut konsisten (tabel tunggal vs. seluruh database)?
Berdasarkan faktor-faktor tersebut, kami merekomendasikan dua kategori utama pendekatan sinkronisasi: sinkronisasi batch dan sinkronisasi real-time.
1. Sinkronisasi batch (T+1/berkala)
Pendekatan batch cocok untuk skenario yang tidak sensitif terhadap waktu (misalnya, T+1) dan memerlukan pemrosesan batch berkala.
Persyaratan awal: Untuk menerapkan sinkronisasi batch inkremental, tabel sumber harus memiliki bidang untuk melacak perubahan inkremental, seperti timestamp gmt_modified atau ID auto-increment. Jika tidak ada bidang semacam itu, Anda harus melakukan sinkronisasi penuh berkala.
1.1. Batch tabel tunggal
Gunakan pendekatan ini ketika Anda perlu melakukan pemrosesan detail halus pada sejumlah kecil tabel data inti yang heterogen.
Keunggulan utama: Logika pemrosesan yang fleksibel.
Transformasi detail halus: Mendukung pemetaan bidang kompleks, penyaringan data, penugasan nilai konstan, transformasi berbasis fungsi, serta bahkan pemrosesan berbantuan AI.
Integrasi sumber heterogen: Pilihan optimal untuk menangani sumber data non-standar seperti API dan file log.
Batasan utama: Biaya tinggi pada skala besar.
Overhead konfigurasi tinggi: Menyinkronkan sejumlah besar tabel memerlukan upaya signifikan untuk mengonfigurasi dan memelihara setiap tugas secara individual.
Konsumsi sumber daya tinggi: Setiap tugas dijadwalkan secara independen. Konsumsi sumber daya dari 100 tugas tabel tunggal jauh melebihi konsumsi satu tugas seluruh database.
Pendekatan yang direkomendasikan untuk Batch tabel tunggal: Tugas sinkronisasi batch untuk tabel tunggal
1.2. Batch seluruh database
Gunakan pendekatan ini ketika Anda perlu memindahkan sejumlah besar tabel data homogen dari satu lokasi ke lokasi lain secara efisien.
Keunggulan utama: Efisiensi operasional & pemeliharaan (O&M) tinggi serta biaya rendah.
Efisiensi tinggi: Mengonfigurasi ratusan tabel dalam satu operasi dengan pencocokan objek otomatis, meningkatkan efisiensi pengembangan secara signifikan.
Hemat biaya: Sumber daya dijadwalkan dan dioptimalkan secara holistik, sehingga biayanya sangat rendah. Misalnya, konsumsi sumber daya satu tugas seluruh database mungkin hanya 2 CU, dibandingkan 100 CU untuk 100 tugas tabel tunggal.
Contoh kasus penggunaan umum: Membangun lapisan Operational Data Store (ODS) untuk gudang data, membuat cadangan database berkala, serta memigrasikan data ke cloud.
Batasan utama: Logika pemrosesan terbatas.
Pendekatan ini terutama digunakan untuk replikasi data dan tidak mendukung logika transformasi kompleks untuk tiap tabel.
Pendekatan yang direkomendasikan untuk Batch seluruh database: Tugas sinkronisasi batch seluruh database.
2. Sinkronisasi real-time (tingkat detik hingga menit)
Pendekatan real-time cocok untuk skenario yang memerlukan penangkapan perubahan data real-time (insert, update, dan delete) dari sumber guna mendukung analisis real-time dan respons bisnis.
Persyaratan awal: Sumber harus mendukung Capture Perubahan Data (CDC) atau merupakan antrian pesan itu sendiri. Contohnya, MySQL harus memiliki binary logging diaktifkan, atau sumber bisa berupa instans Kafka.
Real-time tabel tunggal atau seluruh database
Logika keputusan mirip dengan pendekatan batch:
Real-time tabel tunggal: Cocok untuk kasus penggunaan yang melibatkan pemrosesan kompleks terhadap aliran perubahan real-time dari satu tabel inti.
Real-time seluruh database: Pilihan utama untuk membangun gudang data real-time, menerapkan pemulihan bencana database real-time, serta mengintegrasikan dengan data lake real-time. Pendekatan ini juga menawarkan keuntungan signifikan dalam hal efisiensi dan hemat biaya.
Pendekatan real-time yang direkomendasikan: Tugas sinkronisasi real-time untuk tabel tunggal, Tugas sinkronisasi real-time seluruh database
3. CDC real-time ke target hanya-append
Konteks: Sinkronisasi real-time menangkap data CDC, yang mencakup operasi Insert, Update, dan Delete. Untuk sistem penyimpanan hanya-append seperti tabel non-Delta di MaxCompute yang tidak mendukung operasi Update atau Delete fisik secara native, menulis langsung aliran CDC dapat menyebabkan ketidaksesuaian status data. Contohnya, tabel target tidak akan mencerminkan operasi delete.
Solusi DataWorks: Pola Base + Log
Solusi ini diimplementasikan sebagai tugas sinkronisasi penuh dan inkremental seluruh database. Solusi ini bekerja dengan membuat
Base table(untuk snapshot penuh) danLog table(untuk log inkremental) di target.Cara kerjanya: Aliran data CDC ditulis ke
Log tablesecara real-time. Kemudian, sesuai jadwal T+1, sistem menjalankan tugas otomatis untuk Merge perubahan dariLog tablekeBase table, menghasilkan snapshot penuh yang diperbarui. Dengan pendekatan ini, data ditulis ke Log table dalam hitungan menit, sedangkan status akhir yang telah digabungkan hanya terlihat setelah tugas T+1 selesai. Pendekatan ini menyeimbangkan penangkapan data real-time dengan konsistensi akhir yang diperlukan oleh gudang data berbasis batch.
Pendekatan yang direkomendasikan: Tugas sinkronisasi penuh dan inkremental seluruh database (dekat real-time).
Kemampuan baca/tulis sumber data
Sumber data | Batch tabel tunggal | tabel tunggal waktu nyata | Batch seluruh database | Seluruh database real-time | Sinkronisasi penuh dan inkremental seluruh database |
Baca | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | Tulis | Baca | Tulis | - | |
Baca/Tulis | - | Baca | - | - | |
Baca/Tulis | Tulis | - | Baca/Tulis | - | |
Baca | - | - | - | - | |
Baca | - | - | - | - | |
Baca/Tulis | - | Baca | - | - | |
Baca | - | - | - | - | |
Baca | - | - | - | - | |
Baca/Tulis | Baca/Tulis | - | Tulis | - | |
Baca/Tulis | Tulis | Tulis | Tulis | - | |
Baca/Tulis | - | Baca | - | - | |
Baca/Tulis | Tulis | Baca | - | - | |
Baca/Tulis | - | Baca | - | - | |
Baca/Tulis | - | Baca | - | - | |
Elasticsearch | Baca/Tulis | Tulis | Tulis | Tulis | - |
Baca/Tulis | - | - | - | - | |
GBase8a | Baca/Tulis | - | - | - | - |
HBase | HBase Baca/Tulis HBase 20xsql Read HBase 11xsql Write | - | - | - | - |
Baca/Tulis | - | - | - | - | |
Hive | Baca/Tulis | - | Baca/Tulis | - | - |
Baca/Tulis | Baca/Tulis | Baca/Tulis | Tulis | - | |
Baca | - | - | - | - | |
Baca/Tulis | Baca/Tulis | - | Tulis | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | Tulis | - | Tulis | - | |
Baca/Tulis | Baca | - | - | - | |
Baca/Tulis | Tulis | Tulis | Tulis | Tulis | |
Baca/Tulis | - | - | - | - | |
Tulis | - | - | - | - | |
Tulis | - | - | - | - | |
Baca | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | - | - | Baca | - | |
Baca/Tulis | Baca | Baca | Baca | Baca | |
Tulis | - | - | - | - | |
Baca/Tulis | Baca | Baca | Baca | Baca | |
Baca/Tulis | - | Tulis | Tulis | - | |
Baca/Tulis | - | Tulis | Tulis | - | |
Baca/Tulis | Baca | Baca | Baca | Baca | |
Baca/Tulis | - | Baca | Baca | - | |
Baca/Tulis | - | Baca | Baca | - | |
Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | Tulis | Tulis | Tulis | - | |
Baca/Tulis | - | Baca | - | - | |
Baca/Tulis | Tulis | - | - | - | |
Baca/Tulis | - | - | - | - | |
Tulis | - | - | - | - | |
Vertica | Baca/Tulis | - | - | - | - |
Baca | - | - | - | - |
Dokumen terkait
Panduan ini mencantumkan dokumen Data Integration penting untuk membantu Anda memulai.
Untuk konfigurasi sumber data, lihat Manajemen sumber data.
Untuk mengonfigurasi tugas sinkronisasi, lihat berikut ini:
Untuk contoh kasus penggunaan lainnya, lihat berikut ini:
Untuk jawaban atas pertanyaan umum tentang Sinkronisasi Data, lihat FAQ Data Integration.