InterSystems Caché और NoSQL Technologies

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

उच्च-लोड इंटरनेट परियोजनाओं और चरम लेनदेन प्रसंस्करण ( XTP ) अनुप्रयोगों ने DBMS प्रौद्योगिकियों के लिए आवश्यकताओं को बदल दिया है। प्राथमिकता की आवश्यकताएं विकास की सादगी थीं, एक विशिष्ट परियोजना के लिए संग्रहीत डेटा की तकनीक की विशेषज्ञता की संभावना, बढ़ते लोड के साथ सिस्टम की निरंतर प्रतिक्रिया समय बनाए रखना, स्केलिंग की कम लागत और बड़ी मात्रा में प्रसंस्करण की लागत को सुनिश्चित करना।

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


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

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

NoSQL प्रोजेक्ट्स में जो आम बात है वह है परस्पर विरोधी आवश्यकताओं के संबंध में समझौता का व्यापक उपयोग, जो की अस्वीकृति असंभव थी और पारंपरिक DBMS के लिए एक हठधर्मिता थी - उदाहरण के लिए, क्षैतिज स्केलेबिलिटी के पक्ष में सभी ACID गुणों के लिए समर्थन से परहेज। ट्रेड-ऑफ प्राकृतिक होने के कारणों की व्याख्या करने का सबसे लोकप्रिय तरीका सीएपी प्रमेय है। स्वतंत्र रूप से इसके अर्थ की व्याख्या करते हुए, हम कह सकते हैं कि एक ही समय में विश्वसनीय, तेज, वितरित और समग्र होना असंभव है - हालांकि, विकल्प हो सकते हैं।

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

NoSQL परियोजनाओं की विविधता के बावजूद, अब ऐसा कोई भी नहीं है जिसे सुरक्षित रूप से एक सार्वभौमिक और व्यापक NoSQL प्लेटफॉर्म कहा जा सकता है - यह विशेषज्ञता के बहुत सिद्धांत का विरोध करता है, जो स्पष्ट रूप से या स्पष्ट रूप से NoSQL में निहित है। इसलिए, यदि आपके पास अगली परियोजना में NoSQL दृष्टिकोण का उपयोग करने का विचार था, तो सबसे अधिक संभावना है कि आपको कई प्रश्नों का उत्तर देना होगा और कई जोखिमों को हल करना होगा, उदाहरण के लिए: कौन सा डेटा मॉडल चुनना है; चयनित तकनीक कितनी स्थिर और परिपक्व है; NoSQL समाधान को दूसरे, अधिक कुशल एक में बदलने के प्रयास के मामले में कोड में कितने गंभीर बदलाव होंगे; क्या डिजाइन आवश्यकताओं को पूरा करने के लिए क्वेरी भाषा पर्याप्त रूप से पूर्ण और तकनीकी रूप से उन्नत है। अलग-अलग, यह ध्यान देने योग्य है कि कई NoSQL प्रौद्योगिकियां विशेष रूप से एक विशिष्ट परियोजना के लिए बनाई गई थीं और कुछ हद तक प्रवाह के समान हैं - एक संभावना है कि प्रारंभिक परियोजना की आवश्यकताओं और कार्यों को पूरी तरह से कवर करना, वे आपके मामले में बहुत उपयुक्त नहीं हो सकते हैं।

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

पहला, स्पष्ट, ध्वन्यात्मक समानता जो NoSQL और InterSystems Caché की तुलना करते समय तुरंत ध्यान आकर्षित करता है, गैर-संबंधपरक है। कैच रिलेशनल मॉडल की तुलना में सरल के कार्यान्वयन पर आधारित है, जिसे इसके परमाणु तत्वों ग्लोबल्स (या, सटीक होने के लिए, पूर्ण नाम ग्लोबल पर्सेंटिव वेरिएबल्स या बस ग्लोबल्स) कहा जाता है। ग्लोबल्स में स्कीमा नहीं होता है, स्तंभों के गतिशील जोड़ की अनुमति देता है, स्तंभ मानों के विरल भंडारण का उपयोग करता है। वैश्विक स्तर पर, आप उपयोग कर सकते हैं, अगर वांछित, ताले, लेनदेन, वितरित भंडारण और विभाजन करते हैं। परिभाषा में कुछ अशुद्धि को त्यागते हुए, आप ग्लोबल्स को पीएचपी या जावा में हाशप में एक साहचर्य सरणी के समान संरचना के रूप में सोच सकते हैं।

एक सरल और लचीले डेटा मॉडल के रूप में ग्लोबल्स नॉन-रिलेशनल मॉडल के निर्माण के लिए एक उत्कृष्ट आधार प्रदान करते हैं जो कि NoSQL में उपयोग किए जाते हैं: कुंजी-मूल्य, एक्स्टेंसिबल रिकॉर्ड, कॉलम-आधारित, ग्राफ़। NoSQL में लोकप्रिय मॉडलों के कार्यान्वयन के विस्तृत उदाहरण लेख A Universal NoSQL Engine ( Habré में अनुवाद ) में दिए गए हैं - लेखक चार प्रकार के डेटा मॉडल के लिए समाधान प्रदान करते हैं।

उदाहरण के लिए, बल्क स्टोरेज का कार्यान्वयन (एक यूनिवर्सल नॉएसक्यूएल इंजन से, एक ट्रायड एंड टेस्टेड टेक्नोलॉजी का उपयोग करके):
छवि

वैश्विक स्तर पर, रिलेशनल डेटाबेस के लिए कोई घोषणात्मक क्वेरी भाषा प्रथागत नहीं है। क्वेरी को एक एल्गोरिथम तरीके से निर्धारित किया जाता है - क्वेरी निष्पादन को कैच ऑब्जेक्ट स्क्रिप्ट भाषा में लिखे गए कोड के निष्पादन के लिए कम किया जाता है, जो ग्लोबल्स में संग्रहीत डेटा के साथ काम करने के लिए सरल, कुशल संचालन का पर्याप्त सेट प्रदान करता है। एक प्रोग्रामिंग भाषा के रूप में कैच ऑब्जेक्ट स्क्रिप्ट की विशिष्टता यह है कि यह सिंटैक्स में शायद एकमात्र भाषा है जिसमें एक निर्माण को स्पष्ट रूप से यह इंगित करने के लिए पेश किया जाता है कि चर कहाँ संग्रहीत किया गया है - स्मृति में या मोटे तौर पर डिस्क पर बोल रहा है। कल्पना कीजिए कि जावा या .NET जैसे पारंपरिक प्लेटफार्मों में इस तरह का अवसर होगा - कई मायनों में कार्यक्रम और डेटाबेस के बीच पर्यावरण पर काबू पाने में कोई समस्या नहीं होगी। कैच के साथ काम करने के बाद सार्वभौमिक प्रोग्रामिंग भाषाओं के लिए इस तरह के डिजाइन की कमी अजीब लगती है - यह मानना ​​स्वाभाविक है कि कोड न केवल स्मृति में चर के साथ काम करता है, बल्कि संग्रहीत चर के साथ भी काम करता है। इस मामले में, आपको डेटाबेस में संरचनाओं को पूर्वनिर्धारित करने की आवश्यकता नहीं है - आप उनके साथ उसी तरह काम करते हैं जैसे कमजोर टाइपिंग वाली भाषाओं में चर।

यूनिफाइड डेटा मॉडल की अवधारणा "अकेले डेटा - कई प्रस्तुति मॉडल हैं" के सिद्धांत पर आधारित है।
छवि

InterSystems के बाद, जो पहले से ही वैश्विक स्तर पर ऑब्जेक्ट-ओरिएंटेड और रिलेशनल (SQL) एक्सेस को लागू कर चुका है, आप अपने स्वयं के, अनूठे डेटा मॉडल को लागू करने में सक्षम हैं और जैसे, Caché में उपयोग के लिए पहले से तैयार मॉडल, यूनिफाइड डेटा सिद्धांत का उपयोग करें - प्रबंधन दृष्टिकोण दृढ़ता, जिसमें विभिन्न मॉडलों में एक ही डेटा के साथ काम करना शामिल है, जो किसी विशिष्ट कार्य के संदर्भ में उपयोग की आसानी पर निर्भर करता है। उदाहरण के लिए, त्वरित सम्मिलन और पढ़ने के लिए, कुंजी-मूल्य मॉडल का उपयोग करना संभव है, और प्रश्नों के लिए, रिलेशनल मॉडल की क्षमताओं का उपयोग किया जाता है। NoSQL सॉल्यूशंस के लिए अपनी क्वेरी भाषा बनाते समय, आप कैच ऑब्जेक्ट स्क्रिप्ट का उपयोग कर सकते हैं, जो ग्लोबल्स में संग्रहीत डेटा के साथ काम करने के लिए सरल ऑपरेशन का एक सेट प्रदान करता है।

एक अलग, लेकिन काचे और NoSQL की तुलना के गैर-संबंधपरक पहलू के रूप में स्पष्ट नहीं है वितरण और स्केलिंग है। यदि हम नो एसक्यूएल के लिए ऐसी महत्वपूर्ण श्रेणी में कैच की तुलना करते हैं जैसे कि तीक्ष्ण स्केलिंग और विभाजन के रूप में तंत्र का उपयोग करके क्षैतिज स्केलिंग और वितरित भंडारण प्रदान करते हैं, तो एक तरफ कैची के पास ऐसे नामों के साथ बॉक्स विकल्पों में से कोई भी तैयार नहीं है। एक अन्य दृष्टिकोण से, यह पूरी तरह से सच नहीं है, क्योंकि काचे में यह या तो थोड़ा अलग तरीके से किया जाता है, या, फिर से, जैसे ग्लोबल्स के मामले में, विश्वसनीय बुनियादी प्रौद्योगिकियां ऐसी क्षमताओं को प्रभावी ढंग से प्रदान करने के लिए प्रदान की जाती हैं। ECP, क्षेत्रों की अवधारणा (नाम स्थान) का उपयोग करके, सब्स्क्रिप्ट लेवल मैपिंग, कुशल वितरित डेटा प्रोसेसिंग को लागू करना संभव है।

ECP और SLM का उपयोग करके विभाजन और वितरित भंडारण:
छवि

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

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

InterSystems Globals .NET, Java और Node.js. से काम करने के लिए सरल API प्रदान करता है कैच ऑब्जेक्ट स्क्रिप्ट के साथ ऊपर वर्णित कहानी के विपरीत, ग्लोबल्स के मामले में, एक अलग दृष्टिकोण का उपयोग किया जाता है - ग्लोबल्स के साथ काम करने के लिए संचालन एक प्रोग्रामिंग भाषा बाहरी से डेटाबेस तक उपलब्ध है। उसी समय, ग्लोबल्स (उदाहरण के लिए, जेवीएम) के साथ काम करने वाले एप्लिकेशन की प्रक्रिया वास्तव में डीबीएमएस प्रक्रियाओं में से एक बन जाती है।

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

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

InterSystems Globals को NoSQL डेटाबेस के रूप में तैनात किया गया है, लेकिन यह कई पहलुओं में मुख्य NoSQL स्ट्रीम से अलग है: InterSystems Globals के पास एक विशिष्ट डेटा मॉडल पर कोई प्रतिबंध नहीं है, कई अन्य समाधानों के विपरीत, आप ताले और लेनदेन का उपयोग कर सकते हैं, Globals दोनों को कुशल कार्य प्रदान करता है स्मृति में डेटा और डिस्क पर डेटा अखंडता। फिलहाल, ग्लोबल्स में वितरित डेटा के साथ काम करने की क्षमता नहीं है। ग्लोबल्स एक स्थिर कोर प्रौद्योगिकी का उपयोग करते हैं जिसे विकसित और रखरखाव की गारंटी दी जाती है।

Caché के विपरीत ग्लोबल्स, ऑब्जेक्ट और रिलेशनल एक्सेस के बिना ग्लोबल्स के साथ काम करने के लिए एक कोर प्रदान करता है। लेकिन जब एक परियोजना का विकास होता है, तो एप्लिकेशन कोड को बदलने के बिना हमेशा कैच पर स्विच करने का अवसर होता है - ग्लोबल्स एपीआई कैची एक्सट्रीम टेक्नोलॉजी का सबसेट है।

सारांश करते हुए, हम कह सकते हैं कि अब हम Cach को NoSQL डेटाबेस के रूप में सोच सकते हैं और अधिक - ऑब्जेक्ट और रिलेशनल मॉडल के समर्थन के साथ NoSQL परियोजनाओं के लिए एक सार्वभौमिक, स्थिर मंच जो पारंपरिक DBMSs के प्रदर्शन में नीच नहीं हैं। और इस तथ्य के बावजूद कि NoSQL - एक शब्द जो काफी हाल ही में काफी लोकप्रिय हो गया है - पूरी तरह से कंपनी के मूल्यों से मेल खाता है जो समान बने हुए हैं - ठीक 30 साल के लिए, कैच को जिस तकनीक से जोड़ा गया है, वह आपको जल्दी से पूर्ण समाधान बनाने की अनुमति देता है। आपका प्रोजेक्ट। यदि आपको आपका उपयोग कर सकते हैं तो आपको किसी अन्य परियोजना से तकनीक की आवश्यकता क्यों है?

Source: https://habr.com/ru/post/In194818/


All Articles