Sebagian besar pipeline data streaming memerlukan transformasi data. Beberapa pengguna lebih suka mentransformasi data setelah data mencapai tujuannya dalam pipeline ekstrak, muat, transformasi (ELT), sementara yang lain memilih untuk mentransformasi data sebelum penyerapan dalam pipeline ekstrak, transformasi, dan muat (ETL). Secara tradisional, arsitektur ini memerlukan pipeline yang kompleks dengan alat seperti Dataflow atau Apache Flink untuk melakukan transformasi data.
Pub/Sub menawarkan Transformasi Satu Pesan (SMT) untuk menyederhanakan transformasi data untuk pipeline streaming. SMT memungkinkan modifikasi ringan pada data dan atribut pesan secara langsung dalam Pub/Sub. SMT menghilangkan kebutuhan akan langkah pemrosesan data tambahan atau produk transformasi data terpisah.
Saat SMT dijalankan, SMT akan mengambil pesan Pub/Sub sebagai input, termasuk data dan atribut pesan. Outputnya adalah pesan Pub/Sub yang ditransformasi, dengan modifikasi pada data atau atribut. SMT terintegrasi ke dalam Pub/Sub API, sehingga Anda dapat mengelolanya sebagai bagian dari konfigurasi topik atau langganan.
Kasus penggunaan SMT
Pertimbangkan untuk mendesain toko online yang ingin memberikan rekomendasi produk yang dipersonalisasi kepada pelanggan saat mereka menjelajahi situs. Untuk melakukannya, Anda dapat menggunakan Pub/Sub untuk mengumpulkan data real-time tentang aktivitas pelanggan di situs. Hal ini mencakup data tentang produk yang dilihat, produk yang ditambahkan ke keranjang, dan rating yang diberikan untuk produk.
Namun, data mentah ini sering kali memerlukan beberapa penyesuaian sebelum dapat digunakan untuk membuat rekomendasi. Misalnya, data mentah mungkin berisi detail yang tidak relevan untuk kasus penggunaan Anda. Contoh detail tersebut adalah jenis browser pelanggan atau waktu mereka mengunjungi situs. Data mungkin juga tidak dalam format yang diperlukan untuk sistem rekomendasi. Misalnya, stempel waktu mungkin dalam format yang berbeda, atau ID produk mungkin perlu dikonversi ke jenis yang berbeda.
Anda dapat menggunakan SMT Pub/Sub untuk melakukan transformasi data seperti berikut:
Menghapus informasi identitas pribadi (PII), seperti nama lengkap dan alamat, untuk melindungi privasi pelanggan.
Mempertahankan hanya peristiwa yang relevan dengan rekomendasi, seperti tampilan dan pembelian produk, serta menghapus peristiwa lainnya, seperti perubahan profil pelanggan.
Memastikan semua stempel waktu, nilai mata uang, dan ID produk mematuhi format dan jenis yang konsisten yang kompatibel dengan sistem rekomendasi.
Membuat kolom data baru dari data mentah, seperti nilai total keranjang belanja atau waktu kunjungan halaman produk.
Menambahkan inferensi dari model Platform Agen Gemini Enterprise ke data peristiwa, seperti klasifikasi, prediksi, sentimen, atau embedding.
Singkatnya, SMT memungkinkan berbagai kasus penggunaan, termasuk yang berikut:
Penyamaran dan penghapusan data: Melindungi data sensitif dengan menyamarkan atau menghapus kolom seperti nomor kartu kredit atau PII, yang membantu kepatuhan terhadap peraturan privasi data.
Konversi format data: Mentransformasi data antara format yang berbeda untuk memastikan kompatibilitas dengan sistem hilir.
Pemfilteran pesan: Hanya memproses pesan yang relevan dengan memfilter pesan yang tidak diinginkan berdasarkan konten atau atribut. SMT memungkinkan kondisi pemfilteran yang lebih kompleks daripada filter bawaan Pub/Sub's .
Transformasi data sederhana: Melakukan tugas manipulasi data dasar, seperti manipulasi string, pemformatan tanggal, atau operasi matematika.
Inferensi AI: Mengintegrasikan model AI secara lancar ke dalam pipeline Pub/Sub Anda, dengan menggunakan SMT Inferensi AI.
Jenis SMT
Pub/Sub mendukung SMT berikut:
- Inferensi AI: Mendapatkan inferensi pada pesan Pub/Sub dari model Platform Agen.
- Fungsi yang Ditentukan Pengguna: Memanggil fungsi yang ditentukan pengguna (UDF) JavaScript untuk melakukan transformasi kustom pada pesan Pub/Sub.
Contoh alur pesan untuk SMT
Gambar ini menunjukkan contoh sistem Pub/Sub dengan SMT yang diterapkan di tingkat topik dan langganan.
Prosedur berikut menunjukkan cara pesan mengalir dalam sistem Pub/Sub:
Aplikasi penayang Penayang 1 dan Penayang 2 memublikasikan pesan A dan B ke topik Pub/Sub.
SMT topik mentransformasi pesan A dan B menjadi pesan A' dan B', masing-masing.
Jika skema dilampirkan ke topik, pesan yang ditransformasi A' dan B' akan divalidasi terhadap skema. Misalnya, jika A' tidak cocok dengan skema, publikasi pesan A akan gagal dengan error.
Pesan yang ditransformasi A' dan B' ditulis ke penyimpanan Pub/Sub.
Pub/Sub mengirimkan pesan A' dan B' ke semua langganan terlampir, yaitu Langganan 1 dan Langganan 2 seperti yang ditunjukkan dalam gambar.
Jika Langganan 1 memiliki filter yang dikonfigurasi, pesan A' dan B' akan dievaluasi terhadap filter. Hanya pesan yang cocok dengan filter yang akan melanjutkan ke langkah berikutnya. Pesan lainnya akan otomatis dikonfirmasi oleh Pub/Sub.
Jika Langganan 2 memiliki filter yang dikonfigurasi, pesan A' dan B' akan dievaluasi terhadap filter. Hanya pesan yang cocok dengan filter yang akan melanjutkan ke langkah berikutnya. Pesan lainnya akan otomatis dikonfirmasi oleh Pub/Sub.
SMT Langganan 1 mentransformasi pesan A' dan B'. A' menjadi A'' dan B' menjadi B''.
SMT Langganan 2 mentransformasi pesan A' dan B'. A' tetap sebagai A' dan B' difilter.
Jika Langganan 1 adalah langganan push dengan pembukaan payload yang diaktifkan, pesan A'' dan B'' akan dibuka. Jika Langganan 2 adalah langganan push dengan pembukaan payload yang diaktifkan, A' akan dibuka.
Pelanggan 1 menerima pesan B'', Pelanggan 2 menerima pesan A'', dan Pelanggan 3 menerima pesan A'.
Pelanggan mengonfirmasi pesan yang diterima.
Pub/Sub menghapus pesan yang dikonfirmasi dari penyimpanan.
Batasan
Maksimal 5 SMT dapat diaktifkan pada topik atau langganan.
SMT beroperasi pada satu pesan Pub/Sub. SMT tidak dapat menggabungkan beberapa pesan Pub/Sub.