NoSQL - MongoDB बनाम CouchDB [बंद]


154

जब यह NoSQL आंदोलन की बात आती है, तो मैं एक पूर्ण noob हूं। मैंने MongoDB और CouchDB के बारे में बहुत सुना है। मुझे पता है कि दोनों के बीच मतभेद हैं। आप NoSQL दुनिया में पहले कदम के रूप में सीखने की सलाह देते हैं?


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

जवाबों:


148

निम्नलिखित लिंक देखें

अद्यतन : मुझे NoSQL डेटाबेस की काफी तुलना मिली ।

MongoDB (3.2)

  • इसमें लिखा गया: C ++
  • मुख्य बिंदु: JSON दस्तावेज़ स्टोर
  • लाइसेंस: AGPL (ड्राइवर: Apache)
  • प्रोटोकॉल: कस्टम, बाइनरी (BSON)
  • मास्टर / दास प्रतिकृति (प्रतिकृति सेट के साथ ऑटो विफलता)
  • अंतर्निहित अंतर्निहित
  • क्वेरी जावास्क्रिप्ट अभिव्यक्ति हैं
  • मनमाना जावास्क्रिप्ट कार्य सर्वर-साइड चलाएँ
  • भू-स्थानिक अनुक्रमण और क्वेरी है
  • विभिन्न प्रदर्शन विशेषताओं के साथ कई भंडारण इंजन
  • सुविधाओं पर प्रदर्शन
  • दस्तावेज़ सत्यापन
  • journaling
  • शक्तिशाली एकत्रीकरण ढांचा
  • 32 बिट सिस्टम पर, ~ 2.5Gb तक सीमित है
  • पाठ खोज एकीकृत
  • बड़ा डेटा + मेटाडेटा स्टोर करने के लिए ग्रिड्स (वास्तव में एफएस नहीं)
  • डाटा सेंटर की जानकारी

सबसे अच्छा उपयोग किया जाता है : यदि आपको गतिशील प्रश्नों की आवश्यकता है। यदि आप अनुक्रमित को परिभाषित करना पसंद करते हैं, तो कार्यों को मैप / कम नहीं करें। यदि आपको बड़े DB पर अच्छे प्रदर्शन की आवश्यकता है। यदि आप CouchDB चाहते थे, लेकिन आपका डेटा बहुत अधिक बदल जाता है, डिस्क को भरना।

उदाहरण के लिए : ज्यादातर चीजें जो आप MySQL या PostgreSQL के साथ करते हैं, लेकिन पूर्वनिर्धारित कॉलम होने से आप वास्तव में वापस आ जाते हैं।

काउचडीबी (1.2)

  • में लिखा: एर्लांग
  • मुख्य बिंदु: DB स्थिरता, उपयोग में आसानी
  • लाइसेंस: अपाचे
  • प्रोटोकॉल: HTTP / REST
  • द्वि-दिशात्मक () प्रतिकृति;
  • निरंतर या तदर्थ,
  • संघर्ष का पता लगाने के साथ,
  • इस प्रकार, मास्टर-मास्टर प्रतिकृति। (!)
  • MVCC - लिखने के संचालन को पढ़ता नहीं है
  • दस्तावेजों के पिछले संस्करण उपलब्ध हैं
  • क्रैश-ओनली (विश्वसनीय) डिज़ाइन
  • समय-समय पर कॉम्पैक्ट करने की आवश्यकता होती है
  • दृश्य: एम्बेडेड नक्शा / कम
  • स्वरूपण दृश्य: सूचियाँ और शो
  • सर्वर-साइड दस्तावेज़ सत्यापन संभव है
  • प्रमाणीकरण संभव है
  • '_Changes' (!) के माध्यम से रीयल-टाइम अपडेट
  • अटैचमेंट हैंडलिंग

सबसे अच्छा उपयोग किया जाता है : संचय के लिए, कभी-कभार डेटा बदलने पर, जिस पर पूर्व-निर्धारित क्वेरी चलनी होती हैं। वे स्थान जहाँ संस्करण बनाना महत्वपूर्ण है।

उदाहरण के लिए : सीआरएम, सीएमएस सिस्टम। मास्टर-मास्टर प्रतिकृति एक विशेष रूप से दिलचस्प विशेषता है, जिससे आसान बहु-साइट तैनाती की अनुमति मिलती है।


1
MongoDB के सर्वर लाइसेंस AGPL से संबंधित किसी के लिए भी, मोंगोडब की लाइसेंसिंग नीति पर एक नज़र डालने से कुछ राहत मिल सकती है।
पैट्रिक

@amra तो, आपका मतलब है कि अगर मैं डेटा सहेजता हूं और इसे केवल पढ़ता हूं, तो couchdb का उपयोग करना सबसे अच्छा विकल्प है?
verystrongjoe

@verystrongjoe यह डेटा और प्रश्नों की जटिलता पर निर्भर करता है। आप आमतौर पर यह नहीं कह सकते कि कौन सा सबसे अच्छा है।
आम्र

@ यामरा ओके। लेकिन .. अगर यह डेटा जमा करेगा और डेटा का चयन करेगा और मुझे मोंगो और सोफे के बीच चयन करना होगा, तो कौन सा बेहतर है?
verystrongjoe

CouchApps ~ 2012 के बाद से "अब अनुशंसित नहीं हैं": docs.couchdb.com/en/latest/ddocs
टिम सिल्वेस्टर

123

यदि आप MySQL दुनिया से आ रहे हैं, तो MongoDB अपने क्वेरी-जैसे भाषा समर्थन के कारण आपके लिए "अधिक" स्वाभाविक महसूस करने वाला है।

मुझे लगता है कि यह वही है जो बहुत सारे लोगों के लिए इतना अनुकूल बनाता है।

CouchDB शानदार है अगर आप मल्टी-नोड सेटअप के साथ वास्तव में महान मास्टर-मास्टर प्रतिकृति समर्थन का उपयोग करना चाहते हैं, संभवतः विभिन्न डेटा केंद्रों में या ऐसा कुछ।

MongoDB की प्रतिकृति (प्रतिकृति सेट) एक मास्टर-दास-दास-दास- * सेटअप है, आप केवल एक प्रतिकृति सेट में मास्टर को लिख सकते हैं और उनमें से किसी से पढ़ सकते हैं।

मानक साइट कॉन्फ़िगरेशन के लिए, यह ठीक है। यह वास्तव में अच्छी तरह से MySQL उपयोग के लिए नक्शे।

लेकिन अगर आप CDN जैसी एक वैश्विक सेवा बनाने की कोशिश कर रहे हैं, जिसमें उन सभी को पढ़ने / लिखने के बावजूद सभी वैश्विक नोडों को समकालिक रखने की आवश्यकता है, तो CouchDB में प्रतिकृति जैसा कुछ आपके लिए बहुत बड़ा वरदान साबित होने वाला है।

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

यहाँ एक त्वरित अवलोकन है इसलिए यह कुछ समझ में आता है:

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

तो ये दोनों स्रोत JSON दस्तावेज़ों का उपयोग करते हैं, लेकिन CouchDB यह अधिक "प्रत्येक सर्वर एक मास्टर है और दुनिया के साथ सिंक कर सकता है" दृष्टिकोण जो अगर आपको इसकी आवश्यकता है, तो शानदार है, जबकि MongoDB वास्तव में NoSQL दुनिया का MySQL है।

इसलिए यदि वह चीज आपको पसंद है जो आपको चाहिए / चाहती है, तो उसके लिए जाएं।

मोंगो के बाइनरी प्रोटोकॉल बनाम कॉस्टब्यू के रैस्टफुल इंटरफ़ेस जैसे छोटे अंतर सभी छोटे विवरण हैं।

आप कच्चे गति और डेटा सुरक्षा के साथ नरक करने के लिए चाहते हैं, तो आप कर सकते हैं मोंगो तेजी से CouchDB से चलाने के रूप में आप स्मृति से बाहर काम करने के लिए यह बता सकते हैं और विरल अंतराल के अलावा डिस्क के लिए चीजों को प्रतिबद्ध नहीं हैं।

आप काउच के साथ भी ऐसा कर सकते हैं, लेकिन यह HTTP-आधारित संचार प्रोटोकॉल है, जो "इस सब कुछ पर गति" में मोंगो के साथ कच्चे बाइनरी संचार की तुलना में 2-4x धीमा होने वाला है! परिदृश्य।

ध्यान रखें कि यदि सर्वर क्रैश या डिस्क विफलता आपके डीबी को विस्मृति में डाल देती है तो कच्चे पागल पागल गति बेकार है, ताकि डेटा बिंदु उतना अद्भुत न हो जितना कि यह प्रतीत हो सकता है (जब तक कि आप वॉल पर रीयल-टाइम ट्रेडिंग सिस्टम नहीं कर रहे हैं स्ट्रीट, जिस स्थिति में रेडिस को देखो)।

आशा है कि सभी मदद करता है!


"MongoDB वास्तव में NoSQL दुनिया का MySQL है" - मुझे नहीं पता कि क्या चीजें बदल गई हैं लेकिन 2014 का यह लेख असहमत है: sarahmei.com/blog/2013/11/11/why-you-should-never-use MongoDB
ओनुर Yıldırım

जबकि, मुझे लगता है कि टिप्पणी अभी भी काम करती है, आप सही हैं, पिछले आधे दशक में MUCH बदल गया है और मेरी टिप्पणी को आसानी से खारिज कर दिया जाना चाहिए।
रियाद कल्ला

5

1

बाजार में अब पहले से कई अधिक NoSQL डेटाबेस हैं। मेरा सुझाव है कि गार्टनर मैजिक क्वाड्रेंट पर भी नज़र डालें, यदि आप एक ऐसे डेटाबेस की तलाश कर रहे हैं जो समर्थन, विस्तार, प्रबंधन और लागत के आधार पर उद्यम अनुप्रयोगों के लिए भी बढ़िया होगा।

http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb

मैं किसी को भी Couchbase का सुझाव देना चाहूंगा, जिसने अभी तक इसकी कोशिश नहीं की है, लेकिन रिपोर्ट में दिखाए गए संस्करण पर आधारित नहीं है (2.5.1) क्योंकि यह लगभग 2 संशोधन है जहां CB सर्वर आज है, 2H15 में 4.0 की रिलीज के पास ।

http://www.couchbase.com/coming-in-couchbase-server-4-0

एक विक्रेता / उत्पाद के रूप में काउचबेस के बारे में अन्य भाग यह है कि यह डीबी का एक बहु-उपयोग प्रकार है। यह एक शुद्ध K / V स्टोर के रूप में कार्य कर सकता है, डॉक्यूमेंट ओरिएंटेड डाटाबेस विथ मल्टी-डायमेंशनल स्केलिंग, मेम्केच्ड, कैशे-साइड विथ कंसिस्टेंस, और ऑटोमैटिक जॉइन के साथ ANSI 92 कम्प्लायंट SQL को सपोर्ट करता है, एक बटन के पुश के साथ DR क्लस्टर की प्रतिकृति, और यहां तक ​​कि पारिस्थितिकी तंत्र के लिए एक मोबाइल घटक अंतर्निहित है।

यदि और कुछ नहीं है, तो यह नवीनतम मानदंड की जाँच करने के लायक है:

http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.html http://info.couchbase.com/NoSQL-Technical-Comparison -Report.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.