DataWorks Data Integration mendukung sinkronisasi data antara berbagai sumber data, seperti MySQL, MaxCompute, Hologres, dan Kafka. Data Integration menyediakan solusi pemrosesan batch, sinkronisasi data real-time, dan migrasi seluruh database. Anda dapat menggunakan solusi ini untuk skenario seperti ekstrak, transformasi, dan muat (ETL) batch T+1, replikasi data real-time dengan latensi tingkat detik, serta migrasi seluruh database.
Solusi sinkronisasi
Jenis | Granularitas sumber | Target Granularity | Ketepatan waktu | Skema sinkronisasi |
Batch tabel tunggal | Tabel tunggal | Tabel tunggal atau partisi | T+1 atau periodik | Penuh periodik, inkremental periodik |
Batch database dan tabel terpartisi | Beberapa tabel dengan struktur identik | Tabel tunggal atau partisi | T+1 atau periodik | Penuh 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 | Satu kali atau periodik | Penuh satu kali/periodik, inkremental satu kali/periodik, penuh satu kali + inkremental periodik |
Real-time seluruh database | Seluruh database atau beberapa tabel | Beberapa tabel yang sesuai beserta partisinya | Detik hingga menit | Penuh + inkremental real-time (CDC) |
Penuh-plus-inkremental seluruh database | Seluruh database atau beberapa tabel | Beberapa tabel yang sesuai beserta partisinya | Muat penuh awal: Pemrosesan batch Inkremental berikutnya: T+1 | Penuh + 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, kami merekomendasikan solusi sinkronisasi dalam dua kategori: solusi sinkronisasi batch dan solusi sinkronisasi real-time.
1. Memilih solusi sinkronisasi batch (T+1/periodik)
Solusi batch cocok untuk skenario di mana kebutuhan ketepatan waktu data tidak tinggi (misalnya, T+1) dan diperlukan pemrosesan batch periodik.
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 tersebut tidak tersedia, Anda hanya dapat menggunakan sinkronisasi penuh 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 pada 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 vs. 100 tugas tabel tunggal mungkin mengonsumsi 2 CU vs. 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 cocok untuk skenario yang memerlukan penangkapan perubahan data real-time (insert, update, dan delete) di sumber guna mendukung analitik real-time dan respons 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, menerapkan disaster recovery database real-time, dan menghubungkan ke data lake real-time. Opsi ini juga memberikan keunggulan signifikan dalam efisiensi dan hemat biaya.
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 penuh-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 basis 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 digabung 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 penuh-plus-inkremental seluruh database.
Kemampuan baca/tulis sumber data
Sumber data | Single-Table Batch | Real-time Single Table | Batch seluruh database | Real-time seluruh database | Penuh-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 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 | |
Tulis | - | - | - | - | |
Baca/Tulis | Baca | Baca | Baca | Baca | |
Baca/Tulis | - | Tulis | Tulis | - | |
Baca/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
Berikut adalah daftar dokumen inti Data Integration yang telah dikurasi untuk membantu Anda memulai dengan cepat.
Untuk konfigurasi sumber data, lihat Konfigurasikan sumber data.
Untuk konfigurasi tugas sinkronisasi, lihat:
Untuk skenario praktis lebih lanjut:
Untuk isu umum sinkronisasi data, lihat FAQ tentang sinkronisasi data.