DataWorks Data Integration melakukan sinkronisasi data antara berbagai sumber data, termasuk MySQL, MaxCompute, Hologres, dan Kafka. Layanan ini menyediakan solusi untuk sinkronisasi batch offline, sinkronisasi data real-time, dan migrasi seluruh database guna mendukung berbagai kasus penggunaan seperti ETL offline T+1, replikasi data real-time dengan latensi dalam hitungan detik, serta migrasi database.
Solusi sinkronisasi
Jenis sinkronisasi | Granularitas sumber | Granularitas tujuan | Latensi | Skenario Sinkronisasi |
Sinkronisasi batch untuk satu tabel | Satu tabel | Satu tabel atau partisi | T+1 atau periodik | Sinkronisasi lengkap periodik, sinkronisasi inkremental periodik |
Sinkronisasi batch untuk tabel terpartisi | Beberapa tabel dengan struktur identik | Satu tabel atau partisi | T+1 atau periodik | Sinkronisasi lengkap periodik, sinkronisasi inkremental periodik |
Sinkronisasi real-time untuk satu tabel | Satu tabel | Satu tabel atau partisi | Detik hingga menit | Sinkronisasi inkremental real-time (Change Data Capture (CDC)) |
Sinkronisasi real-time untuk tabel terpartisi | Beberapa tabel logis (agregasi logis dari beberapa tabel fisik) | Memetakan ke beberapa tabel tujuan atau MERGE ke satu tabel tujuan | Detik hingga menit | Sinkronisasi lengkap + sinkronisasi inkremental real-time (CDC) |
Sinkronisasi batch untuk seluruh database | Seluruh database atau beberapa tabel | Memetakan ke beberapa tabel dan partisinya | Sekali atau periodik | Sinkronisasi lengkap sekali/periodik, sinkronisasi inkremental sekali/periodik, sinkronisasi lengkap sekali + sinkronisasi inkremental periodik |
Sinkronisasi real-time untuk seluruh database | Seluruh database atau beberapa tabel | Memetakan ke beberapa tabel dan partisinya | Detik hingga menit | Sinkronisasi lengkap + sinkronisasi inkremental real-time (CDC) |
Sinkronisasi lengkap dan inkremental untuk seluruh database | Seluruh database atau beberapa tabel | Memetakan ke beberapa tabel dan partisinya | Sinkronisasi lengkap awal: Batch Sinkronisasi inkremental berikutnya: T+1 | Sinkronisasi lengkap sekali + sinkronisasi inkremental T+1 (menggunakan pola Base+Log) |
Solusi sinkronisasi yang direkomendasikan
Saat memilih solusi sinkronisasi data, pertimbangkan dua faktor utama:
Kebutuhan latensi: Seberapa sering bisnis Anda memerlukan sinkronisasi data? Apakah pembaruan harian (batch) sudah cukup, atau Anda membutuhkan pembaruan real-time dengan latensi detik hingga menit?
Skala dan kompleksitas: Berapa banyak tabel yang perlu Anda sinkronkan? Apakah logika pemrosesan untuk tabel-tabel tersebut seragam (seluruh database) atau bervariasi (satu tabel)?
Berdasarkan faktor-faktor tersebut, kami merekomendasikan dua kategori utama solusi: sinkronisasi batch dan sinkronisasi real-time.
1. Sinkronisasi batch (T+1/periodik)
Solusi batch cocok untuk skenario yang tidak memerlukan kesegaran data tinggi (misalnya, T+1) dan melibatkan pemrosesan batch periodik.
Prasyarat: Untuk melakukan sinkronisasi batch inkremental, tabel sumber harus memiliki bidang watermark yang mendefinisikan data inkremental, seperti timestamp gmt_modified atau ID auto-increment. Tanpa bidang tersebut, Anda hanya dapat melakukan sinkronisasi lengkap periodik.
a. Sinkronisasi batch untuk satu tabel
Gunakan opsi ini untuk pemrosesan detail halus sejumlah kecil sumber data kritis atau heterogen.
Keunggulan utama: Logika pemrosesan fleksibel.
Transformasi detail halus: Mendukung pemetaan bidang kompleks, penyaringan data, penugasan konstan, transformasi berbasis fungsi, bahkan pemrosesan berbantuan AI.
Integrasi sumber heterogen: Pilihan terbaik untuk memproses sumber data non-standar seperti API dan file log.
Keterbatasan utama: Biaya tinggi pada skala besar.
Overhead konfigurasi tinggi: Mengonfigurasi dan memelihara tugas individual untuk banyak tabel memerlukan upaya signifikan.
Konsumsi sumber daya tinggi: Karena setiap tugas dijadwalkan secara independen, 100 tugas satu tabel mengonsumsi jauh lebih banyak sumber daya dibandingkan satu tugas seluruh database.
Solusi yang direkomendasikan: Buat tugas sinkronisasi batch
b. Sinkronisasi batch untuk seluruh database
Gunakan opsi ini untuk memigrasi sejumlah besar tabel homogen dari satu lokasi ke lokasi lain secara efisien.
Keunggulan utama: Efisiensi O&M tinggi dan biaya rendah.
Efisiensi tinggi: Konfigurasikan ratusan tabel sekaligus dengan pencocokan objek otomatis, sangat meningkatkan efisiensi pengembangan.
Hemat biaya: Sumber daya dijadwalkan dan dioptimalkan bersama, menghasilkan biaya sangat rendah. Misalnya, konsumsi sumber daya satu tugas seluruh database mungkin 2 CU, sedangkan 100 tugas satu tabel bisa mengonsumsi 100 CU.
Kasus penggunaan khas: Membangun lapisan ODS gudang data, melakukan backup database periodik, dan memigrasi data ke cloud.
Keterbatasan utama: Logika pemrosesan terbatas.
Dirancang terutama untuk "menyalin" data dan tidak mendukung logika transformasi kompleks yang spesifik per tabel.
Solusi yang direkomendasikan: Konfigurasikan tugas solusi untuk sinkronisasi data.
2. Sinkronisasi real-time (latensi detik hingga menit)
Solusi real-time cocok untuk kasus penggunaan yang memerlukan penangkapan perubahan data real-time (insert, update, dan delete) dari sumber guna mendukung analitik real-time dan respons bisnis.
Prasyarat: Sumber harus mendukung Change Data Capture (CDC) atau merupakan antrian pesan. Misalnya, sumber MySQL harus mengaktifkan binary log-nya, atau sumber tersebut harus berupa instans Kafka.
Real-time: satu tabel vs. seluruh database
Logika pengambilan keputusan mirip dengan solusi batch:
Sinkronisasi real-time untuk satu tabel: Paling cocok untuk pemrosesan kompleks aliran perubahan real-time dari satu tabel kritis.
Sinkronisasi real-time untuk seluruh database: Pilihan utama untuk membangun gudang data real-time, menerapkan pemulihan bencana real-time untuk database, dan mengaktifkan data lake real-time. Solusi ini menawarkan keunggulan signifikan yang sama dalam efisiensi dan hemat biaya.
Solusi yang direkomendasikan:Buat tugas sinkronisasi real-time, Konfigurasikan tugas solusi untuk sinkronisasi data
3. CDC real-time ke destinasi append-only
Tantangan: Sinkronisasi real-time menangkap data CDC, yang mencakup operasi Insert, Update, dan Delete. Untuk sistem penyimpanan append-only seperti tabel non-Delta MaxCompute yang tidak mendukung operasi Update atau Delete secara fisik, menulis aliran CDC mentah dapat menyebabkan inkonsistensi data. Misalnya, operasi delete tidak akan tercermin.
Solusi DataWorks: Pola Base + Log
Solusi ini diimplementasikan sebagai tugas sinkronisasi lengkap dan inkremental untuk seluruh database. Solusi ini mengatasi masalah dengan membuat tabel
Base(untuk snapshot lengkap) dan tabelLog(untuk perubahan inkremental) di destinasi.Cara kerja: Aliran data CDC ditulis ke tabel
Logsecara real-time. Kemudian, sesuai jadwal T+1, tugas terjadwal sistem secara otomatis menerapkan perubahan dari tabelLogke tabelBasemenggunakan operasiMERGE, menghasilkan snapshot lengkap yang diperbarui. Pendekatan ini memberikan latensi tingkat menit untuk mengingest data inkremental, sementara status akhir yang konsisten menjadi terlihat berdasarkan jadwal T+1. Solusi ini menyeimbangkan penangkapan data real-time dengan konsistensi akhir yang dibutuhkan oleh gudang data offline.
Solusi yang direkomendasikan: Konfigurasikan tugas solusi untuk sinkronisasi data.
Kemampuan sumber data
Sumber data | Batch (satu tabel) | Real-time (satu tabel) | Batch (database) | Real-time (database) | Lengkap dan inkremental (database) |
Baca | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | Tulis | Baca | Tulis | - | |
Baca/Tulis | - | Baca | - | - | |
Baca/Tulis | - | - | Baca | Baca | |
Baca | - | - | - | - | |
Baca | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca | - | - | - | - | |
Baca | - | - | - | - | |
Baca/Tulis | Baca/Tulis | - | Tulis | - | |
Baca/Tulis | Tulis | Tulis | Tulis | - | |
Baca/Tulis | - | Baca | - | - | |
Baca/Tulis | Tulis | Baca | - | - | |
Baca/Tulis | - | Baca | - | - | |
Sumber data Enterprise Distributed Application Service (EDAS) | Baca/Tulis | - | Baca | - | - |
Baca/Tulis | Tulis | Tulis | Tulis | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis (Native API) Baca (SQL 2.0.x) Write (SQL 1.1.x) | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
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 | |
Sumber data PolarDB for PostgreSQL (kompatibel Oracle) on-premises | 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 | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca | - | - | - | - |
Kasus penggunaan
Dokumentasi terkait
Topik berikut menyediakan informasi penting untuk membantu Anda memulai Data Integration.
Untuk mempelajari cara mengonfigurasi sumber data, lihat Konfigurasi sumber data.
Untuk detail tentang mengonfigurasi tugas sinkronisasi, lihat topik berikut:
Untuk jawaban atas pertanyaan umum tentang sinkronisasi data, lihat FAQ tentang sinkronisasi data.