2010-05-12 12 views
10

मैं वर्तमान में डेटा एकत्रीकरण आवश्यकताओं की मांग के साथ एक परियोजना के लिए उपयोग करने के लिए बैकएंड पर शोध कर रहा हूं। मुख्य परियोजना आवश्यकताओं निम्नलिखित हैं।डाटा एग्रीगेशन mongodb बनाम mysql

  1. प्रत्येक उपयोगकर्ता के लिए लाखों रिकॉर्ड स्टोर करें। उपयोगकर्ताओं के प्रति वर्ष 1 मिलियन से अधिक प्रविष्टियां हो सकती हैं, यहां तक ​​कि 100 उपयोगकर्ताओं के साथ भी हम प्रति वर्ष 100 मिलियन प्रविष्टियों की बात कर रहे हैं।

  2. उन प्रविष्टियों पर डेटा एकत्रीकरण फ्लाई पर किया जाना चाहिए। उपयोगकर्ताओं को उपलब्ध फ़िल्टरों के एक टन द्वारा प्रविष्टियों पर फ़िल्टर करने में सक्षम होना चाहिए और फिर परिणामों पर सारांश (कुल, औसत e.t.c) और ग्राफ प्रस्तुत करना होगा। जाहिर है, मैं किसी भी समेकन परिणामों को पूर्ववत नहीं कर सकता क्योंकि फ़िल्टर संयोजन (और इस प्रकार परिणाम सेट) विशाल हैं।

  3. उपयोगकर्ताओं को केवल अपने डेटा पर पहुंच होगी, लेकिन यह अच्छा होगा अगर अज्ञात आंकड़े सभी डेटा के लिए गणना की जा सकें।

  4. डेटा बैच में सबसे अधिक समय होने वाला है। उदाहरण के लिए उपयोगकर्ता हर दिन डेटा अपलोड करेगा और यह 3000 रिकॉर्ड पसंद कर सकता है। कुछ बाद के संस्करण में स्वचालित प्रोग्राम हो सकते हैं जो उदाहरण के लिए 100 वस्तुओं के छोटे बैचों में हर कुछ मिनट अपलोड करते हैं।

मैं 1 लाख पंक्तियों के साथ एक मेज बनाने और दोनों MongoDB में और mysql में और प्रदर्शन अंतर बहुत बड़ा था 1 स्तंभ का एक सरल योग प्रदर्शन के एक साधारण परीक्षण किए गए। मुझे सटीक संख्या याद नहीं है लेकिन यह mysql = 200ms, mongodb = 20 सेकंड की तरह कुछ था।

मैंने सोफेडब के साथ भी परीक्षण किया है और इसके परिणाम बहुत खराब हैं।

प्रतीत होता है कि तेज गति के अनुसार कैसंद्रा है जिसे मैंने पहली बार खोजा था जब मैं बहुत उत्साहित था। हालांकि दस्तावेज दुर्लभ है और मुझे डेटा पर रकम और अन्य कुल कार्यों को निष्पादित करने के बारे में कोई ठोस उदाहरण नहीं मिला है। क्या यह संभव है ?

जैसा कि यह मेरे परीक्षण से लगता है (शायद मैंने कुछ गलत किया है) वर्तमान प्रदर्शन के साथ इस तरह के एक परियोजना के लिए mongodb का उपयोग करना असंभव है, हालांकि स्वचालित sharding कार्यक्षमता इसके लिए एकदम सही फिट लगता है।

क्या किसी को भी मोंगोडब में डेटा एकत्रीकरण के साथ अनुभव है या परियोजना के कार्यान्वयन के लिए कोई अंतर्दृष्टि हो सकती है?

धन्यवाद, दिमित्रिस

उत्तर

2

मैं कभी नहीं उपयोग के मामलों में MongoDB के प्रदर्शन से प्रभावित किया गया है, जहां जावास्क्रिप्ट की आवश्यकता है उदाहरण के लिए मानचित्र-कम-नौकरियां। शायद यह 1.51 में बेहतर है। मैंने कोशिश नहीं की।

तुम भी Greenplum से मुक्त एकल नोड संस्करण की कोशिश कर सकते: http://www.greenplum.com/products/single-node/ और http://www.dbms2.com/2009/10/19/greenplum-free-single-node-edition/

+0

धन्यवाद की सराहना की। ग्रीनप्लम लिंक बहुत मददगार था क्योंकि मैंने पाया कि वहां कई डीबीएस हैं जैसे हरे रंग की जो मुझे करने की ज़रूरत है। भारी डेटा विश्लेषण। एक और इंफोबराइट है जो mysql में प्लग करता है और आशाजनक लगता है। –

+0

इसे देखकर, इन्फोब्राइट के लिए बिल्कुल सही लगता है – Amala

3

आप एक बहुत ही उच्च प्रदर्शन डीबीएमएस के लिए देख रहे हैं और इसकी आवश्यकता नहीं है रिलेशनल होने के लिए हैं, तो आप कैसेंड्रा पर विचार हो सकता है - हालांकि इसके फायदे केवल यदि आप एक डेटाबेस है तब लागू होते हैं एक नोड के बजाय क्लस्टर।

आपने यह नहीं कहा कि भौतिक वास्तुकला पर क्या सीमाएं हैं। आपने शेर्डिंग का जिक्र किया जो क्लस्टर का तात्पर्य है। आईआईआरसी MySQL क्लस्टर भी sharding का समर्थन करते हैं।

यह भी जानना बहुत उपयोगी होगा कि प्रणाली का समर्थन करने के लिए किस तरह की समेकन का स्तर है, और डेटा कैसे जोड़ा जाएगा (ड्रिप-फीड या बैच)।

आप कहते हैं "स्पष्ट रूप से मैं किसी भी समेकन परिणामों को पूर्ववत नहीं कर सकता क्योंकि फिल्टर संयोजन (और इस प्रकार परिणाम सेट) बहुत बड़े हैं।"

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

सी

+0

पर प्रतिक्रिया के लिए बहुत कम समय लेता है। मैंने कुछ और जानकारी के साथ अपनी मूल पोस्ट अपडेट की है। प्री-समेकित विचारों और निकटतम मिलान अनुकूलक के बारे में आपकी अंतिम टिप्पणी यह ​​है कि मैं परियोजना की खोज करते समय क्या करने के बारे में सोच रहा हूं। मेरी समस्या यह है कि मुझे इस बारे में कोई जानकारी नहीं है कि इसके बारे में कैसे जाना है और कहां से शुरू करना है। प्रत्येक रिकॉर्ड में कई झंडे होंगे जो फिल्टर के रूप में उपयोग किए जाएंगे और उपयोगकर्ता मनमाने ढंग से दिनांक अंतराल द्वारा फ़िल्टर करने में सक्षम होंगे। फिर परिणाम सेट पर मुझे औसत राशि और गणना के टन की गणना करना होगा। यह ध्वज कितनी बार सच था e.t.c कोई और पॉइंटर्स –

1

यदि मोंगो में 1 मिलियन दस्तावेज़ों का एक साधारण योग 20 सेकंड लेता है तो आपके पास पर्याप्त रैम नहीं है। मोंगो के साथ यह महत्वपूर्ण है कि आप पूरे डेटासेट को मेमोरी या प्रदर्शन में बनाए रख सकें। आपने उल्लेख नहीं किया कि आपने गिनती कैसे की है, शायद यह आपके मानचित्र को कोड कम करने में एक समस्या है? यह कहने के लिए बहुत कम विवरण है कि समस्या क्या है, लेकिन मैंने अधिक जटिल मानचित्र को आदेश के साथ कम किया है, जो कि मेरे लैपटॉप

संबंधित मुद्दे