2012-08-04 11 views
6

मैं मोंगोडीबी पर पढ़ रहा हूं। मैं विशेष रूप से समेकन ढांचे की क्षमता में रूचि रखता हूं। मैं प्रति माह कम से कम 10+ मिलियन पंक्तियों और इस डेटा से एकत्रीकरण बनाने वाले एकाधिक डेटासेट को देख रहा हूं। यह समय श्रृंखला डेटा है।मोंगोडीबी - मटेरियलाइज्ड व्यू/ओलाप स्टाइल एकत्रीकरण और प्रदर्शन

उदाहरण। ओरेकल ओलाप का उपयोग करके, आप दूसरे/मिनट के स्तर पर डेटा लोड कर सकते हैं और यह रोल घंटे, दिन, सप्ताह, महीनों, तिमाहियों, वर्षों आदि तक ले सकते हैं ... बस अपने आयामों को परिभाषित करें और वहां से जाएं। यह काफी अच्छी तरह से काम करता है।

अब तक मैंने पढ़ा है कि मोंगोडीबी इसके मानचित्र का उपयोग करके उपरोक्त को संभाल सकता है कार्यक्षमता को कम करता है। नक्शा कम करने की कार्यक्षमता लागू की जा सकती है ताकि यह परिणामस्वरूप वृद्धिशील हो। यह समझ में आता है क्योंकि मैं साप्ताहिक या मासिक कहता हूं कि नया डेटा लोड हो रहा है और मुझे उम्मीद है कि लोड होने वाले नए डेटा को केवल संसाधित करना होगा।

मैंने यह भी पढ़ा है कि मोंगोडीबी में नक्शा कम हो सकता है धीमा हो सकता है। इस पर काबू पाने के लिए, विचार एक सस्ते कमोडिटी हार्डवेयर का उपयोग करना है और लोड को कई मशीनों में फैला देना है।

तो यहां मेरे प्रश्न हैं।

  1. प्रदर्शन के संदर्भ में मोंगो डीबी हैंडल मानचित्र को कितना अच्छा (या बुरा) करता है? क्या आपको स्वीकार्य प्रदर्शन प्राप्त करने के लिए वास्तव में बहुत सारी मशीनों की आवश्यकता है?
  2. वर्कफ़्लो के संदर्भ में, क्या नक्शा कम करके उत्पन्न होने वाले वृद्धिशील परिणामों को संग्रहीत करना और मर्ज करना अपेक्षाकृत आसान है?
  3. एकत्रीकरण ढांचा प्रस्ताव में कितना प्रदर्शन सुधार करता है?
  4. क्या समेकन ढांचा परिणामस्वरूप वृद्धि के रूप में समान रूप से परिणामों को स्टोर करने की क्षमता प्रदान करता है कि मानचित्र/कार्यक्षमता कम हो जाती है जो पहले से मौजूद है।

मैं आपकी प्रतिक्रियाओं को पहले से सराहना करता हूं!

उत्तर

8

प्रदर्शन के संदर्भ में मोंगो डीबी हैंडल मानचित्र को कितना अच्छा (या बुरा) करता है? क्या आपको स्वीकार्य प्रदर्शन प्राप्त करने के लिए वास्तव में बहुत सारी मशीनों की आवश्यकता है?

मोंगोडीबी का मानचित्र/कार्यान्वयन कम करना (2.0.x के रूप में) एकल-थ्रेडेड SpiderMonkey JavaScript engine पर निर्भरता से सीमित है। v8 JavaScript engine के साथ कुछ प्रयोग हुए हैं और बेहतर समेकन और प्रदर्शन एक समग्र डिजाइन लक्ष्य है।

नया Aggregation Framework सी ++ में लिखा गया है और इसमें "पाइपलाइन" दृष्टिकोण सहित एक और स्केलेबल कार्यान्वयन है। प्रत्येक पाइपलाइन वर्तमान में सिंगल-थ्रेडेड है, लेकिन आप समानांतर में विभिन्न पाइपलाइन चला सकते हैं। समेकन ढांचा वर्तमान में सभी नौकरियों को प्रतिस्थापित नहीं करेगा जो मानचित्र/घटा में किए जा सकते हैं, लेकिन बहुत से सामान्य उपयोग मामलों को सरल बनाते हैं।

एक तीसरा विकल्प हैडोप के साथ MongoDB Hadoop Connector के माध्यम से संयोजन में स्टोरेज के लिए मोंगोडीबी का उपयोग करना है। हैडोप में वर्तमान में एक और स्केलेबल मानचित्र/कार्यान्वयन कम हो गया है और हडोप कनेक्टर के माध्यम से इनपुट और आउटपुट के लिए मोंगोडीबी संग्रहों तक पहुंच सकते हैं।

वर्कफ़्लो के संदर्भ में, क्या नक्शा कम करके उत्पन्न होने वाले वृद्धिशील परिणामों को स्टोर करना और मर्ज करना अपेक्षाकृत आसान है?

मानचित्र/कम कई output options, पिछले उत्पादन संग्रह में वृद्धिशील उत्पादन विलय या परिणाम इनलाइन (स्मृति में) लौट शामिल है।

एकत्रीकरण ढांचा प्रस्ताव में कितना प्रदर्शन सुधार करता है?

यह वास्तव में आपके मानचित्र/कमी की जटिलता पर निर्भर करता है। कुल मिलाकर समेकन ढांचा तेज है (और कुछ मामलों में, महत्वपूर्ण रूप से)। आप अपने स्वयं के उपयोग के मामले की तुलना में सबसे अच्छा कर रहे हैं।

MongoDB 2.2 आधिकारिक तौर पर अभी तक जारी नहीं किया गया है, लेकिन 2.2rc0 release candidate मध्य जुलाई के बाद से उपलब्ध किया गया है।

क्या समेकन ढांचा परिणामस्वरूप वृद्धि के रूप में समान रूप से परिणामों को स्टोर करने की क्षमता प्रदान करता है, जो मानचित्र/कार्यक्षमता को कम करता है जो पहले से मौजूद है।

समेकन ढांचा वर्तमान में इनलाइन परिणाम लौटने के लिए सीमित है, इसलिए आपको लौटने पर परिणामों को संसाधित/प्रदर्शित करना होगा। परिणाम दस्तावेज़ मोंगोडीबी (वर्तमान में 16 एमबी) में अधिकतम दस्तावेज़ आकार तक भी सीमित है।

एक प्रस्तावित $out पाइपलाइन कमांड (SERVER-3253) है जो भविष्य में अधिक आउटपुट विकल्पों के लिए भविष्य में जोड़ा जाएगा।

कुछ आगे पढ़ने कि ब्याज की हो सकती है:

+2

अपडेट:: मोंगो 2.4 डिफ़ॉल्ट Javscript इंजन अब वी 8 (है के रूप में http://docs.mongodb.org/manual/release-notes

यह इस तरह काउचबेस का उपयोग किया जाता का एक लिखने अप है /2.4/#javascript-engine-changed-to-v8) – del

4

काउचआधारित नक्शा वृद्धिशील अनुक्रमित है, जो तब गतिशील रूप से एल के लिए क्वेरी की जा सकती है, के निर्माण के लिए डिज़ाइन किया गया है कम जिस रोलअप को आप ढूंढ रहे हैं उसका एवल (आपके प्रश्न में दिए गए ओरेकल उदाहरण की तरह)। http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-sample-patterns-timestamp.html

+0

दिलचस्प। इस group_level फ़ंक्शन पर प्रदर्शन कैसा है? – Dave

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