Apa itu pengambilan data perubahan?

Pengambilan data perubahan (CDC) adalah proses yang digunakan untuk melacak dan mengambil perubahan yang dilakukan pada data di sistem sumber, seperti database transaksional, data warehouse, atau aplikasi SaaS. Dengan merekam perubahan secara real time, CDC memungkinkan Anda menjaga sistem tetap tersinkronisasi, mendukung analisis, melatih model AI, dan mendukung migrasi data yang lancar.

Mengetahui perubahan apa saja yang terjadi dalam database sangat penting untuk menjaga integritas data, mengoptimalkan alur kerja, dan mendapatkan insight real-time. Contoh umumnya adalah di bidang retail—saat pelanggan melakukan pemesanan, CDC menangkap penjualan tersebut dari database transaksional pada saat itu juga. Layanan CDC seperti Datastream Google Cloud dapat mereplikasi perubahan dari database PostgreSQL lokal ke data warehouse BigQuery, yang mendukung dasbor analisis dalam waktu mendekati real time dan menghilangkan waktu tunggu untuk tugas batch malam yang lambat.

Pengantar Datastream untuk BigQuery

Poin-poin penting

Pengambilan data perubahan (CDC) adalah proses yang digunakan untuk mengidentifikasi dan mengambil modifikasi data—seperti penyisipan, pembaruan, dan penghapusan—dari sistem sumber, sering kali mendekati real time. CDC terkenal karena:

  • Mengganti tugas batch malam yang lambat: Memungkinkan Anda menangkap perubahan data saat terjadi, bukan mengekstrak seluruh set data di lain waktu
  • Kasus penggunaan yang canggih: CDC mendukung migrasi database yang lancar, analisis real-time, dan pelatihan AI

Apa perbedaan antara ETL dan CDC?

Proses ETL, yang merupakan singkatan dari ‘ekstraksi, transformasi, pemuatan’, melibatkan ekstraksi data mentah dari sistem sumbernya, mentransformasikannya ke dalam struktur yang diperlukan, lalu memuatnya ke dalam sistem tujuan, biasanya data warehouse. ETL membantu memastikan data terorganisir, bersih, dan siap digunakan di hilir dalam analisis atau aplikasi.

Biasanya, ETL berjalan dalam batch terjadwal yang besar, sering kali semalaman. Artinya, data di sistem target hanya seaktual batch yang dijalankan terakhir.

Perbedaan utamanya terletak pada cara CDC mengekstrak data. Alih-alih mengekstrak set data dalam batch, CDC menangkap perubahan saat terjadi, sehingga memungkinkan untuk selalu mengkueri data terbaru, bukan mengandalkan batch processing berkala. Hal ini dapat membantu Anda merespons perubahan dengan lebih cepat dan mendapatkan insight yang lebih akurat.

Apa perbedaan antara SCD dan CDC?

Pengambilan data perubahan terutama merupakan proses yang berfokus pada ekstraksi efisien semua perubahan inkremental dari database sumber, sering kali dalam waktu mendekati real time, untuk meminimalkan beban pada sistem sumber.

Sebaliknya, dimensi yang berubah secara perlahan (SCD) adalah teknik pemodelan data yang diterapkan di data warehouse target atau sistem analisis, yang berfokus pada cara menyimpan dan mengelola status historis data dimensi (seperti data pelanggan atau atribut produk) dari waktu ke waktu.

Meskipun CDC adalah alat untuk transportasi data perubahan yang efisien, perubahan ini biasanya diterapkan menggunakan strategi SCD tertentu untuk mempertahankan histori yang lengkap dan akurat dalam sistem tujuan.

Sumber dan tujuan CDC umum

Pengambilan data perubahan dapat menjadi jembatan yang efektif untuk menghubungkan beragam sistem yang membentuk data stack atau data cloud modern. Daripada terbatas pada database tertentu, alat CDC dirancang untuk bekerja dengan berbagai sumber dan tujuan.

Database transaksional adalah sumber paling umum untuk CDC, yang menangkap setiap penyisipan, pembaruan, dan penghapusan dari sistem yang menjalankan operasi bisnis sehari-hari.

Sering kali menjadi tujuan utama data CDC, sistem ini mengonsolidasikan informasi dari berbagai sumber untuk business intelligence, analisis, dan AI.

  • Contoh: BigQuery, Snowflake, Amazon Redshift, Databricks

Gunakan CDC untuk menarik data perubahan dari platform bisnis penting (sering kali melalui API atau webhook) untuk menyinkronkan data pelanggan, penjualan, atau dukungan di seluruh organisasi.

  • Contoh: Salesforce, SAP, Stripe, HubSpot

Platform streaming dan pesan sering kali bertindak sebagai bus pesan real-time, yang menerima peristiwa perubahan dari sumber dan mendistribusikannya ke beberapa konsumen hilir secara bersamaan.

  • Contoh: Apache Kafka, Pub/Sub, Amazon Kinesis

Tujuan umum untuk log peristiwa CDC mentah, karena penyimpanan objek menyediakan fondasi yang skalabel dan hemat biaya untuk membangun data lake.

Kasus penggunaan utama untuk pengambilan data perubahan

CDC dapat membuka berbagai kasus penggunaan penting, mulai dari memastikan kontinuitas data hingga mendukung analisis real-time dan AI.

  • Replikasi: Database sekunder atau cadangan tetap konsisten dengan sistem utama dengan menangkap perubahan real-time. Hal ini penting untuk disaster recovery dan arsitektur ketersediaan tinggi.
  • Migrasi: Migrasi database disederhanakan dengan melacak perubahan yang sedang berlangsung dan memastikan sistem tujuan mencerminkan sumber secara akurat, bahkan selama migrasi langsung.
  • Analisis real-time: Dengan memasukkan data live ke dalam sistem analisis, CDC membantu Anda merespons tren dan perubahan saat terjadi, sehingga memberikan insight terbaru.
  • Data untuk pelatihan AI: CDC menyediakan data terbaru, sehingga model AI dan machine learning dapat dilatih dengan informasi yang akurat dan relevan, sehingga meningkatkan prediksi dan pengambilan keputusan.
  • Membangun cloud data: CDC adalah layanan penting untuk membuat cloud data terpadu, yang melakukan streaming perubahan real-time dari berbagai sumber yang terisolasi (seperti database transaksional dan aplikasi SaaS) ke platform analisis pusat dan sebaliknya. Hal ini membantu menghilangkan hambatan data dan menciptakan satu sumber tepercaya.

FAQ tentang pengambilan data perubahan

Dengan menangkap dan menyebarkan perubahan saat terjadi, CDC memastikan bahwa beberapa sistem (seperti database utama plus cadangan, atau database utama plus platform analisis) selalu disinkronkan. Hal ini menghilangkan perbedaan data dan menjaga integritas data di semua platform.

Pengambilan data perubahan bekerja dengan mengidentifikasi, melacak, dan mengekstrak perubahan yang dilakukan pada data di database sumber menggunakan berbagai pendekatan, termasuk yang berikut:

  • CDC berbasis log, yang membaca log transaksi internal database (catatan semua perubahan) untuk mengalirkan perubahan spesifik ini ke sistem target dalam waktu mendekati real time, sehingga meminimalkan beban resource
  • CDC berbasis pemicu melibatkan pembuatan pemicu database pada tabel untuk mencatat perubahan ke dalam tabel bayangan terpisah setiap kali modifikasi terjadi, meskipun hal ini dapat menambah overhead pada pemrosesan transaksi database sumber
  • CDC berbasis stempel waktu adalah metode yang paling sederhana tetapi performanya paling rendah, karena mengandalkan stempel waktu atau kolom versi di tabel sumber untuk mengkueri baris secara berkala yang waktu perubahannya lebih baru daripada waktu ekstraksi terakhir

Cara kerja CDC dengan database

Database adalah sumber yang paling umum dan andal untuk pengambilan data perubahan karena komponen inti yang dimiliki bersama: log transaksi. Log ini adalah kumpulan catatan perubahan yang tidak dapat diubah dan terurut, sehingga menjadi fondasi yang sempurna untuk menangkap modifikasi data secara akurat dan efisien tanpa memengaruhi performa database. Berikut adalah pembahasan lebih mendalam tentang konsep-konsep utama.

Memahami log transaksi database

Sebelum data apa pun ditulis ke tabel database yang sebenarnya, perubahan (penyisipan, pembaruan, atau penghapusan) pertama-tama dicatat dalam log transaksi. Alat CDC modern memanfaatkan log ini untuk menangkap perubahan tanpa mengganggu. Ini adalah bagian inti dari teknologi replikasi database, dan meskipun konsepnya universal, nama log ini bervariasi di berbagai database populer. Beberapa contoh penting:

  • PostgreSQL: write-ahead log (WAL)
  • Oracle: redo log
  • SQL Server: transaction log
  • MySQL: binary log (Binlog)

Menggabungkan pemuatan awal dengan CDC

Untuk database besar yang sudah ada, membaca seluruh histori dari log transaksi dapat menjadi tidak praktis karena performa jaringan dan batasan lainnya. Pola umum di dunia nyata adalah melakukan pemuatan massal terlebih dahulu, lalu menggunakan CDC untuk melakukan sinkronisasi. Proses ini melibatkan aktivitas:

  1. Mengambil snapshot atau cadangan database yang konsisten pada titik waktu tertentu.
  2. Memuat snapshot besar tersebut ke dalam sistem tujuan.
  3. Memulai aliran CDC dari posisi log yang tepat saat snapshot diambil.

Metode “snapshot and catch-up” ini memastikan tujuan diisi sepenuhnya dengan data historis, lalu disinkronkan dengan sempurna dengan semua perubahan live berikutnya. Inilah cara layanan terkelola seperti Datastream dan Database Migration Service Google Cloud melakukan pengisian ulang yang lancar dan andal.

Penentuan posisi dan pemulihan dengan nomor urut log

Untuk mengelola proses ini dengan andal, CDC mengandalkan ID unik dalam log transaksi, yang biasanya disebut nomor urut log (LSN). Angka-angka ini berfungsi sebagai bookmark yang tepat untuk aliran perubahan. Mereka sangat penting untuk:

  • Penentuan posisi: Mengetahui dengan tepat di mana dalam log untuk memulai atau menghentikan aliran
  • Pemulihan: Jika proses CDC gagal, proses tersebut dapat dimulai ulang dari LSN yang terakhir diproses dengan sukses, sehingga menjamin bahwa setiap perubahan akan ditangkap tepat satu kali tanpa kehilangan atau duplikasi data

Mekanisme ini—log transaksi, snapshot awal, dan nomor urut log—bekerja sama untuk membuat CDC database sangat efisien dan andal.

Manfaat pengambilan data perubahan

CDC dapat memberikan beberapa keuntungan yang membuatnya sangat penting dalam alur kerja data modern:

Konsistensi data di seluruh sistem

Menyinkronkan perubahan saat terjadi, mengurangi perbedaan, dan memastikan data yang lebih akurat di seluruh platform.

Perpindahan data yang efisien

Memastikan hanya perubahan yang ditangkap, bukan seluruh set data, sehingga membantu mengurangi tekanan sistem dan penggunaan jaringan secara signifikan.

Integrasi yang lancar

Menghubungkan sistem Anda menggunakan library konektor bawaan. Banyak platform menyediakan antarmuka tanpa coding untuk mengonfigurasi pipeline dan mengelola tugas backend yang kompleks secara otomatis seperti deteksi penyimpangan skema dan transformasi data dalam proses, sehingga memastikan aliran data Anda tanpa gangguan.

Ketahanan operasional

Mendukung upaya disaster recovery dan replikasi dengan otomatis menjaga sistem dan cadangan tetap selaras tanpa intervensi manual.

Insight real-time

Memberikan akses ke data terbaru hampir secara instan, sehingga memungkinkan pengambilan keputusan yang lebih cepat dan tepat. Ketangkasan ini dapat memberikan keunggulan penting dalam lingkungan yang serba cepat seperti perdagangan finansial, e-commerce, dan logistik, yang nilai datanya menurun dalam hitungan detik.

Teknologi dan alternatif yang bersaing

Beberapa teknologi tumpang tindih dengan atau melengkapi CDC, yang menawarkan berbagai pendekatan untuk mengelola perubahan data dan memungkinkan pemrosesan real-time. Berikut perbandingan CDC dengan pendekatan terkemuka lainnya:

Pemrosesan transaksional serta analitis hybrid (HTAP)

HTAP menggabungkan beban kerja transaksional (OLTP) dan analitis (OLAP) ke dalam satu sistem, sehingga memberikan analisis langsung pada data. Meskipun hal ini membuat HTAP sangat cocok untuk analisis terpadu dalam lingkungan mandiri, HTAP dapat kesulitan melakukan sinkronisasi dengan sumber data yang beragam dan terdistribusi yang ada di seluruh organisasi. Di sisi lain, CDC unggul dalam menjaga konsistensi data di berbagai sistem dan memungkinkan alur kerja terdistribusi.

Kueri gabungan

Kueri gabungan (dan pendekatan serupa yang disebut ‘tabel eksternal’) memungkinkan data warehouse atau mesin kueri membaca data langsung dari sistem sumber eksternal, seperti database transaksional, saat kueri dijalankan. Pendekatan ini menghindari kebutuhan untuk menyalin atau memindahkan data, sehingga memberikan akses langsung ke informasi di tempat data tersebut berada.

Metode ini sangat baik untuk analisis ad hoc atau kueri sesekali, karena menawarkan akses langsung tanpa perlu menyiapkan pipeline replikasi. Namun, untuk kueri yang sering digunakan atau sensitif terhadap performa, hal ini dapat menjadi tidak efisien karena memberikan beban langsung pada sistem operasional sumber dengan setiap kueri. Tidak seperti CDC, yang secara proaktif mendorong aliran perubahan ke tujuan untuk analisis yang dioptimalkan, federasi menarik data sesuai permintaan, yang mungkin tidak cocok untuk workload frekuensi tinggi.

Platform streaming data

Kafka adalah platform open source yang dirancang untuk streaming dan pemrosesan data throughput tinggi. Meskipun Kafka secara efisien mengelola aliran data berskala besar, Kafka melengkapi CDC, bukan menggantikannya. CDC berfokus pada pengambilan perubahan database yang tepat secara real time, sedangkan Kafka mengalirkan data peristiwa yang lebih luas, seperti klik situs, pembacaan sensor IoT, atau item yang ditambahkan ke keranjang belanja. Bersama-sama, teknologi ini dapat menciptakan kombinasi yang efektif untuk alur kerja real-time.

Integrasi tingkat aplikasi

Meskipun CDC menggunakan pendekatan tanpa coding untuk mereplikasi data, teknologi integrasi yang terhubung di lapisan aplikasi menghubungkan sistem dan platform SaaS menggunakan pendekatan low-code. Jika Anda ingin mentransformasi data saat berpindah antarplatform, produk integrasi tingkat aplikasi, seperti Application Integration Google Cloud, dapat menjadi alat yang lebih baik untuk pekerjaan tersebut.

Mengatasi tantangan bisnis Anda dengan Google Cloud

Pelanggan baru mendapatkan kredit gratis senilai $300 untuk dibelanjakan di Google Cloud.

Mulai menggunakan CDC di Google Cloud

Datastream adalah layanan replikasi dan pengambilan data perubahan (CDC) serverless Google Cloud yang andal dan mudah digunakan. Hal ini meminimalkan latensi sekaligus memungkinkan sinkronisasi data di berbagai database dan aplikasi. Berikut ini beberapa referensi untuk membantu Anda memulai:

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.