Perilaku dan kasus penggunaan
Dengan Datastream, pengguna dapat memindahkan data sumber dari Sistem Pengelolaan Database Relasional (RDBMS) dan sumber lain ke berbagai tujuan seperti BigQuery dan Cloud Storage, dengan cara yang mendekati real-time. Hal ini dapat digunakan untuk kasus penggunaan downstream, seperti memuat data ke dalam BigQuery untuk data warehousing dan analisis, atau menjalankan tugas Spark pada data untuk kasus penggunaan kecerdasan buatan dan machine learning.
Konsep
Ubah pengambilan data
Pengambilan data perubahan (CDC) adalah kumpulan pola desain software yang digunakan untuk menentukan (dan melacak) data yang telah berubah sehingga tindakan dapat diambil menggunakan data yang diubah. CDC juga merupakan pendekatan untuk integrasi data yang didasarkan pada identifikasi, tangkapan, dan pengiriman perubahan yang dibuat pada sumber data perusahaan.
Sumber peristiwa
Diperkenalkan pada tahun 2005, sumber peristiwa adalah pola desain yang memungkinkan pengambilan setiap perubahan status aplikasi dalam objek peristiwa. Dengan memanfaatkan sumber peristiwa, aplikasi dapat dengan mudah membangun ulang statusnya, melakukan pemulihan point-in-time (dengan memproses peristiwa hingga titik tersebut), menghitung ulang status jika terjadi perubahan dalam logika, atau mengaktifkan desain Command Query Responsibility Segregation (CQRS). Dengan evolusi alat untuk pemrosesan peristiwa real-time, banyak aplikasi beralih ke model sumber peristiwa. Secara historis, database transaksional selalu berorientasi peristiwa, karena persyaratan atomicity, konsistensi, isolasi, dan ketahanan (ACID).
Database transaksional
Dalam database transaksional, sekumpulan operasi yang akan dilakukan database biasanya ditulis ke write-ahead log (WAL) sebelum operasi apa pun dijalankan di mesin penyimpanan. Setelah operasi dijalankan di mesin penyimpanan dan di-commit ke WAL, operasi dianggap berhasil. Penggunaan WAL memungkinkan atomicity dan ketahanan, serta memungkinkan replikasi database dengan fidelitas tinggi. Beberapa database akan menulis ke log operasi yang sama persis yang akan terjadi pada level penyimpanan (misalnya, write 0x41 on location 20
), sehingga tindakan tersebut hanya dapat direplikasi (atau diulangi) di mesin penyimpanan yang sama. Database lain akan mencatat pernyataan logis lengkap (atau baris) yang dapat dijalankan kembali pada mesin penyimpanan yang berbeda.
Acara dan feed
Datastream menyerap banyak data hampir secara real-time dari berbagai sumber, dan membuat data tersedia untuk digunakan di tujuan. Unit data yang disimpan oleh Datastream adalah peristiwa. Aliran data mewakili penyerapan peristiwa yang berkelanjutan dari sumber dan menulisnya ke tujuan.
Jenis terpadu
Sumber data memiliki jenisnya sendiri, beberapa spesifik untuk database itu sendiri, dan beberapa bersifat umum serta dibagikan di seluruh database. Karena ada banyak sumber berbeda yang menghasilkan streaming ke tujuan terpadu, harus ada cara standar dan terpadu untuk mewakili jenis sumber asli di semua sumber. Jenis terpadu adalah cara umum dan lossless untuk merepresentasikan jenis data di semua sumber sehingga dapat digunakan secara kohesif. Jenis terpadu yang didukung oleh Datastream akan mewakili superset dari semua jenis yang dinormalkan di semua sistem sumber yang didukung sehingga semua jenis dapat didukung lossless.
Konteks entity
Datastream memiliki lima entity:
- Konfigurasi konektivitas pribadi memungkinkan Datastream berkomunikasi dengan sumber data melalui koneksi jaringan pribadi yang aman. Komunikasi ini terjadi melalui peering Virtual Private Cloud (VPC).
- Profil koneksi mewakili informasi konektivitas ke sumber atau database tujuan tertentu.
- Aliran mewakili pasangan profil koneksi sumber dan tujuan, beserta setelan khusus aliran data.
- Objek mewakili subbagian aliran data. Misalnya, aliran database memiliki objek data untuk setiap tabel yang di-streaming.
- Peristiwa mewakili setiap perubahan bahasa manipulasi data (DML) untuk objek tertentu.
Setelah membuat konfigurasi konektivitas pribadi, Anda dapat terhubung ke sumber yang dihosting di Google Cloud atau di tempat lain melalui saluran komunikasi pribadi. Konektivitas pribadi bersifat opsional, Datastream juga mendukung mode konektivitas lain melalui jaringan publik.
Setelah membuat profil koneksi untuk sumber dan tujuan, Anda dapat membuat aliran data yang menggunakan informasi yang disimpan di profil koneksi untuk mentransfer data dari sumber ke tujuan.
Setelah membuat aliran data, Datastream terhubung ke sumber secara langsung, menggunakan konten, lalu memproses dan menulis peristiwa ke tujuan berdasarkan struktur peristiwa.
Konfigurasi konektivitas pribadi dan profil koneksi dapat dikelola secara terpisah dari aliran data agar mudah digunakan kembali, dan karena sering kali, di perusahaan, orang yang dapat membuat konektivitas ke sumber atau tujuan bukanlah orang yang sama dengan orang yang membuat aliran data.
Fitur
Fitur untuk Datastream mencakup:
- Serverless: Anda dapat mengonfigurasi aliran data dan data mulai dipindahkan. Tidak ada biaya tambahan untuk instalasi, alokasi sumber daya, atau pemeliharaan. Saat volume data bertambah dan menyusut, kemampuan penskalaan otomatis Datastream mengalokasikan resource untuk menjaga data tetap bergerak mendekati real-time dan secara otomatis.
- Skema jenis berbasis Avro terpadu: Datastream memungkinkan pemrosesan yang sederhana dan tidak bergantung pada sumber dengan mengonversi semua jenis data khusus sumber menjadi skema jenis Datastream terpadu, berdasarkan jenis Avro.
- Streaming data CDC dan historis: Datastream mengalirkan data sumber CDC dan historis mendekati real-time, secara bersamaan.
Oracle CDC tanpa lisensi tambahan: Datastream menyediakan streaming CDC berbasis LogMiner dari sumber Oracle versi 11.2g dan yang lebih baru, tanpa perlu membayar lisensi tambahan atau penginstalan software.
Tujuan BigQuery: Perubahan pada sumber direplikasi terus-menerus ke tabel BigQuery hampir secara real-time. Data di BigQuery segera tersedia untuk analisis.
Tujuan Cloud Storage: Data CDC ditulis untuk mendeskripsikan file Avro atau JSON secara mandiri di Cloud Storage secara terus-menerus. Informasi ini mudah digunakan untuk pemrosesan tambahan, baik secara langsung di tempatnya atau dengan memuat downstream ke tujuan lain seperti Spanner.
Kasus penggunaan
Ada tiga skenario utama dalam menggunakan Datastream:
- Integrasi data: Aliran data dari database dan layanan cloud Software-as-a-Service (SaaS) dapat memberikan feed ke pipeline integrasi data yang mendekati real-time dengan memuat data ke BigQuery menggunakan Dataflow atau Cloud Data Fusion.
- Analisis streaming: Perubahan dalam database diserap ke dalam pipeline streaming seperti pada Dataflow untuk deteksi penipuan, pemrosesan peristiwa keamanan, dan deteksi anomali.
- Ketersediaan perubahan data yang mendekati real-time: Ketersediaan perubahan data yang mendekati real-time akan mendukung aplikasi kecerdasan buatan dan machine learning untuk mencegah terjadinya churn atau peningkatan engagement menggunakan upaya pemasaran atau dengan memanfaatkan kembali sistem produksi.
Ringkasan perilaku
Datastream memungkinkan pelanggan melakukan streaming perubahan yang sedang berlangsung dari berbagai sumber data langsung ke Google Cloud.
Sumber
- Ada sejumlah tugas penyiapan yang diperlukan agar sumber dapat digunakan dengan Datastream, termasuk autentikasi dan opsi konfigurasi tambahan.
- Setiap sumber menghasilkan peristiwa yang mencerminkan semua perubahan bahasa manipulasi data (DML).
- Setiap aliran data dapat mengisi ulang data historis, serta mengalirkan perubahan yang sedang berlangsung ke tujuan.
Tujuan
Datastream mendukung BigQuery dan Cloud Storage sebagai tujuan. Saat aliran data dibuat, set data BigQuery atau bucket Cloud Storage yang diinginkan akan ditentukan.
Pengiriman acara
- Urutan peristiwa tidak dijamin. Metadata peristiwa menyertakan informasi yang dapat digunakan untuk mengurutkan peristiwa.
- Pengiriman peristiwa terjadi minimal sekali. Metadata peristiwa menyertakan data yang dapat digunakan untuk menghapus data duplikat di tujuan.
- Ukuran peristiwa dibatasi hingga 20 MB per peristiwa untuk tujuan BigQuery dan 30 MB per peristiwa untuk tujuan Cloud Storage.
Untuk mempelajari peristiwa lebih lanjut, lihat Peristiwa dan aliran data.
Ketersediaan tinggi dan pemulihan dari bencana (disaster recovery)
Bagian ini berisi informasi tentang cara Datastream menangani skenario yang terkait dengan ketersediaan tinggi dan pemulihan dari bencana (disaster recovery).
- Ketersediaan tinggi: Datastream adalah layanan regional, yang berjalan di beberapa zona di setiap region. Kegagalan zona tunggal di satu region tidak akan memengaruhi ketersediaan atau kualitas layanan di zona lain.
- Pemulihan dari bencana: Jika terjadi kegagalan di suatu wilayah, streaming yang berjalan di wilayah tersebut akan dihentikan selama pemadaman. Setelah pemadaman layanan teratasi, Datastream akan melanjutkan aktivitas dari titik terakhir sebelum penghentian, dan data apa pun yang belum ditulis ke tujuan akan diambil kembali dari sumbernya. Dalam hal ini, duplikat data mungkin berada di tujuan. Lihat Pengiriman peristiwa untuk mengetahui informasi selengkapnya tentang cara menghapus data duplikat.
Data awal dan data CDC
Karena sumber data memiliki data yang sudah ada sebelum sumber terhubung ke aliran data (data historis), Datastream menghasilkan peristiwa dari data historis serta perubahan data yang terjadi secara real time.
Untuk memastikan akses data yang cepat, data historis dan perubahan data real-time direplikasi secara bersamaan ke tujuan. Metadata peristiwa menunjukkan apakah peristiwa berasal dari pengisian ulang atau dari CDC.