NoSQL के लिए मामलों का उपयोग करें [बंद]


144

NoSQL हाल ही में हमारे उद्योग में बहुत अधिक ध्यान दे रहा है। मैं वास्तव में दिलचस्पी रखता हूं कि संबंधपरक डेटाबेस संग्रहण पर इसके उपयोग के लिए सबसे अच्छे उपयोग के मामलों में लोगों के विचार क्या हैं। किसी डेवलपर को यह सोचकर ट्रिगर करना चाहिए कि विशेष डेटासेट NoSQL समाधान के लिए अधिक अनुकूल हैं। मुझे विशेष रूप से MongoDB और CouchDB में दिलचस्पी है क्योंकि वे PHP के विकास के संबंध में सबसे अधिक कवरेज प्राप्त करते हैं और यह मेरा ध्यान केंद्रित है।


6
Cassandra और MongoDB पूरी तरह से अलग उत्पाद हैं - पूरी तरह से अलग श्रेणियां । इस प्रश्न का उत्तर देना आसान होगा यदि यह किसी विशिष्ट प्रकार के डेटाबेस (OODB, DODB, DKVS, इत्यादि) के लिए उपयोग के मामलों के बारे में पूछ रहा था । "NoSQL" "एसक्यूएल नहीं है" के लिए सिर्फ एक छत्र शब्द है - यह हो सकता है बस कुछ ऐसा ही होना चाहिए जैसे कि बर्कलेबीडी या फ्लैट फ़ाइलों का एक गुच्छा एक नेटवर्क शेयर पर बैठा है।
'19:

@Aaronaught मैं मतभेद की सराहना करते हैं, मैं लगता है कि मैं के साथ NoSQL एक छाता शब्द का उपयोग करने का शायद दोषी हूँ
robjmills

जवाबों:


86

बस अपने आप से वादा करें कि आप कभी भी NoSQL डेटाबेस जैसे कि MongoDB या CouchDB के लिए एक रिलेशनल डेटा मॉडल को मैप करने की कोशिश नहीं करेंगे ... यह उभरती तकनीक का मूल्यांकन करते समय सबसे आम गलती डेवलपर्स करते हैं।

वह दृष्टिकोण एक कार लेने के लिए अनुरूप है और अपनी गाड़ी को घोड़े की तरह सड़क से नीचे खींचने के लिए इसका उपयोग करने की कोशिश कर रहा है।

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

एक जूमला संस्थापक के रूप में मैं पक्षपाती हूं :-) लेकिन सीएमएस अंतरिक्ष से आ रहा है, जैसे मोंगोबीडी एक चांदी की गोली है जो सामग्री नक्शे के रूप में बहुत स्वाभाविक रूप से दस्तावेज़ प्रणालियों के लिए है।

MongoDB के लिए एक और महान मामला वास्तविक समय के विश्लेषिकी है, क्योंकि MongoDB में विशेष रूप से संगामिति के बारे में बहुत मजबूत प्रदर्शन और पैमाने हैं। MongoDB.org वेबसाइट पर ऐसे केस स्टडी हैं जो उन विशेषताओं को प्रदर्शित करते हैं।

मैं इस धारणा से सहमत हूं कि प्रत्येक डेटाबेस का अपना उद्देश्य और मामलों का उपयोग करना है; तदनुसार मूल्यांकन के लिए प्रत्येक डेटाबेस का उद्देश्य लें।


1
वास्तव में अच्छी तरह से कहा spacemonkey, मैं sawgee के रूप में एक ही स्थिति में हूँ, स्पष्ट रूप से हम एक नए तरीके से सोचने के लिए कर रहे हैं और खुद से पूछना चाहिए कि मैं अपने दस्तावेज़ डेटा को संरचना संरचना में कैसे करूं, अपने आप को RDBMS सोचने के तरीके से हटा दें जब हम करते हैं यह विश्लेषण
on_

49

MongoDB के लिए वैसे भी कुछ महान उपयोग के मामले - MongoDB साइट पर उल्लिखित हैं। दिए गए उदाहरण वास्तविक समय विश्लेषिकी, लॉगिंग और पूर्ण पाठ खोज हैं। ये लेख सभी पढ़ने लायक हैं । http://www.mongodb.com/use-cases

वहाँ भी एक महान लिखना है जिस पर NoSQL डेटाबेस परियोजना के किस प्रकार के लिए सबसे उपयुक्त है: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis


15

मैं इस लेख को रिक डेटाटैल द्वारा विविध डेटा स्टोरों (उर्फ NoSQL), उनके मतभेदों और उनके उपयोग के कुछ मामलों के बारे में सुझाव दूंगा: http://www.cattell.net/datastores/index.html


8

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


1
मैं बिल्कुल नहीं कहूंगा कि यह तुच्छ है , लेकिन यह अन्यथा दस्तावेज़-उन्मुख डेटाबेस के बारे में एक अच्छा बिंदु है। रिवर्स वास्तव में कुछ अन्य NoSQL उत्पादों के लिए सच है - DKVSes SQL / संबंधपरक DB की तुलना में मैप करना अधिक कठिन होता है।
Aaronaught

8

मैं अभी कुछ समय से NoSQL DB का उपयोग कर रहा हूं, और इस विषय में मेरा योगदान है:

NoSQL डेटाबेस के लिए एक महान उपयोग का मामला सांख्यिकी और / या रिपोर्ट जनरेशन के लिए एक एप्लिकेशन है , स्पष्ट रूप से जब डेटा किसी तीसरे पक्ष के स्रोत से प्रदान किया जाता है।

इस तरह की स्थिति में एक NoSQL डेटाबेस एक बढ़िया विकल्प हो सकता है

आइए विचार करें, उदाहरण के लिए, MongoDB :

एक बार जब आप JSON में अपना डेटा रखते हैं, (यह एक तीसरी पार्टी एपीआई से आ सकता है, या MongoDB में एक sql-application से निर्यात किया जा सकता है) डेटाबेस में JSON डेटा को आयात करने और अपडेट करने के लिए बहुत सख्त है ; उदाहरण के लिए कमांड-लाइन उपयोगिता का उपयोग करनाmongoimport

इस बिंदु पर फ़िल्टरिंग और समूहीकरण के साथ गतिशील प्रश्नों का निर्माण करना बहुत सरल है , जो इस तरह के अनुप्रयोग के साथ अच्छी तरह से फिट है।

उदाहरण के लिए, एकत्रीकरण फ्रेमवर्क का उपयोग करना :

$pipeline = [];

//filter by date
$pipeline[] = [ '$match' => [ 'created_at' => [ '$gte' => $starDate, '$lte' => $endDate ]  ]  ];

//if we want to filter by a specific field, we add the filter to the pipeline array
if( $filters->isFilterByField() )
    $pipeline[] = [ '$match' => [ 'field' => $fieldValue ] ];    

//group the results by date and get the count
$pipeline[] = [ '$group' => [ '_id' => '$created_at', 'num_elements' => [ '$sum' => 1 ] ] ];

return $collection->aggretate( $pipeline );

मैं उस सहजता को इंगित करना चाहता हूं जिसके साथ हम php डेटा संरचनाओं का उपयोग करके फ़िल्टर जोड़ सकते हैं / हटा सकते हैं और हमारे प्रश्नों का निर्माण करने के लिए थकाऊ स्ट्रिंग संघनन से बच सकते हैं। इस दृष्टिकोण के साथ फिल्टर जोड़ना / हटाना डाइनैमिक रूप से एक सरणी से तत्वों को जोड़ना / निकालना उतना ही आसान है

एक और महान लाभ इस तथ्य से आता है कि इस तरह का समाधान एक संबंधपरक डेटाबेस का उपयोग करने की तुलना में तेजी से होने की संभावना है , जहां हमें सभी डेटा प्राप्त करने के लिए विभिन्न तालिकाओं के साथ जुड़ना पड़ता है।

इसके अलावा, यह उपयोग मामला इष्टतम है क्योंकि NoSQL डेटाबेस की सभी प्रमुख सीमाओं से बचा जाता है:

  • लेन-देन में कमी: आवेदन लिखना नहीं करता है, लेकिन केवल पढ़ता है, इसलिए हमें लेनदेन की आवश्यकता नहीं है

  • तालिकाओं के बीच जुड़ने की कमी: हमें जुड़ने की जरूरत नहीं है, क्योंकि हम संग्रह में अपने असामान्य डेटा को संग्रहीत करने के लिए अतिरेक का उपयोग कर सकते हैं । जैसा कि हम केवल डेटा पढ़ते हैं, हमें अपडेट के बीच डिनरलाइज्ड डेटा को सिंक्रनाइज़ करने के बारे में चिंतित होने की आवश्यकता नहीं है।

इस तरह हम अतिरेक के साथ डेटा को स्टोर करने पर ध्यान केंद्रित कर सकते हैं जो हमारे प्रश्नों पर अच्छी तरह से फिट बैठता है , जो कि एकल संग्रह पर केंद्रित होगा।

मैं यह सिर्फ इसलिए लिख रहा हूं क्योंकि मैंने कुछ समय पहले ऐसा कुछ पढ़ा था, इसने मुझे शोध करने के लिए कुछ समय बचाया होगा

आशा है कि यह किसी के लिए उपयोगी होगा


3

मैं मार्टिन फाउलर की इस बात की जोरदार सिफारिश करता हूं:

https://www.youtube.com/watch?v=qI_g07C_Q5I

ABSTRACT: मार्टिन NoSQL डेटाबेस का तेजी से परिचय देता है: वे जहां से आए थे, डेटा मॉडल की प्रकृति वे उपयोग करते हैं, और जिस तरह से आपको निरंतरता के बारे में सोचना होगा। इससे वह रेखांकित करता है कि आपको किस प्रकार की परिस्थितियों का उपयोग करके उन पर विचार करना चाहिए, क्यों वे संबंधपरक डेटाबेस को अप्रचलित नहीं करेंगे, और पॉलीग्लॉट दृढ़ता का महत्वपूर्ण परिणाम है।

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


समझ में आया, इसे भविष्य के लिए ध्यान में रखेगा।
user3631881

3

सबसे पहले आपको CAP (कंसिस्टेंसी, उपलब्धता और विभाजन, जहां आपको दो तीन को चुनना होगा) थ्योरी और हमारे बिजनेस यूज केस को समझना होगा। MongoDB संगति और विभाजन और काउच डीबी को संतुष्ट करता है उपलब्धता और विभाजन।

NoSQL के बारे में youtube में Edureka वीडियो कुछ सबसे अच्छे वीडियो ट्यूटोरियल हैं।

https://www.youtube.com/watch?v=gJFG04Sy6NY

https://www.youtube.com/watch?v=KSq6tMMXZ8s

https://www.youtube.com/watch?v=3z1KFA2qcSo

अच्छी प्रस्तुतियाँ स्लाइडशेयर.नेट में उपलब्ध हैं

http://www.slideshare.net/quipo/nosql-databases-why-what-and-when?qid=3bb9f7f6-a53d-41b1-8403-cd6f181d0ca7&v=qf1&b=&from_search=1

http://www.slideshare.net/EdurekaIN/no-sql-dat डेटाबेस-35591065?qid = f1b9c095-6d70-4d0a-91da-1df664c4f383&v = qf1&b =&from_search=3 (youtube में यह प्रस्तुति वीडियो ट्यूटोरियल का समर्थन करती है)


1

कुछ उपयोग के मामलों के लिए, विशेष रूप से विश्लेषणात्मक प्रश्नों के लिए, आप पोस्टग्रेज के इस आवरण से MongoDB पर SQL क्वेरी चला सकते हैं ।


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.