Ringkasan Transformasi Pesan Tunggal (SMT)

Sebagian besar pipeline data streaming memerlukan transformasi data. Beberapa pengguna lebih memilih untuk mengubah data setelah mencapai tujuannya dalam pipeline ekstrak, muat, transformasi (ELT), sementara yang lain memilih untuk mengubah data sebelum penyerapannya dalam pipeline ekstrak, transformasi, dan muat (ETL). Secara tradisional, arsitektur ini memerlukan pipeline kompleks dengan alat seperti Dataflow atau Apache Flink untuk melakukan transformasi data.

Pub/Sub menawarkan Transformasi Pesan Tunggal (SMT) untuk menyederhanakan transformasi data untuk pipeline streaming. SMT memungkinkan perubahan ringan pada data dan atribut pesan secara langsung dalam Pub/Sub. SMT menghilangkan kebutuhan akan langkah pemrosesan data tambahan atau produk transformasi data terpisah.

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 ke 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:

  • Hapus informasi identitas pribadi (PII), seperti nama lengkap dan alamat, untuk melindungi privasi pelanggan.

  • Hanya simpan peristiwa yang relevan dengan rekomendasi, seperti tampilan dan pembelian produk, dan hapus peristiwa lainnya, seperti perubahan profil pelanggan.

  • Pastikan semua stempel waktu, nilai mata uang, dan ID produk mematuhi format dan jenis yang konsisten dan kompatibel dengan sistem rekomendasi.

  • Buat kolom data baru dari data mentah, seperti nilai total keranjang belanja atau waktu kunjungan halaman produk.

Singkatnya, SMT memungkinkan berbagai kasus penggunaan, termasuk yang berikut:

  • Penyamaran dan penyamaran data: Lindungi data sensitif dengan menyamarkan atau menyunting kolom seperti nomor kartu kredit atau PII, yang membantu kepatuhan terhadap peraturan privasi data.

  • Konversi format data: Mengubah data antarformat yang berbeda untuk memastikan kompatibilitas dengan sistem downstream.

  • 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.

  • Transformasi data sederhana: Melakukan tugas manipulasi data dasar, seperti manipulasi string, pemformatan tanggal, atau operasi matematika.

Contoh alur pesan untuk SMT

Gambar menunjukkan contoh sistem Pub/Sub dengan SMT yang diterapkan di tingkat topik dan langganan.

Gambar yang menunjukkan pengaruh pesan dengan SMT topik dan SMT subscription.
Gambar 1 Cara pesan diubah dengan SMT.

Prosedur berikut menunjukkan alur pesan dalam sistem Pub/Sub:

  1. Aplikasi penayang Penayang 1 dan Penayang 2 masing-masing memublikasikan pesan A dan B ke topik Pub/Sub.

  2. SMT topik mengubah pesan A dan B menjadi pesan A' dan B'.

  3. Jika skema dilampirkan ke topik, pesan yang diubah A' dan B' akan divalidasi berdasarkan skema. Misalnya, jika A' tidak cocok dengan skema, publikasi pesan A akan gagal dengan error.

  4. Pesan yang diubah A' dan B' ditulis ke penyimpanan Pub/Sub.

  5. Pub/Sub mengirimkan pesan A' dan B' ke semua langganan terlampir, yaitu Langganan 1 dan Langganan 2 seperti yang ditunjukkan dalam gambar.

  6. Jika Langganan 1 memiliki filter yang dikonfigurasi, pesan A' dan B' akan dievaluasi berdasarkan filter tersebut. Hanya pesan yang cocok dengan filter yang akan dilanjutkan ke langkah berikutnya. Pesan lainnya akan otomatis dikonfirmasi oleh Pub/Sub.

  7. Jika Langganan 2 memiliki filter yang dikonfigurasi, pesan A' dan B' akan dievaluasi berdasarkan filter tersebut. Hanya pesan yang cocok dengan filter yang akan dilanjutkan ke langkah berikutnya. Pesan lainnya akan otomatis dikonfirmasi oleh Pub/Sub.

  8. SMT Langganan 1 mengubah pesan A' dan B'. A' menjadi A'' dan B' menjadi B''.

  9. SMT Langganan 2 mengubah pesan A' dan B'. A' tetap sebagai A' dan B' difilter.

  10. 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.

  11. Pelanggan 1 menerima pesan B'', Pelanggan 2 menerima pesan A'', dan Pelanggan 3 menerima pesan A'.

  12. Pelanggan mengonfirmasi pesan yang diterima.

  13. Pub/Sub akan menghapus pesan yang diakui dari penyimpanan.

Informasi penting tentang SMT

  • SMT terintegrasi ke dalam API Pub/Sub, sehingga Anda dapat mengelolanya sebagai bagian dari konfigurasi topik atau langganan.

  • Maksimal 5 SMT dapat diaktifkan di topik atau langganan.

  • SMT beroperasi pada satu pesan Pub/Sub. Fungsi ini tidak dapat menggabungkan beberapa pesan Pub/Sub.

  • Saat dijalankan, SMT akan menggunakan pesan Pub/Sub sebagai input, termasuk data dan atributnya. Output-nya adalah pesan Pub/Sub yang diubah, dengan modifikasi pada data atau atributnya.

  • Jika Anda memiliki SMT yang ditentukan pada langganan yang mengaktifkan pengurutan dan menjalankan SMT pada pesan apa pun akan menampilkan error, pesan berikutnya untuk kunci pengurutan yang sama tidak akan dikirim ke pelanggan. Siapkan topik yang dihentikan pengirimannya di langganan untuk menghapus pesan tersebut yang menampilkan error dari backlog pesan sehingga pesan berikutnya dapat dikirim.

Jenis SMT

Langkah berikutnya