मैं सिर्फ मोंगो डीबी के साथ शुरू कर रहा हूं और कुछ सरल चीजों को बनाने की कोशिश कर रहा हूं। मैंने अपने डेटाबेस को "आइटम" संपत्ति वाले डेटा के संग्रह के साथ भर दिया।मैंगडियड के रूप में धीमी गति से मोंगोडीबी एकत्रीकरण?
{ "_id" : ObjectId("50dadc38bbd7591082d920f0"), "item" : "Pons", "lines" : 37 }
तो मैं (pymongo का उपयोग कर अजगर में लिखा)
MapReduce करने के लिए इन दोनों कार्यों के लिए बनाया गया: मैं गिनती करने की कोशिश करने के लिए कितना समय हर आइटम संग्रह में एक दस्तावेज़ केउदाहरण है चाहता था
all_map = Code("function() {"
" emit(this.item, 1);"
"}")
all_reduce = Code("function (key, values) {"
" var sum = 0;"
" values.forEach(function(value){"
" sum += value;"
" });"
" return sum;"
"}")
यह एक आकर्षण की तरह काम करता था, इसलिए मैंने संग्रह भरना शुरू कर दिया। लगभग 30,000 दस्तावेजों पर, मैप्रिडस पहले से ही एक सेकंड से अधिक समय तक रहता है ... क्योंकि नोएसक्यूएल गति के बारे में उत्साहित है, मैंने सोचा कि मैं कुछ कर रहा होगा गलत!
स्टैक ओवरफ़्लो पर एक प्रश्न ने मुझे मोंगोडब की एकत्रीकरण सुविधा की जांच की। तो मैंने समूह + sum + sort thingies का उपयोग करने की कोशिश की। इस के साथ आया था:
db.wikipedia.aggregate(
{ $group: { _id: "$item", count: { $sum: 1 } } },
{ $sort: {count: 1} }
)
इस कोड को बस ठीक काम करता है और मुझे mapreduce सेट के रूप में एक ही परिणाम देता है, लेकिन यह बस के रूप में धीमी है। क्या मुझसे कुछ गलत हो रही है? बेहतर प्रदर्शन प्राप्त करने के लिए मुझे वास्तव में हैडॉप जैसे अन्य टूल्स का उपयोग करने की आवश्यकता है?
$ समूह एक इंडेक्स का उपयोग नहीं कर सकता है और फिर आप एक पूर्णांक स्कैन और एक गणना वाले क्षेत्र पर सॉर्टिंग कर रहे हैं जो फिर से एक इंडेक्स का उपयोग नहीं कर सकता ... हम्म हाँ मुझे लगता है कि यह आसानी से धीमा और एमआर हो सकता है, एक नज़र डालें $ सॉर्ट पर नोटिस: http://docs.mongodb.org/manual/reference/aggregation/#_S_sort।अगर मैं ईमानदार हूं तो मुझे नहीं लगता कि यह टूल की गलती है लेकिन स्कीमा के अधिक डिज़ाइन के लिए यदि आपको रीयलटाइम-आईएसएच में इस तरह की कोई क्वेरी करने की आवश्यकता है तो – Sammaye
स्पष्टीकरण के लिए इसे पढ़ें: http: // stackoverflow.com/questions/12015064/mongodb-mapreduce-and-sorting –
@Sammaye जैसा कि आप मेरे समापन वाक्यों को पढ़ते हैं, आप देखेंगे कि मैं औजारों पर उत्साहित नहीं हूं। मुझे अभी तक नोएसक्यूएल और मोंगोडीबी के साथ कोई अनुभव नहीं है। मैं बस पूछ रहा हूं कि क्या गलत है। इस बात को ** सही ** तरीके से चलाने के लिए मैं अपने डिज़ाइन को कैसे सुधार सकता हूं। – Arninja