DataWorks Data Integration menyinkronkan data antara MySQL, MaxCompute, Hologres, Kafka, dan sumber lainnya. Layanan ini mendukung sinkronisasi batch, real-time, dan seluruh database untuk berbagai skenario, mulai dari ETL T+1 hingga replikasi real-time tingkat detik.
Solusi sinkronisasi
Jenis | Granularitas sumber | Target Granularity | Ketepatan waktu | Skenario Sinkronisasi |
Batch tabel tunggal | Tabel tunggal | Tabel tunggal atau partisi | T+1 atau periodik | Full periodik, inkremental periodik |
Batch database dan tabel terpartisi | Beberapa tabel dengan struktur identik | Tabel tunggal atau partisi | T+1 atau periodik | Full periodik, inkremental periodik |
Real-time tabel tunggal | Tabel tunggal | Tabel tunggal atau partisi | Detik hingga menit | Inkremental real-time (CDC) |
Batch seluruh database | Seluruh database atau beberapa tabel | Beberapa tabel yang sesuai beserta partisinya | Sekali atau periodik | Full sekali/periodik, inkremental sekali/periodik, full sekali + inkremental periodik |
Real-time seluruh database | Seluruh database atau beberapa tabel | Beberapa tabel yang sesuai beserta partisinya | Detik hingga menit | Full + inkremental real-time (CDC) |
Full-plus-inkremental seluruh database | Seluruh database atau beberapa tabel | Beberapa tabel yang sesuai beserta partisinya | Pemuatan awal penuh: Pemrosesan batch Inkremental berikutnya: T+1 | Full + inkremental real-time (CDC) |
Solusi sinkronisasi yang direkomendasikan
Saat memilih solusi sinkronisasi data, pertimbangkan dua pertanyaan utama:
Kebutuhan ketepatan waktu: Seberapa sering bisnis Anda memerlukan sinkronisasi data—sekali sehari (batch) atau pembaruan real-time tingkat detik/menit (real-time)?
Skala dan kompleksitas sinkronisasi: Berapa banyak tabel yang perlu disinkronkan, dan apakah logika pemrosesan seragam di seluruh tabel (tabel tunggal vs. seluruh database)?
Berdasarkan pertimbangan tersebut, Data Integration menyediakan dua kategori solusi sinkronisasi: batch dan real-time.
1. Memilih solusi sinkronisasi batch (T+1/periodik)
Solusi batch cocok untuk skenario dengan kebutuhan ketepatan waktu yang lebih rendah, seperti pemrosesan periodik T+1.
Prasyarat utama: Untuk menerapkan sinkronisasi inkremental batch, tabel sumber harus memiliki kolom yang dapat digunakan untuk mengidentifikasi data inkremental, seperti timestamp gmt_modified atau ID auto-increment. Jika kolom semacam itu tidak tersedia, Anda hanya dapat menggunakan sinkronisasi full periodik.
1. Pilih batch tabel tunggal
Gunakan opsi ini saat Anda memerlukan pemrosesan detail halus pada sejumlah kecil sumber data inti yang heterogen.
Keunggulan utama: Logika pemrosesan fleksibel.
Transformasi detail halus: Mendukung pemetaan kolom kompleks, penyaringan data, penugasan konstanta, transformasi berbasis fungsi, bahkan pemrosesan berbantuan AI.
Integrasi sumber heterogen: Pilihan terbaik untuk sumber data non-standar seperti API dan file log.
Keterbatasan utama: Biaya tinggi dalam skala besar.
Overhead konfigurasi tinggi: Saat menyinkronkan banyak tabel, mengonfigurasi dan memelihara tugas satu per satu memerlukan upaya signifikan.
Konsumsi resource tinggi: Setiap tugas dijadwalkan secara independen. Konsumsi resource dari 100 tugas tabel tunggal jauh melebihi satu tugas seluruh database.
Solusi batch tabel tunggal: Konfigurasikan tugas sinkronisasi batch tabel tunggal
2. Pilih batch seluruh database
Gunakan opsi ini saat Anda perlu melakukan migrasi efisien sejumlah besar tabel homogen dari satu lokasi ke lokasi lain.
Keunggulan utama: Efisiensi O&M tinggi dan biaya rendah.
Efisiensi tinggi: Konfigurasikan ratusan tabel sekaligus dengan pencocokan objek otomatis, meningkatkan efisiensi pengembangan secara signifikan.
Hemat biaya: Resource dijadwalkan dan dioptimalkan secara holistik dengan biaya sangat rendah. Misalnya, satu tugas seluruh database dibandingkan 100 tugas tabel tunggal mungkin mengonsumsi 2 CU versus 100 CU.
Skema tipikal: Membangun lapisan ODS gudang data, backup database periodik, dan migrasi data ke cloud.
Keterbatasan utama: Logika pemrosesan terbatas.
Terutama dirancang untuk replikasi data dan tidak mendukung logika transformasi kompleks untuk tabel individual.
Solusi batch seluruh database: Konfigurasikan tugas sinkronisasi batch seluruh database.
2. Memilih solusi sinkronisasi real-time (detik hingga menit)
Solusi real-time menangkap perubahan data (insert, update, dan delete) di sumber untuk mendukung analitik real-time dan pengambilan keputusan bisnis.
Prasyarat utama: Sumber harus mendukung change data capture (CDC) atau merupakan message queue. Misalnya, MySQL memerlukan Binlog diaktifkan, atau sumber harus berupa instans Kafka.
Pilih real-time tabel tunggal atau real-time seluruh database
Logika pemilihan mirip dengan solusi batch:
Real-time tabel tunggal: Cocok untuk skenario yang memerlukan pemrosesan kompleks aliran perubahan real-time dari satu tabel inti.
Real-time seluruh database: Pilihan utama untuk membangun gudang data real-time, disaster recovery database real-time, dan ingestion data lake real-time. Juga menawarkan keunggulan efisiensi dan biaya signifikan.
Solusi real-time: Konfigurasikan tugas sinkronisasi real-time tabel tunggal, Konfigurasikan tugas sinkronisasi real-time seluruh database
3. Skema khusus: Menulis data CDC real-time ke tabel target append-only
Latar belakang: Data CDC yang ditangkap oleh sinkronisasi real-time mencakup tiga jenis operasi: Insert, Update, dan Delete. Untuk sistem penyimpanan append-only yang tidak mendukung operasi Update/Delete secara native di level fisik, seperti tipe tabel non-Delta di MaxCompute, menulis langsung aliran CDC menyebabkan inkonsistensi status data (misalnya, operasi delete tidak dapat tercermin).
Solusi DataWorks: Mode Base + Log
Solusi ini menggunakan tugas full-plus-inkremental seluruh database dan mengatasi masalah tersebut dengan membuat
Base table(snapshot lengkap) danLog table(log inkremental) di target.Cara kerja: Aliran data CDC ditulis secara real-time ke
Log table. Kemudian, secara T+1, sistem secara otomatis menjadwalkan tugas untuk merge perubahan dariLog tablekeBase tableguna menghasilkan snapshot lengkap terbaru. Ketepatan waktu solusi ini adalah "data inkremental ditulis ke log table dalam hitungan menit, dengan status akhir di-merge dan terlihat pada T+1." Solusi ini menyeimbangkan penangkapan data real-time dengan konsistensi akhir untuk gudang data offline.
Solusi yang direkomendasikan: Konfigurasikan tugas sinkronisasi full-plus-inkremental seluruh database.
Kemampuan baca/tulis sumber data
Sumber data | Single-table batch | Real-time tabel tunggal | Batch seluruh database | Real-time seluruh database | Full-plus-inkremental seluruh database |
Baca | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | - | - | - | - | |
Baca/Tulis | Tulis | Baca | Tulis | - | |
Baca/Tulis | - | Baca | - | - | |
Baca/Tulis | Tulis | Baca | Baca/Tulis | Baca | |
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 Baca HBase 11xsql Tulis | - | - | - | - |
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 | |
Tulis | - | - | - | - | |
Baca/Tulis | Baca | Baca | Baca | Baca | |
Baca/Tulis | - | Tulis | Tulis | - | |
Baca/Tulis | - | Tulis | Tulis | - | |
- | - | Tulis | - | - | |
Baca/Tulis | - | 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 | - | - | - | - |
Referensi
Gunakan dokumen Data Integration berikut untuk memulai.
Untuk konfigurasi sumber data, lihat Konfigurasikan sumber data.
Untuk konfigurasi tugas sinkronisasi, lihat:
Untuk skenario praktis lainnya:
Untuk isu umum sinkronisasi data, lihat FAQ tentang sinkronisasi data.