लीडर बोर्ड स्कोर की खनन धारा में मदद के लिए उपकरण खोलें


12

एक ऑनलाइन गेम में उपयोगकर्ताओं के स्कोर का प्रतिनिधित्व करने वाली टुपल्स वाली स्ट्रीम पर विचार करें (user, new_score)। धारा में प्रति सेकंड 100-1,000 नए तत्व हो सकते हैं। खेल में 200K से 300K अद्वितीय खिलाड़ी हैं।

मैं कुछ स्थायी प्रश्न रखना चाहूंगा जैसे:

  1. किन खिलाड़ियों ने एक घंटे की स्लाइडिंग विंडो में x से अधिक स्कोर पोस्ट किए
  2. किन खिलाड़ियों ने एक घंटे की स्लाइडिंग विंडो में x% स्कोर प्राप्त किया

मेरा प्रश्न यह है कि मैं इस परियोजना को शुरू करने के लिए कौन से ओपन सोर्स उपकरण लगा सकता हूं? मैं इस समय ग्रैफिक पर विचार कर रहा हूं ।

नोट: मैंने "खनन डेटा स्ट्रीम" ( बड़े पैमाने पर डेटासेट के खनन का अध्याय 4 ) पढ़ना अभी पूरा किया है और मैं डेटा धाराओं को खनन करने के लिए काफी नया हूं।

जवाबों:


8

यह एक पूर्ण समाधान नहीं है, लेकिन आप अपने स्टैक के हिस्से के रूप में ओरिएंटीडीबी में देखना चाह सकते हैं । ओरिएंट एक ग्राफ़-दस्तावेज़ डेटाबेस सर्वर है जो पूरी तरह से जावा में लिखा गया है।

ग्राफ डेटाबेस में, रिश्तों को प्रथम श्रेणी के नागरिक माना जाता है और इसलिए उन रिश्तों को ट्रेस करना बहुत जल्दी किया जा सकता है। ओरिएंट भी एक दस्तावेज़ डेटाबेस है जो आपको स्कीमा-मुक्त वास्तुकला की तरह की अनुमति देता है जो आपको लगता है कि आपको इसकी आवश्यकता होगी। हालांकि, मैं ओरिएंट का वास्तविक कारण इसकी व्यापकता के कारण बताता हूं। यह सॉकेट्स के माध्यम से स्ट्रीमिंग का समर्थन करता है, और पूरे डेटाबेस को दूसरे एप्लिकेशन में एम्बेड किया जा सकता है। अंत में, इसे कुशलता से बढ़ाया जा सकता है और / या पूरी तरह से मेमोरी के माध्यम से काम कर सकता है। तो, कुछ जावा विशेषज्ञता के साथ, आप वास्तव में स्मृति में डेटाबेस के खिलाफ अपने पूर्व निर्धारित प्रश्नों को चला सकते हैं।

हम भी कुछ ऐसा ही कर रहे हैं। सामाजिक विज्ञान अनुसंधान सहयोग के लिए एक ऐप / साइट बनाने में, हमने खुद को बेहद जटिल डेटा मॉडल के साथ पाया। हमने ग्रेमलिन ट्रैवर्सल लैंग्वेज (ग्रूवी का एक उप-समूह, जो निश्चित रूप से, इसके दिल में जावा है) का उपयोग करके कई प्रश्नों को लिखना समाप्त कर दिया, और फिर ओरिएंटबीडी के बाइनरी कनेक्शन सर्वर के माध्यम से उन प्रश्नों को उजागर किया। तो, क्लाइंट एक टीसीपी सॉकेट खोलता है, एक छोटा बाइनरी संदेश भेजता है, और इन-मेमोरी डेटाबेस के खिलाफ सीधे जावा में क्वेरी निष्पादित कर रहा है।

ओरिएंटबैंक जावास्क्रिप्ट में फ़ंक्शन क्वेश्चन लिखने का भी समर्थन करता है, और आप सीधे ओरिएंट उदाहरण के साथ बातचीत करने के लिए Node.js का उपयोग कर सकते हैं।

इस आकार के कुछ के लिए, मैं हेदोप के साथ ओरिएंट का उपयोग करना चाहूंगा या ऐसा कुछ। आप एस्पर के साथ संयोजन में ओरिएंट का भी उपयोग कर सकते हैं।

विचार करें: ओरिएंट से परिचय: http://www.sitepoint.com/a-look-at-orientdb-the-graph-document-nosql/

जटिल, वास्तविक समय के प्रश्न: http://www.gft-blog.com/business-trends/leveraging-real-time-scoring-through-bigdata-to-detect-insurance-fraud/

जावा और ओरिएंटेशन के साथ स्ट्रीमिंग विकल्पों के बारे में एक चर्चा: https://github.com/orientechnologies/orientdb/issues/122


सलाह के लिये धन्यवाद। मैंने पहले neo4j को देखा है, लेकिन कभी ओरिएंटब पर नहीं। वर्तमान में मैं ग्राफ के रूप में मॉडलिंग लीडबोर्डबोर्ड में बहुत अधिक लाभ की कल्पना नहीं कर सकता हूं, लेकिन मैं अभी भी ओरिएंटब में स्ट्रीमिंग विकल्प देखूंगा
ताहिर अख्तर

4

मैंने हाल ही में बहुत अच्छा लेख पढ़ा है जो सुझाव देता है कि ट्विटर तूफान का उपयोग उस कार्य के लिए जो आपके जैसा ही दिखता है।


मैंने अपाचे स्टॉर्म के बारे में कुछ मूल बातें पढ़ी हैं, ऐसा लगता है कि यह स्केलेबिलिटी / स्ट्रीम प्रोसेसिंग की विश्वसनीयता से संबंधित मुद्दों के बारे में चिंतित है, आपको वास्तविक एल्गोरिदम को संभालने के लिए छोड़ देता है। आपके प्रश्नों के आधार पर आपके लिए दूसरे हैंडल प्रोसेस डेटा पर जीरो
ताहिर अख्तर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.