Di market dengan popularitas analytics streaming yang semakin populer, sangatlah penting untuk mengoptimalkan pemrosesan data sehingga Anda bisa mengurangi biaya dan memastikan kualitas serta integritas data. Salah satu pendekatannya adalah dengan fokus bekerja hanya pada data yang berubah, bukan semua data yang ada. Di sinilah change data capture (CDC) berguna. CDC adalah teknik yang memungkinkan pendekatan teroptimalkan ini.
Kami yang bekerja di Dataflow, layanan pemrosesan data streaming Google Cloud, mengembangkan contoh solusi yang memungkinkan Anda menyerap streaming data yang berubah yang berasal dari segala jenis database MySQL versi 5.6 ke atas (dikelola-sendiri, lokal, dll.), dan menyinkronkannya ke set data di BigQuery. Kami menyediakan solusi ini dalam repositori publik template Dataflow. Anda bisa menemukan petunjuk tentang cara menggunakan template ini di bagian README repo GitHub.
CDC menyediakan representasi data yang telah berubah dalam streaming, yang memungkinkan komputasi dan pemrosesan untuk berfokus secara khusus pada data yang berubah. CDC bisa diterapkan untuk banyak kasus penggunaan. Beberapa contohnya meliputi replikasi database penting, optimalisasi tugas analytics real-time, penghapusan cache, sinkronisasi antara penyimpanan data transaksional dan penyimpanan bertipe data warehouse, dan banyak lagi.


Bagaimana solusi CDC Dataflow memindahkan data dari MySQL ke BigQuery


Solusi yang diterapkan, ditunjukkan di bawah ini, berfungsi dengan database MySQL apa pun, yang dipantau dengan konektor yang kami kembangkan berdasarkan Debezium. Konektor menyimpan metadata tabel menggunakan Data Catalog (layanan manajemen metadata skalabel Google) dan mendorong update ke Pub/Sub (teknologi perpesanan dan penyerapan streaming native Google Cloud). Pipeline Dataflow kemudian mengambil update dari Pub/Sub dan menyinkronkan database MySQL dengan set data BigQuery.
Solusi ini mengandalkan Debezium, yang merupakan fitur open source sempurna untuk CDC. Kami mengembangkan konektor yang bisa dikonfigurasi berdasarkan teknologi ini dan dapat dijalankan secara lokal atau di lingkungan Kubernetes Anda sendiri untuk mendorong perubahan data ke Pub/Sub.
CDC_Solution_Diagram-01.jpg
Klik untuk memperbesar

Menggunakan solusi CDC Dataflow

Penerapan solusi terdiri dari empat langkah:
  1. Terapkan database Anda (lewati langkah ini bila Anda sudah memiliki database)
  2. Buat topik Pub/Sub untuk setiap tabel yang ingin Anda ekspor
  3. Terapkan konektor berbasis Debezium kami
  4. Jalankan pipeline Dataflow untuk menggunakan data dari Pub/Sub dan sinkronkan ke BigQuery
Misalkan Anda memiliki database MySQL yang berjalan di lingkungan apa pun. Untuk setiap tabel dalam database yang ingin diekspor, Anda harus membuat topik Pub/Sub dan langganan yang sesuai untuk topik tersebut.
Setelah topik Pub/Sub dan database siap, jalankan konektor Debezium. Konektor ini bisa berjalan di banyak lingkungan: dibangun secara lokal dari sumber, melalui container Docker, atau pada kluster Kubernetes. Untuk petunjuk tentang cara menjalankan konektor Debezium dan solusi secara umum, baca README untuk petunjuk selengkapnya.
Setelah konektor Debezium mulai berjalan dan menangkap perubahan dari MySQL, ia akan mendorongnya ke Pub/Sub. Menggunakan Data Catalog, ia juga akan mengupdate skema untuk topik Pub/Sub yang sesuai dengan setiap tabel MySQL.
Setelah semua bagian siap, Anda bisa meluncurkan pipeline Dataflow untuk menggunakan data perubahan dari Pub/Sub dan menyinkronkannya ke Tabel BigQuery. Tugas Dataflow bisa diluncurkan dari baris perintah. Berikut tampilannya setelah Anda luncurkan:
Dataflow job.jpg
Setelah konektor dan pipeline berjalan, Anda cukup memantau progresnya, dan memastikan semuanya berjalan lancar.

Mulai sekarang

Punya kasus penggunaan yang membutuhkan kemampuan CDC Dataflow? Misalnya, optimalisasi tugas analytics real-time. Jika ya, cobalah! Pertama, gunakan kode ini untuk memulai membangun pipeline CDC pertama Anda di Dataflow hari ini. Dan bagikan masukan Anda dengan tim Dataflow di pelacak masalah GitHub.
Di Google Cloud, kami senang bisa menghadirkan CDC sebagai teknik yang sangat penting untuk mengoptimalkan analytics data streaming. Kami sangat menantikan pengembangan maupun masukan dengan kemampuan baru Dataflow ini.