NoSQL ट्यूटोरियल: NoSQL डेटाबेस क्या है, इसके प्रकार और उदाहरण
NoSQL क्या है?
NoSQL डेटाबेस एक गैर-संबंधपरक डेटा प्रबंधन प्रणाली है, जिसके लिए किसी निश्चित स्कीमा की आवश्यकता नहीं होती है। यह जॉइन से बचता है, और स्केल करना आसान है। NoSQL डेटाबेस का उपयोग करने का मुख्य उद्देश्य विशाल डेटा संग्रहण आवश्यकताओं के साथ वितरित डेटा स्टोर के लिए है। NoSQL का उपयोग बड़े डेटा और रीयल-टाइम वेब ऐप्स के लिए किया जाता है। उदाहरण के लिए, ट्विटर, फेसबुक और गूगल जैसी कंपनियां हर दिन टेराबाइट्स उपयोगकर्ता डेटा एकत्र करती हैं।
NoSQL डेटाबेस इसका मतलब है “नॉट ओनली एसक्यूएल” या “नॉट एसक्यूएल।” हालाँकि इसके लिए बेहतर शब्द “नोआरईएल” होगा, लेकिन नोएसक्यूएल ने लोकप्रियता हासिल कर ली। कार्ल स्ट्रॉज़ ने 1998 में नोएसक्यूएल अवधारणा पेश की।
पारंपरिक RDBMS आगे की जानकारी के लिए डेटा को संग्रहीत करने और पुनर्प्राप्त करने के लिए SQL सिंटैक्स का उपयोग करता है। इसके बजाय, एक NoSQL डेटाबेस सिस्टम डेटाबेस तकनीकों की एक विस्तृत श्रृंखला को शामिल करता है जो संरचित, अर्ध-संरचित, असंरचित और बहुरूपी डेटा को संग्रहीत कर सकता है। आइए इस NoSQL डेटाबेस ट्यूटोरियल में एक आरेख के साथ NoSQL के बारे में समझें:
नोएसक्यूएल क्यों?
NoSQL डेटाबेस की अवधारणा गूगल, फेसबुक, माइक्रोसॉफ्ट, गूगल, गूगल, गूगल जैसी इंटरनेट दिग्गजों के बीच लोकप्रिय हो गई। Amazon, आदि जो बहुत बड़ी मात्रा में डेटा से निपटते हैं। जब आप बहुत बड़ी मात्रा में डेटा के लिए RDBMS का उपयोग करते हैं तो सिस्टम प्रतिक्रिया समय धीमा हो जाता है।
इस समस्या को हल करने के लिए, हम अपने मौजूदा हार्डवेयर को अपग्रेड करके अपने सिस्टम को “स्केल अप” कर सकते हैं। यह प्रक्रिया महंगी है।
इस समस्या का विकल्प यह है कि जब भी लोड बढ़े तो डेटाबेस लोड को कई होस्ट पर वितरित किया जाए। इस विधि को "स्केलिंग आउट" के रूप में जाना जाता है।
NoSQL डेटाबेस गैर-संबंधपरक है, इसलिए यह संबंधपरक डेटाबेस की तुलना में बेहतर है क्योंकि इन्हें वेब अनुप्रयोगों को ध्यान में रखकर डिज़ाइन किया गया है।
NoSQL डेटाबेस का संक्षिप्त इतिहास
- 1998- कार्लो स्ट्रोज़ी ने अपने हल्के, ओपन-सोर्स रिलेशनल डेटाबेस के लिए NoSQL शब्द का उपयोग किया
- 2000- ग्राफ डेटाबेस Neo4j लॉन्च किया गया
- 2004- गूगल बिगटेबल लॉन्च किया गया
- 2005 - CouchDB लॉन्च किया गया है
- 2007- शोध पत्र Amazon डायनमो जारी किया गया है
- 2008- फेसबुक ने ओपन सोर्स सॉफ्टवेयर लॉन्च किया Cassandra परियोजना
- 2009- NoSQL शब्द को पुनः प्रस्तुत किया गया
NoSQL की विशेषताएं
गैर संबंधपरक
- NoSQL डेटाबेस कभी भी इसका पालन नहीं करते हैं संबंधपरक मॉडल
- कभी भी फ्लैट फिक्स्ड-कॉलम रिकॉर्ड वाली तालिकाएं प्रदान न करें
- स्व-निहित समुच्चयों या BLOBs के साथ कार्य करें
- ऑब्जेक्ट-रिलेशनल मैपिंग और डेटा सामान्यीकरण की आवश्यकता नहीं है
- क्वेरी भाषा, क्वेरी प्लानर, रेफ़रेंशियल इंटीग्रिटी जॉइन, एसीआईडी जैसी कोई जटिल विशेषताएँ नहीं
स्कीमा से मुक्त
- NoSQL डेटाबेस या तो स्कीमा-मुक्त होते हैं या उनमें शिथिल स्कीमा होती है
- डेटा की स्कीमा की किसी भी प्रकार की परिभाषा की आवश्यकता नहीं है
- एक ही डोमेन में डेटा की विषम संरचना प्रदान करता है
सरल एपीआई
- उपलब्ध कराए गए डेटा को संग्रहीत करने और क्वेरी करने के लिए उपयोग में आसान इंटरफेस प्रदान करता है
- API निम्न-स्तरीय डेटा हेरफेर और चयन विधियों की अनुमति देते हैं
- टेक्स्ट-आधारित प्रोटोकॉल जो अधिकतर JSON के साथ HTTP REST के साथ उपयोग किए जाते हैं
- अधिकतर प्रयुक्त नो-मानक आधारित NoSQL क्वेरी भाषा
- वेब-सक्षम डेटाबेस इंटरनेट-फेसिंग सेवाओं के रूप में चल रहे हैं
वितरित
- एकाधिक NoSQL डेटाबेस को वितरित तरीके से निष्पादित किया जा सकता है
- ऑटो-स्केलिंग और फेल-ओवर क्षमताएं प्रदान करता है
- अक्सर ACID अवधारणा को स्केलेबिलिटी और थ्रूपुट के लिए त्याग दिया जा सकता है
- वितरित नोड्स के बीच अधिकांशतः कोई समकालिक प्रतिकृति नहीं होती है अतुल्यकालिक मल्टी-मास्टर प्रतिकृति, पीयर-टू-पीयर, एचडीएफएस प्रतिकृति
- केवल अंतिम स्थिरता प्रदान करना
- कुछ भी साझा नहीं किया Archiइससे समन्वय कम होता है और वितरण अधिक होता है।
NoSQL डेटाबेस के प्रकार
NoSQL डेटाबेस मुख्य रूप से चार प्रकारों में वर्गीकृत किया जाता है: कुंजी-मूल्य जोड़ी, कॉलम-उन्मुख, ग्राफ-आधारित और दस्तावेज़-उन्मुख। प्रत्येक श्रेणी की अपनी अनूठी विशेषताएँ और सीमाएँ होती हैं। उपरोक्त निर्दिष्ट डेटाबेस में से कोई भी सभी समस्याओं को हल करने के लिए बेहतर नहीं है। उपयोगकर्ताओं को अपने उत्पाद की ज़रूरतों के आधार पर डेटाबेस का चयन करना चाहिए।
NoSQL डेटाबेस के प्रकार:
- कुंजी-मूल्य जोड़ी आधारित
- स्तंभ-उन्मुख ग्राफ
- ग्राफ़ आधारित
- दस्तावेज़ उन्मुख
कुंजी मूल्य जोड़ी आधारित
डेटा को कुंजी/मूल्य युग्मों में संग्रहीत किया जाता है। इसे बहुत सारे डेटा और भारी लोड को संभालने के लिए इस तरह से डिज़ाइन किया गया है।
कुंजी-मूल्य युग्म भंडारण डेटाबेस डेटा को हैश तालिका के रूप में संग्रहीत करते हैं, जहां प्रत्येक कुंजी अद्वितीय होती है, और मान JSON, BLOB (बाइनरी लार्ज ऑब्जेक्ट्स), स्ट्रिंग आदि हो सकता है।
उदाहरण के लिए, कुंजी-मान युग्म में “वेबसाइट” जैसी कुंजी हो सकती है जो “गुरु99” जैसे मान से संबद्ध हो।
यह सबसे बुनियादी NoSQL डेटाबेस उदाहरणों में से एक है। इस तरह के NoSQL डेटाबेस का उपयोग संग्रह, शब्दकोश, एसोसिएटिव एरे आदि के रूप में किया जाता है। कुंजी मान स्टोर डेवलपर को स्कीमा-रहित डेटा संग्रहीत करने में मदद करते हैं। वे शॉपिंग कार्ट सामग्री के लिए सबसे अच्छा काम करते हैं।
Redis, Dynamo, Riak कुंजी-मूल्य स्टोर डेटाबेस के कुछ NoSQL उदाहरण हैं। वे सभी पर आधारित हैं Amazon'डायनमो पेपर.
स्तंभ के आधार पर
कॉलम-ओरिएंटेड डेटाबेस कॉलम पर काम करते हैं और Google के बिगटेबल पेपर पर आधारित होते हैं। हर कॉलम को अलग-अलग माना जाता है। सिंगल कॉलम डेटाबेस के मान लगातार संग्रहीत किए जाते हैं।
वे SUM, COUNT, जैसे एकत्रीकरण प्रश्नों पर उच्च प्रदर्शन प्रदान करते हैं AVG, MIN आदि क्योंकि डेटा एक कॉलम में आसानी से उपलब्ध है।
कॉलम-आधारित NoSQL डेटाबेस का उपयोग डेटा वेयरहाउस के प्रबंधन के लिए व्यापक रूप से किया जाता है, व्यापारिक सूचना, सीआरएम, लाइब्रेरी कार्ड कैटलॉग,
एचबेस, Cassandra, HBase, Hypertable कॉलम आधारित डेटाबेस के NoSQL क्वेरी उदाहरण हैं।
दस्तावेज़ उन्मुख
दस्तावेज़-उन्मुख NoSQL DB कुंजी मान युग्म के रूप में डेटा संग्रहीत और पुनर्प्राप्त करता है, लेकिन मान भाग को दस्तावेज़ के रूप में संग्रहीत किया जाता है। दस्तावेज़ JSON या XML प्रारूपों में संग्रहीत किया जाता है। मान DB द्वारा समझा जाता है और उससे पूछताछ की जा सकती है।
इस आरेख में आप देख सकते हैं कि आपके बाईं ओर पंक्तियाँ और स्तंभ हैं, और दाईं ओर, हमारे पास एक दस्तावेज़ डेटाबेस है जिसकी संरचना JSON के समान है। अब रिलेशनल डेटाबेस के लिए, आपको यह जानना होगा कि आपके पास कौन से कॉलम हैं और इसी तरह। हालाँकि, एक दस्तावेज़ डेटाबेस के लिए, आपके पास JSON ऑब्जेक्ट जैसा डेटा स्टोर है। आपको इसे लचीला बनाने के लिए परिभाषित करने की आवश्यकता नहीं है।
दस्तावेज़ प्रकार का उपयोग मुख्यतः CMS सिस्टम, ब्लॉगिंग प्लेटफ़ॉर्म, रीयल-टाइम एनालिटिक्स और ई-कॉमर्स अनुप्रयोगों के लिए किया जाता है। इसका उपयोग जटिल लेनदेन के लिए नहीं किया जाना चाहिए, जिसके लिए अलग-अलग समग्र संरचनाओं के विरुद्ध कई ऑपरेशन या क्वेरी की आवश्यकता होती है।
Amazon सिंपलडीबी, CouchDB, MongoDB, रियाक, लोटस नोट्स, MongoDB, लोकप्रिय दस्तावेज़ हैं डीबीएमएस सिस्टम.
ग्राफ आधारित
ग्राफ प्रकार का डेटाबेस इकाइयों के साथ-साथ उन इकाइयों के बीच संबंधों को भी संग्रहीत करता है। इकाई को नोड के रूप में संग्रहीत किया जाता है और संबंध किनारों के रूप में होता है। किनारा नोड्स के बीच संबंध देता है। प्रत्येक नोड और किनारे का एक विशिष्ट पहचानकर्ता होता है।
रिलेशनल डेटाबेस की तुलना में जहाँ टेबल्स शिथिल रूप से जुड़ी होती हैं, ग्राफ डेटाबेस प्रकृति में बहु-संबंधी होता है। ट्रैवर्सिंग रिलेशनशिप तेज़ है क्योंकि वे पहले से ही DB में कैप्चर किए गए हैं, और उन्हें गणना करने की कोई आवश्यकता नहीं है।
ग्राफ आधारित डेटाबेस का उपयोग ज्यादातर सामाजिक नेटवर्क, लॉजिस्टिक्स, स्थानिक डेटा के लिए किया जाता है।
Neo4J, अनंत ग्राफ, OrientDB, फ्लॉकडीबी कुछ लोकप्रिय ग्राफ-आधारित डेटाबेस हैं।
NoSQL के लिए क्वेरी मैकेनिज्म उपकरण
सबसे आम डेटा पुनर्प्राप्ति तंत्र GET संसाधन के साथ इसकी कुंजी/आईडी के आधार पर एक मूल्य की REST-आधारित पुनर्प्राप्ति है
दस्तावेज़ संग्रह डेटाबेस अधिक कठिन क्वेरीज़ प्रदान करता है क्योंकि वे कुंजी-मूल्य युग्म में मान को समझते हैं। उदाहरण के लिए, CouchDB MapReduce के साथ दृश्य परिभाषित करने की अनुमति देता है
CAP प्रमेय क्या है?
CAP प्रमेय को ब्रूअर प्रमेय भी कहा जाता है। यह बताता है कि वितरित डेटा स्टोर के लिए तीन में से दो से अधिक गारंटी देना असंभव है
- कंसिस्टेंसी (Consistency)
- उपलब्धता
- विभाजन सहिष्णुता
संगति:
किसी ऑपरेशन के निष्पादन के बाद भी डेटा एक जैसा बना रहना चाहिए। इसका मतलब है कि एक बार डेटा लिखे जाने के बाद, भविष्य में किसी भी रीड रिक्वेस्ट में वह डेटा शामिल होना चाहिए। उदाहरण के लिए, ऑर्डर स्टेटस अपडेट करने के बाद, सभी क्लाइंट को एक ही डेटा देखने में सक्षम होना चाहिए।
उपलब्धता:
डेटाबेस हमेशा उपलब्ध और प्रतिक्रियाशील होना चाहिए। इसमें कोई डाउनटाइम नहीं होना चाहिए।
विभाजन सहिष्णुता:
विभाजन सहनशीलता का अर्थ है कि सर्वरों के बीच संचार स्थिर न होने पर भी सिस्टम को काम करना जारी रखना चाहिए। उदाहरण के लिए, सर्वरों को कई समूहों में विभाजित किया जा सकता है जो एक दूसरे के साथ संचार नहीं कर सकते हैं। यहां, यदि डेटाबेस का हिस्सा अनुपलब्ध है, तो अन्य भाग हमेशा अप्रभावित रहते हैं।
अंततः संगति
"अंतिम संगति" शब्द का अर्थ है उच्च उपलब्धता और मापनीयता प्राप्त करने के लिए कई मशीनों पर डेटा की प्रतियाँ रखना। इस प्रकार, एक मशीन पर किसी भी डेटा आइटम में किए गए परिवर्तनों को अन्य प्रतिकृतियों में प्रसारित किया जाना चाहिए।
डेटा प्रतिकृति तात्कालिक नहीं हो सकती क्योंकि कुछ प्रतियाँ तुरंत अपडेट हो जाएँगी जबकि अन्य समय बीतने के साथ। ये प्रतियाँ परस्पर हो सकती हैं, लेकिन समय बीतने के साथ वे सुसंगत हो जाती हैं। इसलिए, इसका नाम अंतिम सुसंगति है।
आधार: Bसमान रूप से Aअनुपलब्ध, Sअक्सर राज्य, Eवेंटुअल स्थिरता
- मूलतः, उपलब्ध का अर्थ है कि CAP प्रमेय के अनुसार DB हर समय उपलब्ध है
- सॉफ्ट स्टेट का अर्थ है कि इनपुट के बिना भी सिस्टम की स्थिति बदल सकती है
- अंतिम स्थिरता का अर्थ है कि प्रणाली समय के साथ एकरूप हो जाएगी
नोएसक्यूएल के लाभ
- प्राथमिक या विश्लेषणात्मक डेटा स्रोत के रूप में इस्तेमाल किया जा सकता है
- बिग डेटा क्षमता
- विफलता का कोई एकल बिन्दु नहीं
- आसान प्रतिकृति
- अलग कैशिंग परत की कोई आवश्यकता नहीं
- यह तेज़ प्रदर्शन और क्षैतिज मापनीयता प्रदान करता है।
- संरचित, अर्ध-संरचित और असंरचित डेटा को समान प्रभाव से संभाल सकता है
- ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग जो उपयोग में आसान और लचीली है
- NoSQL डेटाबेस को समर्पित उच्च-प्रदर्शन सर्वर की आवश्यकता नहीं होती
- प्रमुख डेवलपर भाषाओं और प्लेटफ़ॉर्म का समर्थन करें
- RDBMS का उपयोग करने की तुलना में कार्यान्वयन सरल है
- यह ऑनलाइन आवेदनों के लिए प्राथमिक डेटा स्रोत के रूप में काम कर सकता है।
- बड़े डेटा को संभालता है जो डेटा वेग, विविधता, मात्रा और जटिलता का प्रबंधन करता है
- वितरित डेटाबेस और बहु-डेटा केंद्र संचालन में उत्कृष्टता
- डेटा संग्रहीत करने के लिए किसी विशिष्ट कैशिंग परत की आवश्यकता को समाप्त करता है
- एक लचीला स्कीमा डिज़ाइन प्रदान करता है जिसे बिना डाउनटाइम या सेवा व्यवधान के आसानी से बदला जा सकता है
NoSQL के नुकसान
- कोई मानकीकरण नियम नहीं
- सीमित क्वेरी क्षमताएँ
- आरडीबीएमएस डेटाबेस और उपकरण तुलनात्मक रूप से परिपक्व हैं
- यह किसी भी पारंपरिक डाटाबेस क्षमता की पेशकश नहीं करता है, जैसे एक साथ कई लेनदेन किए जाने पर स्थिरता।
- जब डेटा की मात्रा बढ़ जाती है तो अद्वितीय मान बनाए रखना कठिन हो जाता है क्योंकि कुंजियाँ कठिन हो जाती हैं
- रिलेशनल डेटा के साथ उतना अच्छा काम नहीं करता
- नये डेवलपर्स के लिए सीखना कठिन है
- ओपन सोर्स विकल्प उद्यमों के लिए इतने लोकप्रिय नहीं हैं।
सारांश
- NoSQL एक गैर-संबंधपरक DMS है, जिसके लिए किसी निश्चित स्कीमा की आवश्यकता नहीं होती, यह जॉइन से बचता है, तथा इसे स्केल करना आसान है
- NoSQL डेटाबेस की अवधारणा गूगल, फेसबुक, माइक्रोसॉफ्ट, गूगल, गूगल, गूगल जैसी इंटरनेट दिग्गजों के बीच लोकप्रिय हो गई। Amazon, आदि जो भारी मात्रा में डेटा से निपटते हैं
- वर्ष 1998 में कार्लो स्ट्रोज़ी ने अपने हल्के, ओपन-सोर्स रिलेशनल डेटाबेस के लिए NoSQL शब्द का उपयोग किया
- NoSQL डेटाबेस कभी भी रिलेशनल मॉडल का पालन नहीं करते हैं, यह या तो स्कीमा-मुक्त होते हैं या इनमें शिथिल स्कीमा होती है
- NoSQL डेटाबेस के चार प्रकार हैं 1). की-वैल्यू पेयर आधारित 2). कॉलम-ओरिएंटेड ग्राफ़ 3). ग्राफ़ आधारित 4). दस्तावेज़-उन्मुख
- NOSQL संरचित, अर्ध-संरचित और असंरचित डेटा को समान प्रभाव से संभाल सकता है
- CAP प्रमेय तीन शब्दों से मिलकर बना है संगतता, उपलब्धता और विभाजन सहनशीलता
- BASE का तात्पर्य है Bसमान रूप से Aअनुपलब्ध, Sअक्सर राज्य, Eवेंटुअल स्थिरता
- "अंतिम संगति" शब्द का अर्थ है उच्च उपलब्धता और मापनीयता प्राप्त करने के लिए कई मशीनों पर डेटा की प्रतियां रखना
- NoSQL सीमित क्वेरी क्षमताएं प्रदान करें