1.1 NoSQL डेटाबेस कैसे काम करता है

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

किताबों के एक साधारण डेटाबेस के लिए स्कीमा मॉडलिंग के उदाहरण पर विचार करें।

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

  • NoSQL डेटाबेस में, एक बुक रिकॉर्ड को आमतौर पर JSON दस्तावेज़ के रूप में संग्रहीत किया जाता है। प्रत्येक पुस्तक, या तत्व के लिए, ISBN , पुस्तक शीर्षक , संस्करण संख्या , लेखक का नाम , और लेखक आईडी मान एक ही दस्तावेज़ में विशेषताओं के रूप में संग्रहीत किए जाते हैं। इस मॉडल में, डेटा को सहज ज्ञान युक्त विकास और क्षैतिज मापनीयता के लिए अनुकूलित किया गया है।

1.2 NoSQL डेटाबेस का उपयोग किस लिए किया जा सकता है?

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

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

  • मापनीयता । नोएसक्यूएल डेटाबेस वितरित हार्डवेयर क्लस्टर का उपयोग करके स्केल करने के लिए डिज़ाइन किए गए हैं, महंगे, विश्वसनीय सर्वर जोड़कर नहीं। कुछ क्लाउड सेवा प्रदाता पूरी तरह से प्रबंधित सेवा प्रदान करते हुए इन कार्यों को पृष्ठभूमि में चलाते हैं।

  • उच्च प्रदर्शन । संबंधपरक डेटाबेस की तुलना में उच्च प्रदर्शन प्राप्त करने के लिए NoSQL डेटाबेस को विशिष्ट डेटा मॉडल और एक्सेस पैटर्न के लिए अनुकूलित किया गया है।

  • विस्तृत कार्यक्षमता । NoSQL डेटाबेस समृद्ध एपीआई और डेटा प्रकार प्रदान करते हैं जो विशेष रूप से उनके संबंधित डेटा मॉडल के लिए डिज़ाइन किए गए हैं।

1.3 NoSQL डेटाबेस के प्रकार

NoSQL डेटाबेस का उपयोग किया जाता है जहां टेबल के रूप में डेटा स्टोर करना बहुत सुविधाजनक नहीं होता है। इसलिए, उन्हें बहुत भिन्न स्वरूपों में संग्रहीत किया जाता है। आमतौर पर, NoSQL डेटाबेस के 6 मुख्य डेटा प्रकार होते हैं।

डीबी कुंजी-मूल्य जोड़े पर आधारित है

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

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

दस्तावेज़

एप्लिकेशन कोड में, डेटा को अक्सर JSON जैसे प्रारूप में ऑब्जेक्ट या दस्तावेज़ के रूप में दर्शाया जाता है क्योंकि यह डेवलपर्स के लिए एक कुशल और सहज डेटा मॉडल है। दस्तावेज़ डेटाबेस डेवलपर्स को उसी दस्तावेज़ मॉडल का उपयोग करके डेटाबेस में डेटा को संग्रहीत करने और क्वेरी करने की अनुमति देता है जिसका उपयोग वे अपने एप्लिकेशन कोड में करते हैं। दस्तावेज़ों और दस्तावेज़ डेटाबेस की लचीली, अर्ध-संरचित, पदानुक्रमित प्रकृति उन्हें एप्लिकेशन आवश्यकताओं के साथ विकसित करने की अनुमति देती है।

दस्तावेज़ मॉडल कैटलॉग, उपयोगकर्ता प्रोफ़ाइल और सामग्री प्रबंधन प्रणालियों में अच्छी तरह से काम करता है जहाँ प्रत्येक दस्तावेज़ अद्वितीय होता है और समय के साथ बदलता रहता है। Amazon DocumentDB (MongoDB के साथ संगत) और MongoDB सामान्य दस्तावेज़ डेटाबेस हैं जो चुस्त विकास के लिए कार्यात्मक और सहज API प्रदान करते हैं।

ग्राफ डेटाबेस

ग्राफ़ डेटाबेस उन अनुप्रयोगों को विकसित करना और चलाना आसान बनाता है जो जटिल डेटा के सेट के साथ काम करते हैं। ग्राफ़ डेटाबेस का उपयोग करने के विशिष्ट उदाहरण सामाजिक नेटवर्क, अनुशंसा सेवाएँ, धोखाधड़ी का पता लगाने वाली प्रणालियाँ और ज्ञान ग्राफ़ हैं। अमेज़ॅन नेप्च्यून पूरी तरह से प्रबंधित ग्राफ़ डेटाबेस सेवा है। नेप्च्यून संपत्ति ग्राफ और संसाधन विवरण फ्रेमवर्क (आरडीएफ) का समर्थन करता है, जिसमें से चुनने के लिए दो ग्राफ एपीआई प्रदान करता है: टिंकरपॉप और आरडीएफ/एसपीएआरक्यूएल। सामान्य ग्राफ़ डेटाबेस में Neo4j और Giraph शामिल हैं।

स्मृति में डीबी

अक्सर गेमिंग और विज्ञापन एप्लिकेशन लीडरबोर्ड, सेशन स्टोरेज और रीयल-टाइम एनालिटिक्स का उपयोग करते हैं। ऐसी क्षमताओं के लिए कुछ माइक्रोसेकंड के भीतर प्रतिक्रिया की आवश्यकता होती है, जबकि किसी भी समय यातायात में तीव्र वृद्धि संभव है।

रेडिस के लिए अमेज़ॅन मेमोरीडीबी एक रेडिस-संगत, विश्वसनीय इन-मेमोरी डेटाबेस सेवा है जो पढ़ने की विलंबता को मिलीसेकंड तक कम कर देता है और कई उपलब्धता क्षेत्रों में स्थायित्व प्रदान करता है। मेमोरीडीबी अत्यधिक उच्च प्रदर्शन और विश्वसनीयता के लिए उद्देश्य से बनाया गया है, इसलिए इसे आधुनिक माइक्रोसर्विस-आधारित अनुप्रयोगों के लिए प्राथमिक डेटाबेस के रूप में उपयोग किया जा सकता है।

Amazon ElastiCache कम विलंबता, उच्च थ्रूपुट वर्कलोड को पूरा करने के लिए पूरी तरह से प्रबंधित Redis और Memcached संगत इन-मेमोरी कैशिंग सेवा है। टिंडर जैसे ग्राहक जिन्हें वास्तविक समय में प्रतिक्रिया देने के लिए अपने ऐप्स की आवश्यकता होती है, वे डिस्क स्टोरेज सिस्टम के बजाय इन-मेमोरी का उपयोग कर रहे हैं। उद्देश्य-निर्मित डेटा वेयरहाउस का एक अन्य उदाहरण Amazon DynamoDB Accelerator (DAX) है। DAX DynamoDB को डेटा को कई गुना तेज़ी से पढ़ने की अनुमति देता है।

डेटाबेस खोजें

डेवलपर्स के लिए समस्या निवारण और समस्याओं को ठीक करना आसान बनाने के लिए कई एप्लिकेशन लॉग उत्पन्न करते हैं। अमेज़ॅन ओपनसर्च अर्ध-संरचित लॉग और मेट्रिक्स को अनुक्रमित, एकत्रित और खोज कर स्वचालित रूप से जेनरेट की गई डेटा स्ट्रीम के रीयल-टाइम विज़ुअलाइज़ेशन और एनालिटिक्स के लिए एक उद्देश्य-निर्मित सेवा है।

इसके अलावा, Amazon OpenSearch एक शक्तिशाली, उच्च-प्रदर्शन पूर्ण-पाठ खोज सेवा है। एक्सपीडिया 150 से अधिक अमेज़ॅन ओपनसर्च सेवा डोमेन, 30 टीबी डेटा, और 30 अरब दस्तावेजों को परिचालन निगरानी और समस्या निवारण से लेकर वितरित एप्लिकेशन स्टैक ट्रैकिंग और लागत अनुकूलन तक विभिन्न प्रकार के मिशन-महत्वपूर्ण उपयोग मामलों के लिए लाभ उठाता है।

1.4 SQL (रिलेशनल) और NoSQL (नॉन-रिलेशनल) डेटाबेस की तुलना

नोएसक्यूएल के कई फायदे हैं, इसलिए आपको कम से कम सैद्धांतिक रूप से पता होना चाहिए कि आपको जिस टूल की आवश्यकता है वह स्वयं लिखने से पहले ही मौजूद है। नीचे मैं NoSQL और SQL डेटाबेस की तुलना करूँगा:

उपयुक्त कार्यभार

संबंधपरक डेटाबेस लेनदेन और अत्यधिक सुसंगत रीयल-टाइम लेनदेन प्रसंस्करण (ओएलटीपी) अनुप्रयोगों के लिए डिज़ाइन किए गए हैं और रीयल-टाइम विश्लेषणात्मक प्रसंस्करण (ओएलएपी) के लिए उपयुक्त हैं।

नोएसक्यूएल डाटाबेस को कम विलंबता अनुप्रयोगों सहित डेटा एक्सेस पैटर्न की एक श्रृंखला के साथ काम करने के लिए डिज़ाइन किया गया है। NoSQL खोज डेटाबेस अर्ध-संरचित डेटा के विश्लेषण के लिए डिज़ाइन किए गए हैं।

डेटा मॉडल

संबंधपरक मॉडल डेटा को सामान्यीकृत करता है और इसे पंक्तियों और स्तंभों वाली तालिकाओं में परिवर्तित करता है। एक स्कीमा तालिकाओं, पंक्तियों, स्तंभों, अनुक्रमितों, तालिकाओं के बीच संबंधों और अन्य डेटाबेस तत्वों को सख्ती से परिभाषित करता है। ऐसा डेटाबेस तालिकाओं के बीच संबंधों में संदर्भ डेटा की अखंडता सुनिश्चित करता है।

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

एसिड गुण

संबंधपरक डेटाबेस ACID गुणों का एक सेट प्रदान करते हैं: परमाणुता, संगति, अलगाव, विश्वसनीयता।

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

NoSQL डेटाबेस अक्सर एक अधिक लचीले डेटा मॉडल के पक्ष में ACID गुणों की कठोर आवश्यकताओं को शिथिल करते हुए एक समझौता प्रदान करते हैं जो क्षैतिज स्केलिंग की अनुमति देता है। यह NoSQL को उच्च-बैंडविड्थ, कम-विलंबता उपयोग मामलों के लिए एक बढ़िया विकल्प बनाता है, जिसमें एक उदाहरण से परे क्षैतिज स्केलिंग की आवश्यकता होती है।

प्रदर्शन

प्रदर्शन मुख्य रूप से डिस्क सबसिस्टम पर निर्भर करता है। अधिकतम प्रदर्शन के लिए अक्सर प्रश्नों, अनुक्रमणिकाओं और तालिका संरचना का अनुकूलन आवश्यक होता है।

प्रदर्शन आमतौर पर अंतर्निहित हार्डवेयर क्लस्टर, नेटवर्क विलंबता और कॉलिंग एप्लिकेशन के आकार पर निर्भर करता है।

स्केलिंग

संबंधपरक डेटाबेस आमतौर पर हार्डवेयर की कंप्यूटिंग शक्ति को बढ़ाकर या रीड वर्कलोड के लिए अलग-अलग प्रतियां जोड़कर स्केल करते हैं।

NoSQL डेटाबेस आमतौर पर वितरित आर्किटेक्चर के आधार पर स्केलेबल एक्सेस पैटर्न के माध्यम से उच्च पृथक्करण का समर्थन करते हैं। यह थ्रूपुट में सुधार करता है और लगभग असीमित पैमाने पर लगातार प्रदर्शन प्रदान करता है।

एपीआई

डेटा लिखने और पुनर्प्राप्त करने के अनुरोध SQL में लिखे गए हैं। इन प्रश्नों को रिलेशनल डेटाबेस द्वारा पार्स और निष्पादित किया जाता है।

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