अमेज़ॅन डायनेमोडीबी: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 16: Line 16:
}}
}}


अमेज़न डाइनेमो डी बी  एक संपूर्ण रूप  से प्रबंधित स्वामित्व वाला [[NoSQL|एनओएसक्यूएल]] [[डेटाबेस]] है जो अमेज़न डॉट कॉम के माध्यम से अमेज़न वेब सेवाएं विभाग के भाग के रूप में प्रस्तुत  किया गया है।<ref name="ZDNet 2012-01-19">{{cite web |last=Clark |first=Jack |date=2012-01-19 |title=अमेज़न DynamoDB क्लाउड डेटाबेस सेवा पर स्विच करता है|url=http://www.zdnet.co.uk/news/cloud/2012/01/19/amazon-switches-on-dynamodb-cloud-database-service-40094849/ |access-date=2012-01-21 |website=ZDNet}}</ref><ref>{{Cite web |title=Fast NoSQL Key-Value Database – Amazon DynamoDB – Amazon Web Services |url=https://aws.amazon.com/dynamodb/ |access-date=2023-05-28 |website=Amazon Web Services, Inc. |language=en-US}}</ref> डाइनेमो डी बी  [[प्रतिकृति (कंप्यूटिंग)]], [[ऑटोस्केलिंग|स्वत:  प्रवर्धन]], एन्क्रिप्शन स्थिरता  और अन्य सुविधाओं के मध्य आवश्यकता होना,  पूर्तिकर के लिए अंतर्निहित समर्थन के साथ एक तीव्र [[सतत डेटा संरचना]] [[कुंजी-मूल्य डेटा संग्रह|कुंजी-मान  डेटा संग्रह]]  प्रदान करता है।<ref>{{Cite web |title=Amazon DynamoDB Features {{!}} NoSQL Key-Value Database {{!}} Amazon Web Services |url=https://aws.amazon.com/dynamodb/features/ |access-date=2023-05-28 |website=Amazon Web Services, Inc. |language=en-US}}</ref><ref>{{Cite web |title=What is Amazon DynamoDB? - Amazon DynamoDB |url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html |access-date=2023-05-28 |website=docs.aws.amazon.com}}</ref>
अमेज़न डाइनेमो डी बी  एक संपूर्ण रूप  से प्रबंधित स्वामित्व वाला [[NoSQL|एनओएसक्यूएल]] [[डेटाबेस]] है जो अमेज़न डॉट कॉम के माध्यम से अमेज़न वेब सेवाएं विभाग के भाग के रूप में प्रस्तुत  किया गया है।<ref name="ZDNet 2012-01-19">{{cite web |last=Clark |first=Jack |date=2012-01-19 |title=अमेज़न DynamoDB क्लाउड डेटाबेस सेवा पर स्विच करता है|url=http://www.zdnet.co.uk/news/cloud/2012/01/19/amazon-switches-on-dynamodb-cloud-database-service-40094849/ |access-date=2012-01-21 |website=ZDNet}}</ref><ref>{{Cite web |title=Fast NoSQL Key-Value Database – Amazon DynamoDB – Amazon Web Services |url=https://aws.amazon.com/dynamodb/ |access-date=2023-05-28 |website=Amazon Web Services, Inc. |language=en-US}}</ref> डाइनेमो डी बी  [[प्रतिकृति (कंप्यूटिंग)]], [[ऑटोस्केलिंग|स्वत:  प्रवर्धन]], एन्क्रिप्शन स्थिरता  और अन्य सुविधाओं के मध्य आवश्यकता होना,  पूर्तिकर के लिए अंतर्निहित समर्थन के साथ एक तीव्र [[सतत डेटा संरचना]] [[कुंजी-मूल्य डेटा संग्रह|समाधान-मान  डेटा संग्रह]]  प्रदान करता है।<ref>{{Cite web |title=Amazon DynamoDB Features {{!}} NoSQL Key-Value Database {{!}} Amazon Web Services |url=https://aws.amazon.com/dynamodb/features/ |access-date=2023-05-28 |website=Amazon Web Services, Inc. |language=en-US}}</ref><ref>{{Cite web |title=What is Amazon DynamoDB? - Amazon DynamoDB |url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html |access-date=2023-05-28 |website=docs.aws.amazon.com}}</ref>


इसके पश्चात् भी तीसरे पक्ष के [[ संबंध का डेटाबेस | संबंधित डेटाबेस]]  प्रबंधन सिस्टम को अमेज़ॅन के ग्राहक मूल को नियंत्रण के लिए संघर्ष करना पड़ा है।   
इसके पश्चात् भी तीसरे पक्ष के [[ संबंध का डेटाबेस | संबंधित डेटाबेस]]  प्रबंधन सिस्टम को अमेज़ॅन के ग्राहक मूल को नियंत्रण के लिए संघर्ष करना पड़ा है।   
Line 23: Line 23:




डेटा अतिरेक को अल्प  करने के लिए इंजीनियर संबंधपरक में सिस्टम को सामान्य कर रहे थे, जो  रचना  जो भंडारण के लिए अनुकूलित है। परित्याग  के रूप में उन्होंने डेटा के एक दिए गए "मद" (उदाहरण के लिए, उत्पाद डेटाबेस में किसी उत्पाद से संबंधित जानकारी) को अनेक  संबंधों में संग्रहीत किया और एक प्रश्न के लिए असंयुक्त भागों को एकत्रित  करने में समय लगता है। अमेज़ॅन की अनेक  सेवाओं ने अपने डेटा पर अधिकतर प्राथमिक-कुंजी अध्ययन की अनुरोध की, और गति को सर्वोच्च प्राथमिकता के साथ, इन भागो  एकत्रित  रखना अत्यधिक कठिन था।<ref name=":1">{{Cite journal|last1=DeCandia|first1=Giuseppe|last2=Hastorun|first2=Deniz|last3=Jampani|first3=Madan|last4=Kakulapati|first4=Gunavardhan|last5=Lakshman|first5=Avinash|last6=Pilchin|first6=Alex|last7=Sivasubramanian|first7=Swaminathan|last8=Vosshall|first8=Peter|last9=Vogels|first9=Werner|date=October 2007|title=Dynamo: Amazon's Highly Available Key–value Store|journal=SIGOPS Oper. Syst. Rev.|volume=41|issue=6|pages=205–220|doi=10.1145/1323293.1294281|issn=0163-5980}}</ref>


भंडारण दक्षता से अनुबंध करने वाली सामग्री, अमेज़ॅन की प्रतिक्रिया डायनमो (भंडारण प्रणाली) थी, आंतरिक उपयोग के लिए बनाया गया एक अत्यधिक उपलब्ध कुंजी-मान  भण्डार है।<ref name="Vogels 2012-01-18" /> ऐसा लगता था कि डायनमो में वह सब कुछ था जिसकी उनके इंजीनियरों को आवश्यकता थी, किन्तु इसे अपनाने में विलम्ब हुआ है।  अमेज़ॅन के विकासक ने एस3 और सामान्तः डीबी के साथ [[अमेज़न हो सकता है|"उचित कार्य"]] रचना स्वरूप को चयनित करा है। चूंकि इन प्रणालियों में ध्यान देने योग्य रचना  कमजोरियों थीं, किन्तु उन्होंने हार्डवेयर प्रावधान और प्रवर्धन और डेटा को पुनः से  विभाजित करने के अतिरिक्त  की अनुरोध नहीं किया है। अमेज़ॅन की एनओएसक्यूएल विधि  का आगामी संस्करण, डाइनेमो डी बी, इन डेटाबेस प्रबंधन कार्यों को स्वचालित करता है।
डेटा अतिरेक को अल्प  करने के लिए इंजीनियर संबंधपरक में सिस्टम को सामान्य कर रहे थे, जो  रचना  जो भंडारण के लिए अनुकूलित है। परित्याग  के रूप में उन्होंने डेटा के एक दिए गए "मद" (उदाहरण के लिए, उत्पाद डेटाबेस में किसी उत्पाद से संबंधित जानकारी) को अनेक  संबंधों में संग्रहीत किया और एक प्रश्न के लिए असंयुक्त भागों को एकत्रित  करने में समय लगता है। अमेज़ॅन की अनेक  सेवाओं ने अपने डेटा पर अधिकतर प्राथमिक-समाधान अध्ययन की अनुरोध की, और गति को सर्वोच्च प्राथमिकता के साथ, इन भागो  एकत्रित  रखना अत्यधिक कठिन था।<ref name=":1">{{Cite journal|last1=DeCandia|first1=Giuseppe|last2=Hastorun|first2=Deniz|last3=Jampani|first3=Madan|last4=Kakulapati|first4=Gunavardhan|last5=Lakshman|first5=Avinash|last6=Pilchin|first6=Alex|last7=Sivasubramanian|first7=Swaminathan|last8=Vosshall|first8=Peter|last9=Vogels|first9=Werner|date=October 2007|title=Dynamo: Amazon's Highly Available Key–value Store|journal=SIGOPS Oper. Syst. Rev.|volume=41|issue=6|pages=205–220|doi=10.1145/1323293.1294281|issn=0163-5980}}</ref>
 
भंडारण दक्षता से अनुबंध करने वाली सामग्री, अमेज़ॅन की प्रतिक्रिया डायनमो (भंडारण प्रणाली) थी, आंतरिक उपयोग के लिए बनाया गया एक अत्यधिक उपलब्ध समाधान-मान  भण्डार है।<ref name="Vogels 2012-01-18" /> ऐसा लगता था कि डायनमो में वह सब कुछ था जिसकी उनके इंजीनियरों को आवश्यकता थी, किन्तु इसे अपनाने में विलम्ब हुआ है।  अमेज़ॅन के विकासक ने एस3 और सामान्तः डीबी के साथ [[अमेज़न हो सकता है|"उचित कार्य"]] रचना स्वरूप को चयनित करा है। चूंकि इन प्रणालियों में ध्यान देने योग्य रचना  कमजोरियों थीं, किन्तु उन्होंने हार्डवेयर प्रावधान और प्रवर्धन और डेटा को पुनः से  विभाजित करने के अतिरिक्त  की अनुरोध नहीं किया है। अमेज़ॅन की एनओएसक्यूएल विधि  का आगामी संस्करण, डाइनेमो डी बी, इन डेटाबेस प्रबंधन कार्यों को स्वचालित करता है।




==अवलोकन==
==अवलोकन==
[[File:Dynamodb-aws-console.png|alt=Web console|thumb|वेब कंसोल]]डाइनेमो डी बी  में, डेटा को तालिकाओं में मद के रूप में संग्रहीत किया जाता है, और सूचकांकों का उपयोग करके विवरण प्राप्त किया जा सकता है। मद में अनेक  विशेषताएँ सम्मिलित  होती हैं जो अनेक  डेटा प्रकारों से संबंधित हो सकती हैं, और एक कुंजी की आवश्यकता होती है जो तालिका में अद्वितीय होने की अपेक्षा है।
[[File:Dynamodb-aws-console.png|alt=Web console|thumb|वेब कंसोल]]डाइनेमो डी बी  में, डेटा को तालिकाओं में मद के रूप में संग्रहीत किया जाता है, और सूचकांकों का उपयोग करके विवरण प्राप्त किया जा सकता है। मद में अनेक  विशेषताएँ सम्मिलित  होती हैं जो अनेक  डेटा प्रकारों से संबंधित हो सकती हैं, और एक समाधान की आवश्यकता होती है जो तालिका में अद्वितीय होने की अपेक्षा है।


=== डायनेमो डीबी सूची ===
=== डायनेमो डीबी सूची ===
Line 36: Line 37:


=== डायनेमो डीबी मद ===
=== डायनेमो डीबी मद ===
डाइनेमो डी बी  में एक मद विशेषताओं का एक सेट है जिसे किसी तालिका में विशिष्ट रूप से निर्धारित  जा सकता है। एक विशेषता एक परमाणु डेटा इकाई है जो अपने आप में एक कुंजी-मान  युग्मनहै। कुंजी सदैव स्ट्रिंग प्रकार की होती है, जबकि मान एकाधिक डेटा प्रकारों में से एक का हो सकता है।
डाइनेमो डी बी  में एक मद विशेषताओं का एक समूह  है जिसे किसी तालिका में विशिष्ट रूप से निर्धारित  जा सकता है। एक विशेषता एक परमाणु डेटा इकाई है जो अपने आप में एक समाधान-मान  युग्मन है। समाधान सदैव श्रृंखला प्रकार की होती है, जबकि मान एकाधिक डेटा प्रकारों में से एक का हो सकता है।
 
किसी मद को उसकी विशेषताओं के सबसेट जिसे कुंजी कहा जाता है, का उपयोग करके तालिका में विशिष्ट रूप से निर्धारित  जाता है।<ref name=":4" />
 


==== डाइनेमो डी बी में कुंजियाँ ====
किसी मद को उसकी विशेषताओं के उप-समूह जिसे समाधान कहा जाता है, का उपयोग करके तालिका में विशिष्ट रूप से निर्धारित करा जाता है।<ref name=":4" />
प्राथमिक कुंजी विशेषताओं का एक सेट है जो डायनेमो डीबी तालिका में विशिष्ट रूप से मद की पहचान करती है। डाइनेमो डी बी  तालिका के निर्माण के लिए प्राथमिक कुंजी की परिभाषा की आवश्यकता थी। डायनेमो डीबी तालिका में प्रत्येक मद में प्राथमिक कुंजी बनाने वाली सभी विशेषताओं का होना आवश्यक है, और तालिका में किसी भी दो मद में एक ही कुंजी नहीं हो सकती है। डायनमो डीबी में प्राथमिक कुंजी में एक या दो विशेषताएँ सम्मिलित  हो सकती हैं।
==== डाइनेमो डी बी   कुंजियाँ ====
प्राथमिक समाधान विशेषताओं का एक समूह  है जो डायनेमो डीबी तालिका में विशिष्ट रूप से मद की अभिज्ञान करती है। डाइनेमो डी बी  तालिका के निर्माण के लिए प्राथमिक समाधान की परिभाषा की आवश्यकता थी। डायनेमो डीबी तालिका में प्रत्येक मद में प्राथमिक समाधान बनाने वाली सभी विशेषताओं का होना आवश्यक है, और तालिका में किसी भी दो मद में एक ही समाधान नहीं हो सकती है। डायनमो डीबी में प्राथमिक समाधान में एक या दो विशेषताएँ सम्मिलित  हो सकती हैं।


जब प्राथमिक कुंजी केवल एक विशेषता से बनी होती है, तब इसे विभाजन कुंजी कहा जाता है। विभाजन कुंजी डेटा मद का भौतिक स्थान तय करती है। इस स्थिति में, तालिका में किसी भी दो मद में समान विभाजन कुंजियाँ नहीं हो सकती हैं।
जब प्राथमिक समाधान मात्र  एक विशेषता से बनी होती है, तब इसे विभाजन समाधान कहा जाता है। विभाजन समाधान डेटा मद का भौतिक स्थान नियुक्त  करती है। इस स्थिति में, तालिका में किसी भी दो मद में समान विभाजन कुंजियाँ नहीं हो सकती हैं।


जब प्राथमिक कुंजी दो विशेषताओं से बनी होती है, तब पहली को विभाजन कुंजी और सॉर्ट कुंजी कहा जाता है। विभाजन कुंजी डेटा का भौतिक स्थान तय करती है, और सॉर्ट कुंजी उस भौतिक स्थान के अंदर रिकॉर्ड की सापेक्ष तार्किक स्थिति तय करती है। इस स्थितियों में, तालिका में दो मदों में एक ही विभाजन कुंजी हो सकती है, किन्तु विभाजन में किसी भी दो मद में एक ही सॉर्ट कुंजी नहीं हो सकती है। दूसरे शब्दों में, विभाजन कुंजी और सॉर्ट कुंजी के दिए गए संयोजन की गारंटी है कि डायनेमो डीबी तालिका में इसके साथ अधिकतम एक मद जुड़ा होगा।<ref name=":4" />
जब प्राथमिक समाधान दो विशेषताओं से बनी होती है, तब प्रथम  को विभाजन समाधान और संक्षेप समाधान कहा जाता है। विभाजन समाधान डेटा का भौतिक स्थान नियुक्त  करती है, और संक्षेप समाधान उस भौतिक स्थान के अंदर अभिलेख की सापेक्ष तार्किक स्थिति नियुक्त  करती है। इस स्थितियों में, तालिका में दो मदों में एक ही विभाजन समाधान हो सकती है, किन्तु विभाजन में किसी भी दो मद में एक ही संक्षेप समाधान नहीं हो सकती है। दूसरे शब्दों में, विभाजन समाधान और संक्षेप समाधान के दिए गए संयोजन की प्रत्याभुति  है कि डायनेमो डीबी तालिका में इसके साथ अधिकतम एक मद सम्मलित होता है।<ref name=":4" />




=== डायनेमो डीबी डेटा प्रकार ===
=== डायनेमो डीबी डेटा प्रकार ===
डाइनेमो डी बी  संख्यात्मक, स्ट्रिंग, बूलियन, दस्तावेज़ और सेट डेटा प्रकारों का समर्थन करता है।<ref>{{Cite web |title=Amazon DynamoDB में समर्थित डेटा प्रकार और नामकरण नियम - Amazon DynamoDB|url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html |access-date=2023-05-28 |website=docs.aws.amazon.com}}</ref>
डाइनेमो डी बी  संख्यात्मक, श्रृंखला, बूलियन, प्रपत्र  और समूह  डेटा प्रकारों का समर्थन करता है।<ref>{{Cite web |title=Amazon DynamoDB में समर्थित डेटा प्रकार और नामकरण नियम - Amazon DynamoDB|url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html |access-date=2023-05-28 |website=docs.aws.amazon.com}}</ref>




=== डायनेमो डीबी सूचकांक ===
=== डायनेमो डीबी सूचकांक ===
किसी तालिका की प्राथमिक कुंजी डाइनेमो डी बी  तालिका का डिफ़ॉल्ट या प्राथमिक सूचकांक है।
किसी तालिका की प्राथमिक समाधान डाइनेमो डी बी  तालिका का अभाव या प्राथमिक सूचकांक है।


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


जब एक द्वितीयक सूचकांक में प्राथमिक सूचकांक के समान विभाजन कुंजी होती है किन्तु एक अलग सॉर्ट कुंजी होती है, तब इसे स्थानीय माध्यमिक सूचकांक कहा जाता है।
जब एक द्वितीयक सूचकांक में प्राथमिक सूचकांक के समान विभाजन समाधान होती है किन्तु एक प्रथक  संक्षेप समाधान होती है, तब इसे स्थानीय माध्यमिक सूचकांक कहा जाता है।


जब प्राथमिक सूचकांक और माध्यमिक सूचकांक में अलग-अलग विभाजन कुंजी होती है, तब माध्यमिक सूचकांक को वैश्विक माध्यमिक सूचकांक के रूप में जाना जाता है।<ref name=":4" />
जब प्राथमिक सूचकांक और माध्यमिक सूचकांक में प्रथक -प्रथक  विभाजन समाधान होती है, तब माध्यमिक सूचकांक को वैश्विक माध्यमिक सूचकांक के रूप में जाना जाता है।<ref name=":4" />




==विकास संबंधी विचार==
==विकास संबंधी विचार==


=== सिंटेक्स ===
=== वाक्य - विन्यास ===
डाइनेमो डी बी  अपनी सर्वव्यापकता के कारण अपने सिंटैक्स के लिए [[JSON]] का उपयोग करता है।{{citation needed|date=October 2019}} टेबल बनाएं कार्रवाई केवल तीन तर्कों की अनुरोध करती है: टेबलनाम, कीयोजना--एक सूची जिसमें एक विभाजन कुंजी और एक वैकल्पिक सॉर्ट कुंजी होती है--और विशेषता परिभाषाएँ--परिभाषित की जाने वाली विशेषताओं की एक सूची जिसमें अल्प  से अल्प  उपयोग की जाने वाली विशेषताओं के लिए परिभाषाएं होनी चाहिए विभाजन और सॉर्ट कुंजियाँ। जबकि रिलेशनल डेटाबेस शक्तिशाली  क्वेरी भाषाएँ प्रदान करते हैं, डाइनेमो डी बी  केवल पुट, गेट, अपडेट और डिलीट ऑपरेशंस प्रदान करता है। पुट अनुरोधों में TableName विशेषता और एक मद विशेषता सम्मिलित  होती है, जिसमें मद की सभी विशेषताएँ और मान सम्मिलित  होते हैं। अद्यतन अनुरोध समान सिंटैक्स का अनुसरण करता है। इसी प्रकार, किसी मद को प्राप्त करने या हटाने के लिए, बस एक टेबलनाम और कुंजी निर्दिष्ट करें।
डाइनेमो डी बी  अपनी सर्वव्यापकता के कारण अपने वाक्य - विन्यास के लिए [[JSON|जेएसओएन]] का उपयोग करता है। सूची  निर्मित क्रिया मात्र  तीन तर्कों की अनुरोध करती है: सूची नाम, समाधान योजना--एक सूची जिसमें एक विभाजन समाधान और एक वैकल्पिक संक्षेप समाधान होती है। और विशेषता परिभाषाएँ--परिभाषित की जाने वाली विशेषताओं की एक सूची जिसमें अल्प  से अल्प  उपयोग की जाने वाली विशेषताओं के लिए परिभाषाएं होनी चाहिए एवं विभाजन और संक्षेप कुंजियाँ है। जबकि सम्बंधित  डेटाबेस शक्तिशाली  प्रश्नचिहन भाषाएँ प्रदान करते हैं, डाइनेमो डी बी  मात्र  स्थापित , मार्ग , अद्यतन और विलोपन  संचालन  प्रदान करता है। स्थापित  अनुरोधों में सूची  नाम  विशेषता और एक मद विशेषता सम्मिलित  होती है, जिसमें मद की सभी विशेषताएँ और मान सम्मिलित  होते हैं। अद्यतन अनुरोध समान वाक्य - विन्यास का अनुसरण करता है। इसी प्रकार, किसी मद को प्राप्त करने या प्रथक करने  के लिए, मात्र  एक सूची नाम और समाधान निर्दिष्ट करना है।


==सिस्टम आर्किटेक्चर==
==सिस्टम आर्किटेक्चर==
Line 72: Line 71:


=== डेटा संरचनाएं ===
=== डेटा संरचनाएं ===
डेटा प्रबंधित करने के लिए डाइनेमो डी बी  [[हैश फंकशन]] और [[बी-वृक्ष]] का उपयोग करता है। प्रवेश पर, डेटा को पहले विभाजन कुंजी पर हैशिंग के माध्यम के विभिन्न विभाजनों में वितरित किया जाता है। प्रत्येक विभाजन 10 जीबी तक डेटा संग्रहीत कर सकता है और डिफ़ॉल्ट रूप से 1,000 लेखन क्षमता इकाइयों (डब्ल्यूसीयू) और 3,000 अध्ययन की क्षमता इकाइयों (आरसीयू) को संभाल सकता है।<ref name=":2">{{Cite web|url=https://shinesolutions.com/2016/06/27/a-deep-dive-into-dynamodb-partitions/|title=DynamoDB विभाजन में एक गहरा गोता|last=Gunasekara|first=Archie|date=2016-06-27|website=Shine Solutions Group|language=en|access-date=2019-08-03}}</ref> एक आरसीयू आकार में 4KB तक की वस्तुओं के लिए प्रति सेकंड अध्ययन वाली एक [[मजबूत स्थिरता|शक्तिशाली  स्थिरता]] या प्रति सेकंड दो अंतिम स्थिरता अध्ययन का प्रतिनिधित्व करता है।<ref name=":0">{{Cite web |date=August 10, 2012 |title=Amazon DynamoDB डेवलपर गाइड|url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html |access-date=July 18, 2019 |website=AWS}}</ref> एक WCU 1KB आकार तक के मद के लिए प्रति सेकंड एक राइट का प्रतिनिधित्व करता है।
डेटा प्रबंधित करने के लिए डाइनेमो डी बी  [[हैश फंकशन]] और [[बी-वृक्ष]] का उपयोग करता है। प्रवेश पर, डेटा को पहले विभाजन समाधान पर हैशिंग के माध्यम के विभिन्न विभाजनों में वितरित किया जाता है। प्रत्येक विभाजन 10 जीबी तक डेटा संग्रहीत कर सकता है और अभाव रूप से 1,000 लेखन क्षमता इकाइयों (डब्ल्यूसीयू) और 3,000 अध्ययन की क्षमता इकाइयों (आरसीयू) को संभाल सकता है।<ref name=":2">{{Cite web|url=https://shinesolutions.com/2016/06/27/a-deep-dive-into-dynamodb-partitions/|title=DynamoDB विभाजन में एक गहरा गोता|last=Gunasekara|first=Archie|date=2016-06-27|website=Shine Solutions Group|language=en|access-date=2019-08-03}}</ref> एक आरसीयू आकार में 4KB तक की वस्तुओं के लिए प्रति सेकंड अध्ययन वाली एक [[मजबूत स्थिरता|शक्तिशाली  स्थिरता]] या प्रति सेकंड दो अंतिम स्थिरता अध्ययन का प्रतिनिधित्व करता है।<ref name=":0">{{Cite web |date=August 10, 2012 |title=Amazon DynamoDB डेवलपर गाइड|url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html |access-date=July 18, 2019 |website=AWS}}</ref> एक WCU 1KB आकार तक के मद के लिए प्रति सेकंड एक राइट का प्रतिनिधित्व करता है।


डेटा हानि को रोकने के लिए, डाइनेमो डी बी  में प्रतिकृति और दीर्घकालिक भंडारण की दो-स्तरीय  पूर्तिकर प्रणाली है।<ref name=":3">{{Citation|title=AWS re:Invent 2018: Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321)|url=https://www.youtube.com/watch?v=yvBR71D0nAQ|language=en|access-date=2019-08-03}}</ref> प्रत्येक विभाजन में तीन नोड होते हैं, जिनमें से प्रत्येक में उस विभाजन के डेटा की एक प्रति होती है। प्रत्येक नोड में दो डेटा संरचनाएं भी होती हैं: एक बी ट्री जिसका उपयोग वस्तुओं का पता लगाने के लिए किया जाता है, और एक प्रतिकृति लॉग जो नोड में किए गए सभी परिवर्तनों को नोट करता है। डाइनेमो डी बी  समय-समय पर इन दो डेटा संरचनाओं का स्नैपशॉट लेता है और उन्हें अमेज़न S3 में एक महीने के लिए संग्रहीत करता है जिससे इंजीनियर अपने डेटाबेस की पॉइंट-इन-टाइम पुनर्स्थापना कर सकें।
डेटा हानि को रोकने के लिए, डाइनेमो डी बी  में प्रतिकृति और दीर्घकालिक भंडारण की दो-स्तरीय  पूर्तिकर प्रणाली है।<ref name=":3">{{Citation|title=AWS re:Invent 2018: Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321)|url=https://www.youtube.com/watch?v=yvBR71D0nAQ|language=en|access-date=2019-08-03}}</ref> प्रत्येक विभाजन में तीन नोड होते हैं, जिनमें से प्रत्येक में उस विभाजन के डेटा की एक प्रति होती है। प्रत्येक नोड में दो डेटा संरचनाएं भी होती हैं: एक बी ट्री जिसका उपयोग वस्तुओं का पता लगाने के लिए किया जाता है, और एक प्रतिकृति लॉग जो नोड में किए गए सभी परिवर्तनों को नोट करता है। डाइनेमो डी बी  समय-समय पर इन दो डेटा संरचनाओं का स्नैपशॉट लेता है और उन्हें अमेज़न S3 में एक महीने के लिए संग्रहीत करता है जिससे इंजीनियर अपने डेटाबेस की पॉइंट-इन-टाइम पुनर्स्थापना कर सकें।
Line 80: Line 79:
विभाजन और नोड्स के प्रावधान और प्रबंधन जैसे इंजीनियरिंग अतिरिक्त ्स के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परहेज किया।<ref name=":1" />उत्तर में, डाइनेमो डी बी  टीम ने डेटाबेस को प्रबंधित करने के लिए एक सेवा बनाई जिसे वह AutoAdmin कहती है।<ref name=":3" />जब कोई नोड प्रतिक्रिया देना बंद कर देता है तब ऑटोएडमिन उसे दूसरे नोड से डेटा कॉपी करके बदल देता है। जब कोई विभाजन अपनी तीन सीमाओं (RCU, WCU, या 10GB) में से किसी एक से अधिक हो जाता है, तब AutoAdmin डेटा को और अधिक खंडित करने के लिए स्वचालित रूप से अतिरिक्त विभाजन जोड़ देगा।<ref name=":2" />
विभाजन और नोड्स के प्रावधान और प्रबंधन जैसे इंजीनियरिंग अतिरिक्त ्स के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परहेज किया।<ref name=":1" />उत्तर में, डाइनेमो डी बी  टीम ने डेटाबेस को प्रबंधित करने के लिए एक सेवा बनाई जिसे वह AutoAdmin कहती है।<ref name=":3" />जब कोई नोड प्रतिक्रिया देना बंद कर देता है तब ऑटोएडमिन उसे दूसरे नोड से डेटा कॉपी करके बदल देता है। जब कोई विभाजन अपनी तीन सीमाओं (RCU, WCU, या 10GB) में से किसी एक से अधिक हो जाता है, तब AutoAdmin डेटा को और अधिक खंडित करने के लिए स्वचालित रूप से अतिरिक्त विभाजन जोड़ देगा।<ref name=":2" />


रिलेशनल मॉडल में इंडेक्सिंग सिस्टम की तरह, डाइनेमो डी बी  अनुरोध करता है कि किसी तालिका का कोई भी अपडेट तालिका के प्रत्येक सूचकांक में दिखाई दे। डाइनेमो डी बी  इसे लॉग प्रोपेगेटर नामक सेवा का उपयोग करके संभालता है, जो प्रत्येक नोड में प्रतिकृति लॉग की सदस्यता लेता है और आवश्यकतानुसार सूचकांकों को अतिरिक्त पुट, अपडेट और डिलीट अनुरोध भेजता है।<ref name=":3" />क्योंकि सूचकांकों के परिणामस्वरूप लेखन अनुरोधों के लिए पर्याप्त प्रदर्शन हिट होता है, डाइनेमो डी बी  किसी उपयोगकर्ता को किसी भी तालिका में उनमें से अधिकतम पांच की अनुमति देता है।{{citation needed|date=October 2019}}
सम्बंधित  मॉडल में इंडेक्सिंग सिस्टम की तरह, डाइनेमो डी बी  अनुरोध करता है कि किसी तालिका का कोई भी अद्यतन तालिका के प्रत्येक सूचकांक में दिखाई दे। डाइनेमो डी बी  इसे लॉग प्रोपेमार्ग र नामक सेवा का उपयोग करके संभालता है, जो प्रत्येक नोड में प्रतिकृति लॉग की सदस्यता लेता है और आवश्यकतानुसार सूचकांकों को अतिरिक्त स्थापित , अद्यतन और विलोपन  अनुरोध भेजता है।<ref name=":3" />क्योंकि सूचकांकों के परिणामस्वरूप लेखन अनुरोधों के लिए पर्याप्त प्रदर्शन हिट होता है, डाइनेमो डी बी  किसी उपयोगकर्ता को किसी भी तालिका में उनमें से अधिकतम पांच की अनुमति देता है।{{citation needed|date=October 2019}}


=== क्वेरी निष्पादन ===
=== प्रश्नचिहन निष्पादन ===
मान लीजिए कि एक डाइनेमो डी बी  उपयोगकर्ता एक राइट ऑपरेशन (पुट, अपडेट या डिलीट) जारी करता है। जबकि एक विशिष्ट रिलेशनल सिस्टम SQL क्वेरी को रिलेशनल बीजगणित में बदल देगा और अनुकूलन एल्गोरिदम चलाएगा, डाइनेमो डी बी  दोनों प्रक्रियाओं को छोड़ देता है और काम करने का अधिकार प्राप्त कर लेता है।<ref name=":3" />अनुरोध डाइनेमो डी बी  अनुरोध राउटर पर आता है, जो प्रमाणित करता है--क्या अनुरोध वहां से आ रहा है/जिसके होने का प्रमाणित  किया गया है? ––और प्राधिकरण की जांच करता है––क्या अनुरोध सबमिट करने वाले उपयोगकर्ता के पास अपेक्षित अनुमतियां हैं? यह मानते हुए कि ये चेक पास हो गए हैं, सिस्टम उचित विभाजन में निकटताने के लिए अनुरोध की विभाजन कुंजी को हैश कर देता है। अंदर तीन नोड हैं, प्रत्येक में विभाजन के डेटा की एक प्रति है। सिस्टम पहले लीडर नोड को लिखता है, फिर दूसरे नोड को लिखता है, फिर एक सफलता संदेश भेजता है, और अंत में तीसरे नोड को प्रचारित करता रहता है। लेखन सुसंगत होते हैं क्योंकि वे सदैव लीडर नोड के माध्यम से सबसे पहले यात्रा करते हैं।
मान लीजिए कि एक डाइनेमो डी बी  उपयोगकर्ता एक राइट ऑपरेशन (स्थापित , अद्यतन या विलोपन ) जारी करता है। जबकि एक विशिष्ट सम्बंधित  सिस्टम SQL प्रश्नचिहन को सम्बंधित  बीजगणित में बदल देगा और अनुकूलन एल्गोरिदम चलाएगा, डाइनेमो डी बी  दोनों प्रक्रियाओं को छोड़ देता है और काम करने का अधिकार प्राप्त कर लेता है।<ref name=":3" />अनुरोध डाइनेमो डी बी  अनुरोध राउटर पर आता है, जो प्रमाणित करता है--क्या अनुरोध वहां से आ रहा है/जिसके होने का प्रमाणित  किया गया है? ––और प्राधिकरण की जांच करता है––क्या अनुरोध सबमिट करने वाले उपयोगकर्ता के पास अपेक्षित अनुमतियां हैं? यह मानते हुए कि ये चेक पास हो गए हैं, सिस्टम उचित विभाजन में निकटताने के लिए अनुरोध की विभाजन समाधान को हैश कर देता है। अंदर तीन नोड हैं, प्रत्येक में विभाजन के डेटा की एक प्रति है। सिस्टम पहले लीडर नोड को लिखता है, फिर दूसरे नोड को लिखता है, फिर एक सफलता संदेश भेजता है, और अंत में तीसरे नोड को प्रचारित करता रहता है। लेखन सुसंगत होते हैं क्योंकि वे सदैव लीडर नोड के माध्यम से समात्र े पहले यात्रा करते हैं।


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


अब मान लीजिए कि एक डाइनेमो डी बी  उपयोगकर्ता एक गेट ऑपरेशन जारी करता है। अनुरोध राउटर प्रमाणीकरण और प्राधिकरण के साथ पहले की तरह आगे बढ़ता है। इसके पश्चात्, जैसा कि ऊपर बताया गया है, उचित हैश में निकटताने के लिए हमारे पास अपनी विभाजन कुंजी हैश है। अब, हमें एक समस्या का प्रतिक्रिया करना पड़ता है: तीन नोड्स अंततः एक-दूसरे के साथ संगति में हैं, हम कैसे तय कर सकते हैं कि किसकी जांच करनी है? रीड जारी करते समय डाइनेमो डी बी  उपयोगकर्ता को दो विकल्प प्रदान करता है: सुसंगत और अंततः सुसंगत। लगातार पढ़ा गया लीडर नोड पर जाता है। किन्तु स्थिरता-उपलब्धता व्यापार-बंद यहां पुनः से  अपना सिर उठाता है: रीड-हेवी सिस्टम में, सदैव लीडर से अध्ययन से एकल नोड प्रभावित हो सकता है और उपलब्धता अल्प  हो सकती है।
अब मान लीजिए कि एक डाइनेमो डी बी  उपयोगकर्ता एक मार्ग  ऑपरेशन जारी करता है। अनुरोध राउटर प्रमाणीकरण और प्राधिकरण के साथ पहले की तरह आगे बढ़ता है। इसके पश्चात्, जैसा कि ऊपर बताया गया है, उचित हैश में निकटताने के लिए हमारे पास अपनी विभाजन समाधान हैश है। अब, हमें एक समस्या का प्रतिक्रिया करना पड़ता है: तीन नोड्स अंततः एक-दूसरे के साथ संगति में हैं, हम कैसे नियुक्त  कर सकते हैं कि किसकी जांच करनी है? रीड जारी करते समय डाइनेमो डी बी  उपयोगकर्ता को दो विकल्प प्रदान करता है: सुसंगत और अंततः सुसंगत। लगातार पढ़ा गया लीडर नोड पर जाता है। किन्तु स्थिरता-उपलब्धता व्यापार-बंद यहां पुनः से  अपना सिर उठाता है: रीड-हेवी सिस्टम में, सदैव लीडर से अध्ययन से एकल नोड प्रभावित हो सकता है और उपलब्धता अल्प  हो सकती है।


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


==प्रदर्शन==
==प्रदर्शन==
Line 107: Line 106:


=== HTTP एपीआई ===
=== HTTP एपीआई ===
[https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html HTTP API] के विरुद्ध, क्वेरी मद:<syntaxhighlight lang="http">
[https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html HTTP API] के विरुद्ध, प्रश्नचिहन मद:<syntaxhighlight lang="http">
POST / HTTP/1.1
POST / HTTP/1.1
Host: dynamodb.<region>.<domain>;
Host: dynamodb.<region>.<domain>;
Line 230: Line 229:
==यह भी देखें==
==यह भी देखें==
*[[अमेज़न अरोरा]]
*[[अमेज़न अरोरा]]
*[[अमेज़ॅन दस्तावेज़डीबी]]
*[[अमेज़ॅन दस्तावेज़डीबी|अमेज़ॅन प्रपत्र डीबी]]
*[[अमेज़ॅन रेडशिफ्ट]]
*[[अमेज़ॅन रेडशिफ्ट]]
*[[अमेज़ॅन रिलेशनल डेटाबेस सेवा]]
*[[अमेज़ॅन रिलेशनल डेटाबेस सेवा|अमेज़ॅन सम्बंधित  डेटाबेस सेवा]]
*[[संबंधपरक डेटाबेस प्रबंधन प्रणालियों की तुलना]]
*[[संबंधपरक डेटाबेस प्रबंधन प्रणालियों की तुलना]]



Revision as of 00:44, 17 July 2023

अमेज़ॅन डायनामो डीबी
Developer(s)अमेजन डॉट कॉम
Initial releaseJanuary 2012; 12 years ago (2012-01)[1]
Written inजावा
Operating systemरेखित-मंच
Available inअंग्रेज़ी
TypeTemplate:समतल सूची
License स्वामित्व
Websiteaws.amazon.com/dynamodb/

अमेज़न डाइनेमो डी बी एक संपूर्ण रूप से प्रबंधित स्वामित्व वाला एनओएसक्यूएल डेटाबेस है जो अमेज़न डॉट कॉम के माध्यम से अमेज़न वेब सेवाएं विभाग के भाग के रूप में प्रस्तुत किया गया है।[2][3] डाइनेमो डी बी प्रतिकृति (कंप्यूटिंग), स्वत: प्रवर्धन, एन्क्रिप्शन स्थिरता और अन्य सुविधाओं के मध्य आवश्यकता होना, पूर्तिकर के लिए अंतर्निहित समर्थन के साथ एक तीव्र सतत डेटा संरचना समाधान-मान डेटा संग्रह प्रदान करता है।[4][5]

इसके पश्चात् भी तीसरे पक्ष के संबंधित डेटाबेस प्रबंधन सिस्टम को अमेज़ॅन के ग्राहक मूल को नियंत्रण के लिए संघर्ष करना पड़ा है।

पृष्ठभूमि

अमेज़न डॉट कॉम के सीटीओ वर्नर वोगल्स ने 2012 की घोषणा में इस परियोजना के लिए प्रेरणा प्रदान की है।[6] अमेज़ॅन का प्रारंभ सेवाओं के विकेन्द्रीकृत नेटवर्क के रूप में हुई थी। मूल रूप से, सेवाओं की एक-दूसरे के डेटाबेस तक प्रत्यक्ष रूप से निकटता थी। जब यह इंजीनियरिंग संचालन पर एक बाधा बन गया तो सेवाएं सार्वजनिक-प्रतिक्रिया वाले एपीआई के पक्ष में इस प्रत्यक्ष रूप से निकटता स्वरूप से दूरस्थ हो गईं है। इसके पश्चात् भी तीसरे पक्ष के संबंधित डेटाबेस प्रबंधन सिस्टम को अमेज़ॅन के ग्राहक मूल को नियंत्रण के लिए संघर्ष करना पड़ा है। इसकी पराकाष्ठा 2004 के छुट्टियों के समय हुई, जब उच्च यातायात के कारण अनेक प्रौद्योगिकियाँ विफल हो गईं थी।


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

भंडारण दक्षता से अनुबंध करने वाली सामग्री, अमेज़ॅन की प्रतिक्रिया डायनमो (भंडारण प्रणाली) थी, आंतरिक उपयोग के लिए बनाया गया एक अत्यधिक उपलब्ध समाधान-मान भण्डार है।[6] ऐसा लगता था कि डायनमो में वह सब कुछ था जिसकी उनके इंजीनियरों को आवश्यकता थी, किन्तु इसे अपनाने में विलम्ब हुआ है। अमेज़ॅन के विकासक ने एस3 और सामान्तः डीबी के साथ "उचित कार्य" रचना स्वरूप को चयनित करा है। चूंकि इन प्रणालियों में ध्यान देने योग्य रचना कमजोरियों थीं, किन्तु उन्होंने हार्डवेयर प्रावधान और प्रवर्धन और डेटा को पुनः से विभाजित करने के अतिरिक्त की अनुरोध नहीं किया है। अमेज़ॅन की एनओएसक्यूएल विधि का आगामी संस्करण, डाइनेमो डी बी, इन डेटाबेस प्रबंधन कार्यों को स्वचालित करता है।


अवलोकन

Web console
वेब कंसोल

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

डायनेमो डीबी सूची

डाइनेमो डी बी तालिका वस्तुओं का एक तार्किक समूह है, जो इस तालिका में संग्रहीत डेटा का प्रतिनिधित्व करती है। डाइनेमो डी बी की एनओएसक्यूएल प्रकृति को अवलोकन करते हुए, तालिकाओं के लिए यह आवश्यक नहीं है कि तालिका के सभी मद किसी पूर्व निर्धारित योजना के अनुरूप होता है।[8]


डायनेमो डीबी मद

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

किसी मद को उसकी विशेषताओं के उप-समूह जिसे समाधान कहा जाता है, का उपयोग करके तालिका में विशिष्ट रूप से निर्धारित करा जाता है।[8]

डाइनेमो डी बी कुंजियाँ

प्राथमिक समाधान विशेषताओं का एक समूह है जो डायनेमो डीबी तालिका में विशिष्ट रूप से मद की अभिज्ञान करती है। डाइनेमो डी बी तालिका के निर्माण के लिए प्राथमिक समाधान की परिभाषा की आवश्यकता थी। डायनेमो डीबी तालिका में प्रत्येक मद में प्राथमिक समाधान बनाने वाली सभी विशेषताओं का होना आवश्यक है, और तालिका में किसी भी दो मद में एक ही समाधान नहीं हो सकती है। डायनमो डीबी में प्राथमिक समाधान में एक या दो विशेषताएँ सम्मिलित हो सकती हैं।

जब प्राथमिक समाधान मात्र एक विशेषता से बनी होती है, तब इसे विभाजन समाधान कहा जाता है। विभाजन समाधान डेटा मद का भौतिक स्थान नियुक्त करती है। इस स्थिति में, तालिका में किसी भी दो मद में समान विभाजन कुंजियाँ नहीं हो सकती हैं।

जब प्राथमिक समाधान दो विशेषताओं से बनी होती है, तब प्रथम को विभाजन समाधान और संक्षेप समाधान कहा जाता है। विभाजन समाधान डेटा का भौतिक स्थान नियुक्त करती है, और संक्षेप समाधान उस भौतिक स्थान के अंदर अभिलेख की सापेक्ष तार्किक स्थिति नियुक्त करती है। इस स्थितियों में, तालिका में दो मदों में एक ही विभाजन समाधान हो सकती है, किन्तु विभाजन में किसी भी दो मद में एक ही संक्षेप समाधान नहीं हो सकती है। दूसरे शब्दों में, विभाजन समाधान और संक्षेप समाधान के दिए गए संयोजन की प्रत्याभुति है कि डायनेमो डीबी तालिका में इसके साथ अधिकतम एक मद सम्मलित होता है।[8]


डायनेमो डीबी डेटा प्रकार

डाइनेमो डी बी संख्यात्मक, श्रृंखला, बूलियन, प्रपत्र और समूह डेटा प्रकारों का समर्थन करता है।[9]


डायनेमो डीबी सूचकांक

किसी तालिका की प्राथमिक समाधान डाइनेमो डी बी तालिका का अभाव या प्राथमिक सूचकांक है।

इसके अतिरिक्त, डाइनेमो डी बी तालिका में द्वितीयक सूचकांक हो सकते हैं। एक द्वितीयक सूचकांक को एक विशेषता पर परिभाषित किया जाता है जो प्राथमिक सूचकांक के रूप में विभाजन समाधान या संक्षेप समाधान से भिन्न होता है।

जब एक द्वितीयक सूचकांक में प्राथमिक सूचकांक के समान विभाजन समाधान होती है किन्तु एक प्रथक संक्षेप समाधान होती है, तब इसे स्थानीय माध्यमिक सूचकांक कहा जाता है।

जब प्राथमिक सूचकांक और माध्यमिक सूचकांक में प्रथक -प्रथक विभाजन समाधान होती है, तब माध्यमिक सूचकांक को वैश्विक माध्यमिक सूचकांक के रूप में जाना जाता है।[8]


विकास संबंधी विचार

वाक्य - विन्यास

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

सिस्टम आर्किटेक्चर

डाइनेमो डी बी में निर्माण तालिका

डेटा संरचनाएं

डेटा प्रबंधित करने के लिए डाइनेमो डी बी हैश फंकशन और बी-वृक्ष का उपयोग करता है। प्रवेश पर, डेटा को पहले विभाजन समाधान पर हैशिंग के माध्यम के विभिन्न विभाजनों में वितरित किया जाता है। प्रत्येक विभाजन 10 जीबी तक डेटा संग्रहीत कर सकता है और अभाव रूप से 1,000 लेखन क्षमता इकाइयों (डब्ल्यूसीयू) और 3,000 अध्ययन की क्षमता इकाइयों (आरसीयू) को संभाल सकता है।[10] एक आरसीयू आकार में 4KB तक की वस्तुओं के लिए प्रति सेकंड अध्ययन वाली एक शक्तिशाली स्थिरता या प्रति सेकंड दो अंतिम स्थिरता अध्ययन का प्रतिनिधित्व करता है।[11] एक WCU 1KB आकार तक के मद के लिए प्रति सेकंड एक राइट का प्रतिनिधित्व करता है।

डेटा हानि को रोकने के लिए, डाइनेमो डी बी में प्रतिकृति और दीर्घकालिक भंडारण की दो-स्तरीय पूर्तिकर प्रणाली है।[12] प्रत्येक विभाजन में तीन नोड होते हैं, जिनमें से प्रत्येक में उस विभाजन के डेटा की एक प्रति होती है। प्रत्येक नोड में दो डेटा संरचनाएं भी होती हैं: एक बी ट्री जिसका उपयोग वस्तुओं का पता लगाने के लिए किया जाता है, और एक प्रतिकृति लॉग जो नोड में किए गए सभी परिवर्तनों को नोट करता है। डाइनेमो डी बी समय-समय पर इन दो डेटा संरचनाओं का स्नैपशॉट लेता है और उन्हें अमेज़न S3 में एक महीने के लिए संग्रहीत करता है जिससे इंजीनियर अपने डेटाबेस की पॉइंट-इन-टाइम पुनर्स्थापना कर सकें।

प्रत्येक विभाजन के अंदर, तीन नोड्स में से एक को लीडर नोड नामित किया गया है। सभी लेखन कार्य प्रचार से पहले लीडर नोड के माध्यम से यात्रा करते हैं, जो डाइनेमो डी बी में लेखन को सुसंगत बनाता है। अपनी स्थिति बनाए रखने के लिए, लीडर हर 1.5 सेकंड में एक दूसरे नोड को दिल की धड़कन भेजता है। यदि किसी अन्य नोड को दिल की धड़कन मिलना बंद हो जाए, तब यह एक नए नेता के चुनाव की प्रारंभिक कर सकता है। डाइनेमो डी बी नेताओं का चुनाव करने के लिए Paxos (कंप्यूटर विज्ञान) का उपयोग करता है।

विभाजन और नोड्स के प्रावधान और प्रबंधन जैसे इंजीनियरिंग अतिरिक्त ्स के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परहेज किया।[7]उत्तर में, डाइनेमो डी बी टीम ने डेटाबेस को प्रबंधित करने के लिए एक सेवा बनाई जिसे वह AutoAdmin कहती है।[12]जब कोई नोड प्रतिक्रिया देना बंद कर देता है तब ऑटोएडमिन उसे दूसरे नोड से डेटा कॉपी करके बदल देता है। जब कोई विभाजन अपनी तीन सीमाओं (RCU, WCU, या 10GB) में से किसी एक से अधिक हो जाता है, तब AutoAdmin डेटा को और अधिक खंडित करने के लिए स्वचालित रूप से अतिरिक्त विभाजन जोड़ देगा।[10]

सम्बंधित मॉडल में इंडेक्सिंग सिस्टम की तरह, डाइनेमो डी बी अनुरोध करता है कि किसी तालिका का कोई भी अद्यतन तालिका के प्रत्येक सूचकांक में दिखाई दे। डाइनेमो डी बी इसे लॉग प्रोपेमार्ग र नामक सेवा का उपयोग करके संभालता है, जो प्रत्येक नोड में प्रतिकृति लॉग की सदस्यता लेता है और आवश्यकतानुसार सूचकांकों को अतिरिक्त स्थापित , अद्यतन और विलोपन अनुरोध भेजता है।[12]क्योंकि सूचकांकों के परिणामस्वरूप लेखन अनुरोधों के लिए पर्याप्त प्रदर्शन हिट होता है, डाइनेमो डी बी किसी उपयोगकर्ता को किसी भी तालिका में उनमें से अधिकतम पांच की अनुमति देता है।[citation needed]

प्रश्नचिहन निष्पादन

मान लीजिए कि एक डाइनेमो डी बी उपयोगकर्ता एक राइट ऑपरेशन (स्थापित , अद्यतन या विलोपन ) जारी करता है। जबकि एक विशिष्ट सम्बंधित सिस्टम SQL प्रश्नचिहन को सम्बंधित बीजगणित में बदल देगा और अनुकूलन एल्गोरिदम चलाएगा, डाइनेमो डी बी दोनों प्रक्रियाओं को छोड़ देता है और काम करने का अधिकार प्राप्त कर लेता है।[12]अनुरोध डाइनेमो डी बी अनुरोध राउटर पर आता है, जो प्रमाणित करता है--क्या अनुरोध वहां से आ रहा है/जिसके होने का प्रमाणित किया गया है? ––और प्राधिकरण की जांच करता है––क्या अनुरोध सबमिट करने वाले उपयोगकर्ता के पास अपेक्षित अनुमतियां हैं? यह मानते हुए कि ये चेक पास हो गए हैं, सिस्टम उचित विभाजन में निकटताने के लिए अनुरोध की विभाजन समाधान को हैश कर देता है। अंदर तीन नोड हैं, प्रत्येक में विभाजन के डेटा की एक प्रति है। सिस्टम पहले लीडर नोड को लिखता है, फिर दूसरे नोड को लिखता है, फिर एक सफलता संदेश भेजता है, और अंत में तीसरे नोड को प्रचारित करता रहता है। लेखन सुसंगत होते हैं क्योंकि वे सदैव लीडर नोड के माध्यम से समात्र े पहले यात्रा करते हैं।

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

अब मान लीजिए कि एक डाइनेमो डी बी उपयोगकर्ता एक मार्ग ऑपरेशन जारी करता है। अनुरोध राउटर प्रमाणीकरण और प्राधिकरण के साथ पहले की तरह आगे बढ़ता है। इसके पश्चात्, जैसा कि ऊपर बताया गया है, उचित हैश में निकटताने के लिए हमारे पास अपनी विभाजन समाधान हैश है। अब, हमें एक समस्या का प्रतिक्रिया करना पड़ता है: तीन नोड्स अंततः एक-दूसरे के साथ संगति में हैं, हम कैसे नियुक्त कर सकते हैं कि किसकी जांच करनी है? रीड जारी करते समय डाइनेमो डी बी उपयोगकर्ता को दो विकल्प प्रदान करता है: सुसंगत और अंततः सुसंगत। लगातार पढ़ा गया लीडर नोड पर जाता है। किन्तु स्थिरता-उपलब्धता व्यापार-बंद यहां पुनः से अपना सिर उठाता है: रीड-हेवी सिस्टम में, सदैव लीडर से अध्ययन से एकल नोड प्रभावित हो सकता है और उपलब्धता अल्प हो सकती है।

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

प्रदर्शन

क्षमता टैब, प्रवर्धन

डाइनेमो डी बी प्रदर्शन मेट्रिक्स को उजागर करता है जो उपयोगकर्ताओं को इसे सही ढंग से व्यवस्थित करने में सहायता करता है और डाइनेमो डी बी का उपयोग करने वाले अनुप्रयोगों को सुचारू रूप से चालू रखता है:

इन मेट्रिक्स को अमेज़ॅन वेब सेवाएं मैनेजमेंट कंसोल का उपयोग करके, एडब्ल्यूएस अल्प ांड लाइन इंटरफेस का उपयोग करके, या अमेज़ॅन क्लाउडवॉच के साथ एकीकृत एक निगरानी उपकरण का उपयोग करके ट्रैक किया जा सकता है।[14]


भाषा बाइंडिंग

डायनेमो डीबी भाषा बाइंडिंग वाली भाषाओं और फ्रेमवर्क में जावा (प्रोग्रामिंग भाषा), जावास्क्रिप्ट, नोड.जेएस, गो (प्रोग्रामिंग भाषा), सी शार्प (प्रोग्रामिंग भाषा)|सी# .NET फ्रेमवर्क|.नेट, पर्ल, पीएचपी, पायथन (प्रोग्रामिंग भाषा) सम्मिलित हैं। ), रूबी (प्रोग्रामिंग भाषा), रस्ट (प्रोग्रामिंग भाषा), हास्केल (प्रोग्रामिंग भाषा), एरलांग (प्रोग्रामिंग भाषा), डीजेंगो (वेब ​​फ्रेमवर्क), और ग्रेल्स (ढांचा) [15]


कोड उदाहरण

AWS डाइनेमो डी बी : मद दृश्य

HTTP एपीआई

HTTP API के विरुद्ध, प्रश्नचिहन मद:

POST / HTTP/1.1
Host: dynamodb.<region>.<domain>;
Accept-Encoding: identity
Content-Length: <PayloadSizeBytes>
User-Agent: <UserAgentString>
Content-Type: application/x-amz-json-1.0
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature>
X-Amz-Date: <Date>
X-Amz-Target: DynamoDB_20120810.Query

{
    "TableName": "Reply",
    "IndexName": "PostedBy-Index",
    "Limit": 3,
    "ConsistentRead": true,
    "ProjectionExpression": "Id, PostedBy, ReplyDateTime",
    "KeyConditionExpression": "Id = :v1 AND PostedBy BETWEEN :v2a AND :v2b",
    "ExpressionAttributeValues": {
        ":v1": {"S": "Amazon DynamoDB#DynamoDB Thread 1"},
        ":v2a": {"S": "User A"},
        ":v2b": {"S": "User C"}
    },
    "ReturnConsumedCapacity": "TOTAL"
}

नमूना प्रतिक्रिया:

HTTP/1.1 200 OK
x-amzn-RequestId: <RequestId>
x-amz-crc32: <Checksum>
Content-Type: application/x-amz-json-1.0
Content-Length: <PayloadSizeBytes>
Date: <Date>
 {
    "ConsumedCapacity": {
        "CapacityUnits": 1,
        "TableName": "Reply"
    },
    "Count": 2,
    "Items": [
        {
            "ReplyDateTime": {"S": "2015-02-18T20:27:36.165Z"},
            "PostedBy": {"S": "User A"},
            "Id": {"S": "Amazon DynamoDB#DynamoDB Thread 1"}
        },
        {
            "ReplyDateTime": {"S": "2015-02-25T20:27:36.165Z"},
            "PostedBy": {"S": "User B"},
            "Id": {"S": "Amazon DynamoDB#DynamoDB Thread 1"}
        }
    ],
    "ScannedCount": 2
}


जाओ

गो में मद प्राप्त करें (प्रोग्रामिंग भाषा):

getItemInput := &dynamodb.GetItemInput{
	TableName: aws.String("happy-marketer"),
	Key: map[string]*dynamodb.AttributeValue{
		"pk": {
			S: aws.String("project"),
		},
		"sk": {
			S: aws.String(email + " " + name),
		},
	},
}
getItemOutput, err := dynamodbClient.GetItem(getItemInput)

Go में DeleteItem (प्रोग्रामिंग भाषा):

deleteItemInput := &dynamodb.DeleteItemInput{
	TableName: aws.String("happy-marketer"),
	Key: map[string]*dynamodb.AttributeValue{
		"pk": {
			S: aws.String("project"),
		},
		"sk": {
			S: aws.String(email + " " + name),
		},
	},
}

_, err := dynamodbClient.DeleteItem(deleteItemInput)
if err != nil {
	panic(err)
}

UpdateItem का उपयोग करके गो में -amazon-dynamodb-expression-builder-in-the-aws-sdk-for-go/ एक्सप्रेशन बिल्डर:

update := expression.Set(
	expression.Name(name),
	expression.Value(value),
)

expr, err := expression.NewBuilder().WithUpdate(update).Build()
if err != nil {
	panic(err)
}

updateItemInput := &dynamodb.UpdateItemInput{
	TableName: aws.String(tableName),
	Key: map[string]*dynamodb.AttributeValue{
		"pk": {
			S: aws.String("project"),
		},
		"sk": {
			S: aws.String("mySortKeyValue"),
		},
	},
	UpdateExpression:          expr.Update(),
	ExpressionAttributeNames:  expr.Names(),
	ExpressionAttributeValues: expr.Values(),
}
fmt.Printf("updateItemInput: %#v\n", updateItemInput)

_, err = dynamodbClient.UpdateItem(updateItemInput)
if err != nil {
	panic(err)
}


यह भी देखें

संदर्भ

  1. "Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications - All Things Distributed". www.allthingsdistributed.com. 18 January 2012.
  2. Clark, Jack (2012-01-19). "अमेज़न DynamoDB क्लाउड डेटाबेस सेवा पर स्विच करता है". ZDNet. Retrieved 2012-01-21.
  3. "Fast NoSQL Key-Value Database – Amazon DynamoDB – Amazon Web Services". Amazon Web Services, Inc. (in English). Retrieved 2023-05-28.
  4. "Amazon DynamoDB Features | NoSQL Key-Value Database | Amazon Web Services". Amazon Web Services, Inc. (in English). Retrieved 2023-05-28.
  5. "What is Amazon DynamoDB? - Amazon DynamoDB". docs.aws.amazon.com. Retrieved 2023-05-28.
  6. 6.0 6.1 Vogels, Werner (2012-01-18). "Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications". All Things Distributed blog. Retrieved 2012-01-21.
  7. 7.0 7.1 DeCandia, Giuseppe; Hastorun, Deniz; Jampani, Madan; Kakulapati, Gunavardhan; Lakshman, Avinash; Pilchin, Alex; Sivasubramanian, Swaminathan; Vosshall, Peter; Vogels, Werner (October 2007). "Dynamo: Amazon's Highly Available Key–value Store". SIGOPS Oper. Syst. Rev. 41 (6): 205–220. doi:10.1145/1323293.1294281. ISSN 0163-5980.
  8. 8.0 8.1 8.2 8.3 "Amazon DynamoDB के मुख्य घटक - Amazon DynamoDB". docs.aws.amazon.com. Retrieved 2023-05-28.
  9. "Amazon DynamoDB में समर्थित डेटा प्रकार और नामकरण नियम - Amazon DynamoDB". docs.aws.amazon.com. Retrieved 2023-05-28.
  10. 10.0 10.1 Gunasekara, Archie (2016-06-27). "DynamoDB विभाजन में एक गहरा गोता". Shine Solutions Group (in English). Retrieved 2019-08-03.
  11. "Amazon DynamoDB डेवलपर गाइड". AWS. August 10, 2012. Retrieved July 18, 2019.
  12. 12.0 12.1 12.2 12.3 AWS re:Invent 2018: Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321) (in English), retrieved 2019-08-03
  13. "शीर्ष DynamoDB प्रदर्शन मेट्रिक्स". 15 September 2015.
  14. "DynamoDB मेट्रिक्स कैसे एकत्र करें". 15 September 2015.
  15. "Amazon DynamoDB लाइब्रेरीज़, मैपर्स, और नकली कार्यान्वयन प्रचुर मात्रा में!". Amazon Web Services. 5 April 2012.


बाहरी संबंध