Sebagian besar pipa MySQL ke gudang data menggunakan sinkronisasi berbasis SELECT yang dijadwalkan yang membandingkan baris saat ini dengan snapshot sebelumnya. Pendekatan ini melewatkan penghapusan dan pembaruan antarjalan antara eksekusi, dan membebani beban besar pada basis data produksi selama pemindaian tabel besar.
Capture Data Perubahan (CDC) membaca langsung dari log biner (binlog) MySQL, menangkap setiap INSERT, UPDATE, dan DELETE saat terjadi, secara berurutan, dengan keadaan baris lengkap. Pipa CDC yang berjalan setiap jam secara dasar lebih andal daripada sinkronisasi batch yang berjalan setiap menit, karena ia menangkap semua yang terjadi, bukan hanya snapshot terbaru.
CDC melalui binlog memerlukan konfigurasi MySQL tertentu: pencatatan biner dalam format ROW dengan gambar baris lengkap (binlog_row_image=FULL), binlog_row_value_options tidak diatur sebagai PARTIAL_JSON, pengguna replikasi dengan hak REPLICATION SLAVE, REPLICATION CLIENT, SELECT, RELOAD, dan SHOW DATABASES, server-id unik untuk setiap klien replikasi, dan retensi binlog yang cukup untuk mencakup waktu downtime (default 30 hari).
Platform terkelola seperti Erathos menangani pemilihan mode snapshot, penghindaran tabrakan server-id, dan logika pemulihan ketika binlog dibersihkan. Setelah CDC menangkap perubahan dengan benar, pemuatan data ke BigQuery menjadi mudah — setiap peristiwa perubahan dipetakan ke operasi baris. Prioritas adalah kelengkapan daripada kecepatan: pipa yang kadang-kala tertinggal tetapi tidak pernah salah lebih baik daripada pipa yang tepat waktu tetapi dengan data yang tidak lengkap.
Entitas Utama: Perusahaan: Erathos, BigQuery, MySQL
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing