Alat opensource untuk membantu dalam menambang arus skor papan pemimpin


12

Pertimbangkan aliran berisi tupel yang (user, new_score) mewakili skor pengguna dalam game online. Aliran bisa memiliki 100-1.000 elemen baru per detik. Permainan ini memiliki 200 ribu hingga 300 ribu pemain unik.

Saya ingin memiliki beberapa pertanyaan berdiri seperti:

  1. Pemain mana yang memposting lebih dari skor x dalam jendela geser selama satu jam
  2. Pemain mana yang memperoleh skor x% dalam jendela geser selama satu jam

Pertanyaan saya adalah alat open source apa yang dapat saya terapkan untuk memulai proyek ini? Saya sedang mempertimbangkan Esper saat ini.

Catatan: Saya baru saja selesai membaca "Mining Data Streams" (bab 4 dari Mining Datasets Massive ) dan saya cukup baru dalam menambang stream data.

Jawaban:


8

Ini bukan solusi lengkap, tetapi Anda mungkin ingin melihat OrientDB sebagai bagian dari tumpukan Anda. Orient adalah server basis data Graph-Document yang seluruhnya ditulis dalam Java.

Dalam basis data grafik, hubungan dianggap warga negara kelas satu dan oleh karena itu melintasi hubungan tersebut dapat dilakukan dengan cukup cepat. Orient juga merupakan basis data dokumen yang memungkinkan Anda mendapatkan jenis arsitektur bebas skema yang sepertinya Anda perlukan. Alasan sebenarnya saya menyarankan Orient, adalah karena ekstensibilitasnya. Ini mendukung streaming melalui soket, dan seluruh basis data dapat disematkan ke aplikasi lain. Akhirnya, ini dapat diskalakan secara efisien dan / atau dapat bekerja sepenuhnya melalui memori. Jadi, dengan beberapa keahlian Java, Anda benar-benar dapat menjalankan kueri preset terhadap basis data dalam memori.

Kami melakukan hal serupa. Dalam membuat aplikasi / situs untuk kolaborasi penelitian ilmu sosial, kami menemukan diri kami dengan model data yang sangat kompleks. Kami akhirnya menulis beberapa pertanyaan menggunakan GREMLIN Traversal Language (subset dari Groovy, yang tentu saja, Java pada intinya), dan kemudian mengekspos query tersebut melalui server koneksi biner dari OrientDB. Jadi, klien membuka soket TCP, mengirim pesan biner pendek, dan kueri mengeksekusi di Jawa secara langsung terhadap database di-memori.

OrientDB juga mendukung kueri fungsi penulisan dalam Javascript, dan Anda dapat menggunakan Node.js untuk berinteraksi langsung dengan instance Orient.

Untuk ukuran sebesar ini, saya ingin menggunakan Orient bersamaan dengan Hadoop atau sesuatu seperti itu. Anda juga dapat menggunakan Orient bersamaan dengan esper.

Pertimbangkan: Pengantar orientasi: http://www.sitepoint.com/a-look-at-orientdb-the-graph-document-nosql/

Pertanyaan yang kompleks dan real-time: http://www.gft-blog.com/business-trends/leveraging-real-time-scoring-through-bigdata-to-detect-insurance-fraud/

Diskusi tentang opsi streaming dengan java dan orient: https://github.com/orientechnologies/orientdb/issues/1227


Terima kasih untuk sarannya. Saya telah melihat neo4j sebelumnya tetapi tidak pernah di orientdb. Saat ini saya tidak dapat membayangkan banyak manfaat dalam memodelkan data papan peringkat sebagai grafik tetapi saya masih akan melihat opsi streaming di orientdb
Tahir Akhtar

4

Saya telah membaca artikel yang sangat bagus baru-baru ini yang menyarankan menggunakan badai Twitter untuk tugas yang terlihat sangat mirip dengan Anda.


Saya telah membaca beberapa dasar tentang Apache Storm, sepertinya ini menyangkut masalah yang berkaitan dengan skalabilitas / keandalan pemrosesan aliran, membuat Anda menangani algoritma yang sebenarnya. Esper pada data proses penanganan lainnya untuk Anda berdasarkan pertanyaan Anda
Tahir Akhtar
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.