Ubah data menjadi acara pubsub

Saya memiliki saluran aliran data yang mengumpulkan data pengguna seperti navigasi, pembelian, tindakan kasar, dll. Saya memiliki persyaratan ini untuk dapat mengidentifikasi pola secara real-time dan kemudian mengirimkan peristiwa pubsub yang dapat didengarkan oleh layanan lain untuk memberikan tip real-time kepada pengguna , penawaran atau promosi.

Saya berpikir untuk mulai mengelompokkan acara berdasarkan id pengguna dan kemudian jika cocok dengan pola untuk membuat PCollection yang berisi nama acara yang perlu dipicu melalui pubsub.

Apakah ini pendekatan yang tepat? Apakah ada cara yang lebih baik?


person chchrist    schedule 25.08.2016    source sumber


Jawaban (1)


Ini pasti bisa berhasil untuk beberapa kasus penggunaan.

Jika Anda menggunakan jendela berbasis sesi yang dikombinasikan dengan pengaktifan awal (dipicu saat setiap elemen tiba). Anda dapat memiliki semua data yang diperlukan untuk mengidentifikasi pola setiap kali elemen baru muncul.

Namun, bergantung pada kecepatan data pengguna yang didorong dan ukuran sesi, hal ini mungkin mengakibatkan banyak data disimpan di PCollection dan mengulangi banyak pencocokan pola ini (pada data yang sama) , karena Anda harus menggunakan kembali semua data dalam sesi tersebut. Selain itu, Anda tidak dapat menggunakan elemen yang ada sebelum sesi ini.

Terkadang, Anda mungkin akan lebih baik dengan mempertahankan status untuk setiap pengguna (tanpa mengulangi pencocokan pola pada semua data pengguna untuk sesi ini). Menggunakan negara sebenarnya akan menghilangkan kebutuhan untuk bekerja dengan windowing. Proses baru sekarang akan terlihat seperti ini:

Untuk setiap elemen yang masuk:

  1. Ambil status saat ini

  2. Hitung keadaan baru (berdasarkan keadaan lama dan elemen baru)

  3. Jika perlu, kirimkan pesan ke PubSub.

Untuk mempertahankan status Anda, Anda dapat menggunakan BigTable atau Datastore.

person Fematich    schedule 25.08.2016
comment
Ya, jendela sesi akan menyimpan banyak data dan menjalankan pola yang sama berulang kali mungkin sangat mahal... Untuk mendapatkan status dari BigTable atau Datastore, saya khawatir tentang kecepatan, tetapi menurut saya ini layak untuk diperiksa. - person chchrist; 26.08.2016
comment
Bigtable dapat menskalakan. Waktu respons milidetik satu digit adalah hal yang normal ketika semua operasi dilakukan dalam zona cloud yang sama. Ada juga operasi massal untuk meningkatkan hasil. Kita bisa mendiskusikan semua itu di waktu luang Anda. - person Solomon Duskis; 29.08.2016
comment
belum pernah bermain dengan Bigtable. Aku akan mencobanya. Saya ingin mendiskusikannya dengan Anda. - person chchrist; 30.08.2016
comment
Jangan ragu untuk menghubungi grup google google-cloud-bigtable-discuss, seperti yang dijelaskan dalam: cloud .google.com/bigtable/docs/support - person Solomon Duskis; 30.08.2016