हाल ही में NoSQL ने काफी लोकप्रियता हासिल की है।
पारंपरिक RDBMS पर NoSQL के क्या फायदे हैं ?
हाल ही में NoSQL ने काफी लोकप्रियता हासिल की है।
पारंपरिक RDBMS पर NoSQL के क्या फायदे हैं ?
जवाबों:
सभी डेटा संबंधपरक नहीं हैं। उन स्थितियों के लिए, NoSQL सहायक हो सकता है।
उस के साथ, NoSQL "न केवल SQL" के लिए खड़ा है। यह SQL खटखटाने या इसे दबाने का इरादा नहीं है।
SQL के कई बहुत बड़े फायदे हैं:
वे दूर नहीं गए हैं।
यह / या तर्क के रूप में इस बारे में सोचने की गलती है। NoSQL एक विकल्प है जिसे लोगों को विचार करने की आवश्यकता है कि यह कब फिट होता है।
दस्तावेज़ CouchDB जैसे गैर-संबंधपरक डेटाबेस में संग्रहीत किए जा सकते हैं।
हो सकता है कि पढ़ने के लिए इस इच्छा मदद करते हैं।
SELECT blob FROM images WHERE blob CONTAINS('red car')
। इसलिए जब आप डेटाबेस में डेटा को स्टोर कर सकते हैं, तो आप मेटाडेटा को संलग्न किए बिना इसे नहीं खोज सकते। RDBMS सिस्टम में पूर्ण-पाठ-खोज मॉड्यूल कुछ अर्ध-संरचनात्मक अंतराल को पुल करता है।
इतिहास ऐसा लगता है:
Google को अपने उल्टे खोज इंडेक्स के लिए स्टोरेज लेयर की आवश्यकता होती है। उनका मानना है कि एक पारंपरिक RDBMS इसे काटने नहीं जा रहा है। इसलिए वे अपने GFS फाइल सिस्टम के शीर्ष पर एक NoSQL डेटा स्टोर, BigTable को लागू करते हैं। प्रमुख हिस्सा यह है कि हजारों सस्ते कमोडिटी हार्डवेयर मशीनें गति और अतिरेक प्रदान करती हैं।
बाकी सभी को पता चलता है कि Google ने अभी क्या किया।
ब्रूवर्स कैप प्रमेय सिद्ध है। उपयोग के सभी RDBMS सिस्टम CA सिस्टम हैं। लोग सीपी और एपी सिस्टम के साथ भी खेलना शुरू करते हैं। के / वी स्टोर काफी सरल हैं, इसलिए वे अनुसंधान के लिए प्राथमिक वाहन हैं।
सॉफ्टवेयर-ए-इन-सर्विस सिस्टम सामान्य रूप से एसक्यूएल जैसा स्टोर प्रदान नहीं करता है। इसलिए, लोगों को NoSQL प्रकार की दुकानों में अधिक रुचि है।
मुझे लगता है कि इस इतिहास से बहुत कुछ लेना-देना हो सकता है। स्केलिंग Google ने Google पर कुछ नए विचार लिए और बाकी सभी इस प्रकार हैं क्योंकि यह एकमात्र समाधान है जो वे स्केलिंग समस्या को जानते हैं। इसलिए, आप Google के वितरित डेटाबेस विचार के आसपास सब कुछ फिर से तैयार करने के लिए तैयार हैं क्योंकि यह एक निश्चित आकार से परे स्केल करने का एकमात्र तरीका है।
सी - संगति
ए - उपलब्धता
पी - विभाजन सहिष्णुता
के / वी - कुंजी / मूल्य
NoSQL, RDBMS की तुलना में निम्न कारणों / NoSQL की उचितताओं के कारण बेहतर है
संपादित करें:
"क्यों RDBMS स्केल नहीं कर सकते हैं" का जवाब देने के लिए, कृपया RDBMS ओवरहेड्स pdf पर नजर डालें, जो स्टावरोस हारिजोपोलस, डैनियल जे। अबादी, सैमुअल मैडेन और माइकल स्टोनब्रोकर द्वारा लिखित है।
आरडीबीएमएस की टेराबाइट्स और पेटा बाइट्स के विशाल डेटा वॉल्यूम को संभालने में चुनौतियां हैं । यहां तक कि अगर आपके पास स्वतंत्र / सस्ती डिस्क (RAID) और डेटा श्रेडिंग के निरर्थक ऐरे हैं, तो यह डेटा की बड़ी मात्रा के लिए अच्छी तरह से पैमाने पर नहीं है। आपको बहुत महंगा हार्डवेयर चाहिए।
लॉगिंग : लॉग रिकॉर्ड्स को असेंबल करना और डेटाबेस संरचनाओं में सभी परिवर्तनों को ट्रैक करना प्रदर्शन को धीमा कर देता है। यदि रिकवरीबिलिटी की आवश्यकता नहीं है या अन्य साधनों (जैसे नेटवर्क पर अन्य साइट) के माध्यम से पुनर्प्राप्ति प्रदान की जाती है, तो लॉगिंग आवश्यक नहीं हो सकती है।
लॉकिंग : पारंपरिक दो-चरण लॉकिंग एक विशाल ओवरहेड बनाता है क्योंकि डेटाबेस संरचनाओं तक सभी पहुंच एक अलग इकाई, लॉक मैनेजर द्वारा नियंत्रित होती है।
लैचिंग : एक बहु-थ्रेडेड डेटाबेस में, कई डेटा संरचनाओं को एक्सेस करने से पहले उन्हें लैच करना पड़ता है। इस सुविधा को हटाने और एकल-थ्रेडेड दृष्टिकोण पर जाने से ध्यान देने योग्य प्रदर्शन प्रभाव पड़ता है।
बफर प्रबंधन : एक मुख्य मेमोरी डेटाबेस सिस्टम को बफ़र पूल के माध्यम से पृष्ठों तक पहुंचने की आवश्यकता नहीं होती है, जो प्रत्येक रिकॉर्ड एक्सेस पर अप्रत्यक्ष स्तर को समाप्त करता है।
इसका मतलब यह नहीं है कि हमें SQL पर NoSQL का उपयोग करना होगा।
फिर भी, RDBMS के निम्नलिखित कारणों / गुणों के लिए RDBMS NoSQL से बेहतर है
हमें व्यापार के मामले और आवश्यकताओं के आधार पर RDBMS (SQL) और NoSQL (केवल SQL) का उपयोग नहीं करना है
संबंधपरक डेटाबेस मॉडल पर NOSQL का कोई विशेष लाभ नहीं है। एनओएसक्यूएल वर्तमान एसक्यूएल डीबीएमएस की कुछ सीमाओं को संबोधित करता है लेकिन यह पिछले डेटा मॉडल की तुलना में किसी भी मौलिक नई क्षमताओं का मतलब नहीं है।
NOSQL का मतलब केवल एसक्यूएल (या "न केवल एसक्यूएल") है, लेकिन इसका मतलब यह नहीं है कि कोई संबंधपरक नहीं है । सिद्धांत रूप में एक रिलेशनल डेटाबेस एक बहुत अच्छा NOSQL समाधान करेगा - यह सिर्फ इतना है कि NOSQL उत्पादों के वर्तमान सेट में से कोई भी रिलेशनल मॉडल का उपयोग नहीं करता है।
RDBMS संबंध पर अधिक ध्यान केंद्रित करते हैं और NoSQL भंडारण पर अधिक ध्यान केंद्रित करते हैं।
जब आपका RDBMS बाधाओं पर पहुंचता है, तो आप NoSQL का उपयोग करने पर विचार कर सकते हैं । NoSQL RDBMS को अधिक लचीला बनाता है ।
बस ऊपर दी गई सभी जानकारी को जोड़ना
NoSql लाभ:
1) अगर आप स्कीमा-लेस और ऑब्जेक्ट ओरिएंटेड आर्किटेक्चर के समर्थन के कारण तेजी से उत्पादन करना चाहते हैं तो NoSQL अच्छा है।
2) NoSql db के अंत में सुसंगत है जिसका अर्थ है कि सरल भाषा में वे RDBMS के मामले में डेटा (दस्तावेजों) पर कोई ताला नहीं देंगे और इसका क्या मतलब है कि डेटा का नवीनतम स्नैपशॉट हमेशा उपलब्ध है और इस प्रकार आपके आवेदन की विलंबता में वृद्धि होती है ।
3) यह डेटा (दस्तावेजों) के स्नैपशॉट को बनाए रखने और बनाने के लिए MVCC (मल्टी व्यू कॉन्सिब्लिटी कंट्रोल) रणनीति का उपयोग करता है।
4) यदि आप अनुक्रमित डेटा रखना चाहते हैं, तो आप वह दृश्य बना सकते हैं जो आपके द्वारा प्रदत्त दृश्य परिभाषा द्वारा डेटा को स्वचालित रूप से अनुक्रमित करेगा।
NoSql नुकसान:
1) यह निश्चित रूप से बड़े भारी लेनदेन अनुप्रयोगों के लिए उपयुक्त नहीं है क्योंकि यह अंततः सुसंगत है और ACID गुणों का समर्थन नहीं करता है।
2) इसके अलावा यह आपके डेटा (दस्तावेजों) के कई स्नैपशॉट (संशोधन) बनाता है क्योंकि यह कंजर्वेशन कंट्रोल के लिए MVCC कार्यप्रणाली का उपयोग करता है, जिसके परिणामस्वरूप अंतरिक्ष पहले की तुलना में तेजी से भस्म हो जाता है जिससे संघनन अधिक होता है और इसलिए अधिक बार रीइंडेक्सिंग होता है और यह आपकी गति को धीमा कर देगा। आपके अनुप्रयोग में डेटा और लेनदेन के रूप में अनुप्रयोग प्रतिक्रिया बढ़ती है। काउंटर करने के लिए आप क्षैतिज रूप से नोड्स को स्केल कर सकते हैं, लेकिन फिर इसे एसक्यूएल डेटाबेस की तुलना में अधिक लागत होगी।
से mongodb.com :
NoSQL डेटाबेस चार मुख्य क्षेत्रों में पुराने, संबंधपरक प्रौद्योगिकी से भिन्न होते हैं:
डेटा मॉडल : एक NoSQL डेटाबेस आपको स्कीमा को परिभाषित करने के बिना पहले एक एप्लिकेशन बनाने देता है रिलेशनल डेटाबेस के विपरीत जो आपको सिस्टम में कोई भी डेटा जोड़ने से पहले आपके स्कीमा को परिभाषित करता है। कोई पूर्वनिर्धारित स्कीमा NoSQL डेटाबेस को आपके डेटा और आवश्यकताओं को बदलने के रूप में अद्यतन करने के लिए बहुत आसान नहीं बनाता है।
डेटा संरचना : संबंधपरक डेटाबेस एक ऐसे युग में बनाए गए थे जहाँ डेटा काफी संरचित और स्पष्ट रूप से उनके संबंधों द्वारा परिभाषित किया गया था। NoSQL डेटाबेस को असंरचित डेटा (जैसे, ग्रंथों, सोशल मीडिया पोस्ट, वीडियो, ईमेल) को संभालने के लिए डिज़ाइन किया गया है जो आज मौजूद डेटा का अधिकांश भाग बनाता है।
स्केलिंग : एक रिलेशनल डेटाबेस की तुलना में NoSQL डेटाबेस को स्केल करना बहुत सस्ता है क्योंकि आप सस्ते, कमोडिटी सर्वर पर स्केलिंग करके क्षमता जोड़ सकते हैं। दूसरी ओर, रिलेशनल डेटाबेस को आपके पूरे डेटाबेस को होस्ट करने के लिए एकल सर्वर की आवश्यकता होती है। पैमाने पर, आपको एक बड़ा, अधिक महंगा सर्वर खरीदने की आवश्यकता है।
विकास मॉडल : NoSQL डेटाबेस खुले स्रोत हैं, जबकि रिलेशनल डेटाबेस आमतौर पर उनके सॉफ़्टवेयर के उपयोग में बेकिंग लाइसेंस फीस के साथ स्रोत बंद होते हैं। NoSQL के साथ, आप सॉफ्टवेयर शुल्क अपफ्रंट में किसी भी भारी निवेश के बिना एक परियोजना पर शुरू कर सकते हैं।