Perilaku dan kasus penggunaan
Datastream memberi pengguna kemampuan untuk membawa data sumber dari Sistem Pengelolaan Database Relasional (RDBMS) dan sumber lainnya ke tujuan seperti BigQuery dan Cloud Storage secara hampir real time. Hal ini menyediakan kasus penggunaan downstream seperti memuat data ke BigQuery untuk analisis dan data warehouse, atau menjalankan tugas Spark pada data untuk kasus penggunaan kecerdasan buatan dan machine learning.
Konsep
Pengambilan data perubahan
Pengambilan data perubahan (CDC) adalah serangkaian pola desain software yang digunakan untuk menentukan (dan melacak) data yang telah berubah sehingga tindakan dapat dilakukan menggunakan data yang diubah. CDC juga merupakan pendekatan untuk integrasi data yang didasarkan pada identifikasi, pengambilan, dan pengiriman perubahan yang dilakukan pada sumber data perusahaan.
Sumber peristiwa
Diperkenalkan pada tahun 2005, sumber peristiwa adalah pola desain yang setiap perubahan pada status aplikasi dicatat dalam objek peristiwa. Dengan memanfaatkan sumber peristiwa, aplikasi dapat membuat ulang statusnya, melakukan pemulihan titik waktu (dengan memproses peristiwa hingga titik tersebut), menghitung ulang status jika terjadi perubahan logika, atau mengaktifkan desain Pemisahan Tanggung Jawab Kueri Perintah (CQRS). Dengan evolusi alat untuk pemrosesan peristiwa real-time, banyak aplikasi beralih ke model sumber peristiwa. Secara historis, database transaksional selalu berorientasi pada peristiwa, karena persyaratan atomicity, consistency, isolation, and durability (ACID).
Database transaksional
Dalam database transaksional, kumpulan operasi yang akan dilakukan database biasanya ditulis ke log write-ahead (WAL) sebelum operasi apa pun dijalankan di mesin penyimpanan. Setelah operasi dijalankan di mesin penyimpanan dan di-commit ke WAL, operasi tersebut dianggap berhasil. Penggunaan WAL memungkinkan atomicity dan durability, serta memungkinkan replikasi database dengan fidelitas tinggi. Beberapa database akan menulis ke log operasi persis yang akan terjadi di tingkat penyimpanan (misalnya, write 0x41 on location 20
), sehingga tindakan tersebut hanya dapat direplikasi (atau dilakukan ulang) di mesin penyimpanan yang sama. Database lain akan mencatat pernyataan logis (atau baris) lengkap yang dapat dieksekusi ulang di mesin penyimpanan yang berbeda.
Peristiwa dan feed
Datastream menyerap banyak data secara hampir real-time dari berbagai sumber, dan menyediakan data 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 khusus untuk database itu sendiri, dan beberapa bersifat umum dan dibagikan di seluruh database. Karena ada banyak sumber yang berbeda yang menghasilkan streaming ke tujuan terpadu, harus ada cara standar dan terpadu untuk merepresentasikan jenis sumber asli di semua sumber. Jenis terpadu adalah cara umum dan tanpa kehilangan untuk merepresentasikan jenis data di semua sumber sehingga dapat digunakan secara terpadu. Jenis terpadu yang didukung oleh Datastream akan mewakili superset dari semua jenis yang dinormalisasi di semua sistem sumber yang didukung sehingga semua jenis dapat didukung tanpa kehilangan kualitas.
Konteks entitas
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 database sumber atau tujuan tertentu.
- Aliran data mewakili pasangan profil koneksi sumber dan tujuan, beserta setelan khusus aliran data.
- Objek mewakili subbagian aliran data. Misalnya, streaming 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 lainnya melalui jaringan publik.
Setelah membuat profil koneksi untuk sumber dan tujuan, Anda dapat membuat aliran data yang menggunakan informasi yang disimpan dalam profil koneksi untuk mentransfer data dari sumber ke tujuan.
Setelah membuat aliran data, Datastream akan 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 meliputi:
- Tanpa server: Anda dapat mengonfigurasi aliran data dan data akan mulai dipindahkan. Tidak ada overhead penginstalan, alokasi resource, atau pemeliharaan. Seiring volume data bertambah dan berkurang, kemampuan penskalaan otomatis Datastream mengalokasikan resource untuk terus memindahkan data secara otomatis mendekati real-time.
- Skema jenis terpadu berbasis Avro: Datastream memungkinkan pemrosesan yang tidak bergantung pada sumber dengan mengonversi semua jenis data khusus sumber menjadi skema jenis Datastream terpadu, berdasarkan jenis Avro.
- Menstreaming data historis dan CDC: Datastream menstreaming data sumber historis dan CDC secara hampir 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 secara terus-menerus ke tabel BigQuery hampir secara real time. Data di BigQuery hampir langsung tersedia untuk analisis.
Tujuan Cloud Storage: Data CDC terus ditulis ke file Avro atau JSON yang mendeskripsikan dirinya sendiri di Cloud Storage. Informasi ini dapat digunakan untuk pemrosesan tambahan, baik secara langsung di tempat atau dengan memuat downstream ke tujuan lain seperti Spanner.
Kasus penggunaan
Ada tiga skenario utama untuk menggunakan Datastream:
- Integrasi data: Aliran data dari database dan layanan cloud Software-as-a-Service (SaaS) dapat mengisi pipeline integrasi data yang mendekati real-time dengan memuat data ke BigQuery.
- Analisis streaming: Perubahan dalam database diserap ke dalam pipeline streaming seperti dengan Dataflow untuk deteksi penipuan, pemrosesan peristiwa keamanan, dan deteksi anomali.
- Ketersediaan perubahan data mendekati real-time: Ketersediaan perubahan data mendekati real-time mendukung aplikasi kecerdasan buatan dan machine learning untuk mencegah churn atau meningkatkan engagement menggunakan upaya pemasaran atau dengan memberikan masukan ke sistem produksi.
Ringkasan perilaku
Datastream memungkinkan pelanggan melakukan streaming perubahan yang sedang berlangsung dari beberapa sumber data langsung ke Google Cloud.
Sumber
- Ada pekerjaan 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 melakukan streaming perubahan yang sedang berlangsung ke tujuan.
Tujuan
Datastream mendukung BigQuery dan Cloud Storage sebagai tujuan. Saat aliran 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 setidaknya satu kali. Metadata peristiwa mencakup data yang dapat digunakan untuk menghapus data duplikat di tujuan.
- Ukuran peristiwa dibatasi hingga 20 MB per peristiwa untuk tujuan BigQuery dan 100 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 satu zona di satu region tidak akan memengaruhi ketersediaan atau kualitas layanan di zona lain.
Pemulihan dari bencana: Jika terjadi kegagalan di suatu region, semua streaming yang berjalan di region tersebut akan nonaktif selama pemadaman layanan. Setelah pemadaman layanan teratasi, Datastream akan dilanjutkan persis dari tempat terakhir, dan data apa pun yang belum ditulis ke tujuan akan diambil lagi dari sumber. 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 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 tersebut berasal dari pengisian ulang atau dari CDC.
Langkah selanjutnya
- Cari tahu Datastream lebih lanjut.
- Cari tahu lebih lanjut tentang peristiwa dan streaming.
- Pelajari pemetaan jenis terpadu.
- Pelajari lebih lanjut sumber yang didukung Datastream.
- Pelajari lebih lanjut tujuan yang didukung Datastream.
- Cari tahu cara membuat konfigurasi konektivitas pribadi, profil koneksi, dan aliran data.