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

From Vigyanwiki
(Created page with "{{incomprehensible|date=August 2022}} {{Short description|NoSQL database service}} {{Infobox software | logo = DynamoDB.png | name = Amazon DynamoDB | developer = Amazon.com...")
 
No edit summary
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{incomprehensible|date=August 2022}}
{{Short description|NoSQL database service}}
{{Short description|NoSQL database service}}
{{Infobox software
{{Infobox software
| logo = DynamoDB.png
| logo = DynamoDB.png
| name = Amazon DynamoDB
| name = अमेज़ॅन डायनामो डीबी
| developer = [[Amazon.com]]
| developer = [[अमेजन डॉट कॉम]]
| released = {{Release date and age|2012|01}}<ref>{{cite web|url=https://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html|title=Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications - All Things Distributed|website=www.allthingsdistributed.com|date=18 January 2012 }}</ref>
| released = {{Release date and age|2012|01}}<ref>{{cite web|url=https://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html|title=Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications - All Things Distributed|website=www.allthingsdistributed.com|date=18 January 2012 }}</ref>
| programming language = [[Java (programming language)|Java]]
| programming language = [[जावा (कार्यक्रम भाषा)|जावा]]
| operating system = [[Cross-platform]]
| operating system = [[रेखित-मंच]]
| language = English
| language = अंग्रेज़ी
| genre = {{flatlist|  
| genre = {{समतल सूची|
* [[Document-oriented database]]  
* [[प्रपत्र -उन्मुख डेटाबेस]]
* [[Key–value database]]
* [[कुंजी-मूल्य डेटाबेस]]
}}
}}
| license = [[Proprietary software|Proprietary]]
| license = [[ स्वामित्व सॉफ्टवेर| स्वामित्व]]
| website = {{URL|http://aws.amazon.com/dynamodb/}}
| website = {{URL|http://aws.amazon.com/dynamodb/}}
}}
}}
Amazon DynamoDB एक पूरी तरह से प्रबंधित स्वामित्व वाला [[NoSQL]] [[डेटाबेस]] है जो Amazon.com द्वारा Amazon वेब सर्विसेज पोर्टफोलियो के हिस्से के रूप में पेश किया गया है।<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> DynamoDB [[प्रतिकृति (कंप्यूटिंग)]], [[ऑटोस्केलिंग]], आराम पर एन्क्रिप्शन और अन्य सुविधाओं के बीच ऑन-डिमांड बैकअप के लिए अंतर्निहित समर्थन के साथ एक तेज़ [[सतत डेटा संरचना]] [[कुंजी-मूल्य डेटा संग्रह]] | की-वैल्यू डेटास्टोर प्रदान करता है।<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>
==पृष्ठभूमि==
==पृष्ठभूमि==
Amazon.com के सीटीओ [[वर्नर पक्षी]] ने अपनी 2012 की घोषणा में इस परियोजना के लिए प्रेरणा प्रदान की।<ref name="Vogels 2012-01-18">{{cite web |last=Vogels |first=Werner |date=2012-01-18 |title=Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications |url=http://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html |access-date=2012-01-21 |work=All Things Distributed blog}}</ref> अमेज़ॅन की शुरुआत सेवाओं के विकेन्द्रीकृत नेटवर्क के रूप में हुई। मूल रूप से, सेवाओं की एक-दूसरे के डेटाबेस तक सीधी पहुंच थी। जब यह इंजीनियरिंग संचालन पर एक बाधा बन गया, तो सेवाएं सार्वजनिक-सामना वाले [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] के पक्ष में इस सीधी पहुंच पैटर्न से दूर चली गईं। फिर भी, तृतीय-पक्ष [[ संबंध का डेटाबेस ]] को अमेज़ॅन के ग्राहक आधार को संभालने के लिए संघर्ष करना पड़ा। इसकी परिणति 2004 के छुट्टियों के मौसम के दौरान हुई, जब उच्च यातायात के कारण कई प्रौद्योगिकियाँ विफल हो गईं।
अमेज़न डॉट कॉम के सीटीओ [[वर्नर पक्षी|वर्नर वोगल्स]] ने 2012 की घोषणा में इस परियोजना के लिए प्रेरणा प्रदान की है।<ref name="Vogels 2012-01-18">{{cite web |last=Vogels |first=Werner |date=2012-01-18 |title=Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications |url=http://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html |access-date=2012-01-21 |work=All Things Distributed blog}}</ref> अमेज़ॅन का प्रारंभ सेवाओं के विकेन्द्रीकृत नेटवर्क के रूप में हुआ था। मूल रूप से सेवाओं का एक-दूसरे के डेटाबेस तक प्रत्यक्ष रूप से निकटता थी। जब यह इंजीनियरिंग संचालन पर एक बाधा बन गया तो सेवाएं सार्वजनिक-प्रतिक्रिया वाले [[अप्लिकेशन प्रोग्रामिंग अंतरफलक|एपीआई]] के पक्ष में इस प्रत्यक्ष रूप से निकटता स्वरूप से दूरस्थ हो गईं है। इसके पश्चात् भी तीसरे पक्ष के [[ संबंध का डेटाबेस |संबंधित डेटाबेस]] प्रबंधन सिस्टम को अमेज़ॅन के ग्राहक मूल को नियंत्रण के लिए संघर्ष करना पड़ा है। इसकी पराकाष्ठा 2004 के छुट्टियों के समय हुई, जब उच्च यातायात के कारण अनेक प्रौद्योगिकियाँ विफल हो गईं थी। 


डेटा अतिरेक को कम करने के लिए इंजीनियर इन रिलेशनल सिस्टम को सामान्य कर रहे थे, एक डिज़ाइन जो भंडारण के लिए अनुकूलित है। बलिदान: उन्होंने डेटा के एक दिए गए आइटम (उदाहरण के लिए, उत्पाद डेटाबेस में किसी उत्पाद से संबंधित जानकारी) को कई संबंधों में संग्रहीत किया, और एक प्रश्न के लिए असंयुक्त भागों को इकट्ठा करने में समय लगता है। अमेज़ॅन की कई सेवाओं ने अपने डेटा पर अधिकतर प्राथमिक-कुंजी पढ़ने की मांग की, और गति को सर्वोच्च प्राथमिकता के साथ, इन टुकड़ों को एक साथ रखना बेहद कठिन था।<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=":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" />ऐसा लगता था कि डायनमो में वह सब कुछ था जिसकी उनके इंजीनियरों को ज़रूरत थी, लेकिन इसे अपनाने में देरी हुई। अमेज़ॅन के डेवलपर्स ने [[अमेज़न हो सकता है]] और सिंपलडीबी के साथ सिर्फ काम करने वाले डिज़ाइन पैटर्न को चुना। हालाँकि इन प्रणालियों में ध्यान देने योग्य डिज़ाइन खामियाँ थीं, लेकिन उन्होंने हार्डवेयर प्रावधान और स्केलिंग और डेटा को फिर से विभाजित करने के ओवरहेड की मांग नहीं की। अमेज़ॅन की NoSQL तकनीक का अगला संस्करण, DynamoDB, इन डेटाबेस प्रबंधन कार्यों को स्वचालित करता है।


स्टोरेज दक्षता से अनुबंध करने वाली सामग्री, अमेज़ॅन की प्रतिक्रिया डायनमो (स्टोरेज सिस्टम) थी, यह आंतरिक उपयोग के लिए बनाया गया अत्यधिक उपलब्ध समाधान-मान स्टोरेज है।<ref name="Vogels 2012-01-18" /> ऐसा लगता था कि डायनमो में वह सब कुछ था जिसकी उनके इंजीनियरों को आवश्यकता थी, किन्तु इसे अपनाने में विलम्ब हुआ है। अमेज़ॅन के विकासक ने एस3 और सामान्तः डीबी के साथ [[अमेज़न हो सकता है|"उचित कार्य"]] रचना स्वरूप को चयनित किया है। चूंकि इन प्रणालियों में ध्यान देने योग्य रचना कमजोरियों थीं, किन्तु उन्होंने हार्डवेयर प्रावधान और प्रवर्धन और डेटा को पुनः से विभाजित करने के अतिरिक्त की अनुरोध नहीं किया है। अमेज़ॅन की एनओएसक्यूएल विधि का आगामी संस्करण, डाइनेमो डी बी, इन डेटाबेस प्रबंधन कार्यों को स्वचालित करता है।
==अवलोकन==
==अवलोकन==
[[File:Dynamodb-aws-console.png|alt=Web console|thumb|वेब कंसोल]]DynamoDB में, डेटा को तालिकाओं में आइटम के रूप में संग्रहीत किया जाता है, और सूचकांकों का उपयोग करके पूछताछ की जा सकती है। आइटम में कई विशेषताएँ शामिल होती हैं जो कई डेटा प्रकारों से संबंधित हो सकती हैं, और एक कुंजी की आवश्यकता होती है जो तालिका में अद्वितीय होने की उम्मीद है।
[[File:Dynamodb-aws-console.png|alt=Web console|thumb|वेब सकर्मक क्रिया]]डाइनेमो डी बी में, डेटा को तालिकाओं में मद के रूप में संग्रहीत किया जाता है, और सूचकांकों का उपयोग करके विवरण प्राप्त किया जा सकता है। मद में अनेक विशेषताएँ सम्मिलित होती हैं जो अनेक डेटा प्रकारों से संबंधित हो सकती हैं, और समाधान की आवश्यकता होती है जो तालिका में अद्वितीय होने की अपेक्षा है।
 
=== डायनेमोडीबी टेबल्स ===
DynamoDB तालिका वस्तुओं का एक तार्किक समूह है, जो इस तालिका में संग्रहीत डेटा का प्रतिनिधित्व करती है। DynamoDB की NoSQL प्रकृति को देखते हुए, तालिकाओं के लिए यह आवश्यक नहीं है कि तालिका के सभी आइटम किसी पूर्वनिर्धारित स्कीमा के अनुरूप हों।<ref name=":4">{{Cite web |title=Amazon DynamoDB के मुख्य घटक - Amazon DynamoDB|url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html |access-date=2023-05-28 |website=docs.aws.amazon.com}}</ref>
 
 
=== डायनेमोडीबी आइटम ===
DynamoDB में एक आइटम विशेषताओं का एक सेट है जिसे किसी तालिका में विशिष्ट रूप से पहचाना जा सकता है। एक विशेषता एक परमाणु डेटा इकाई है जो अपने आप में एक कुंजी-मूल्य जोड़ी है। कुंजी हमेशा स्ट्रिंग प्रकार की होती है, जबकि मान एकाधिक डेटा प्रकारों में से एक का हो सकता है।
 
किसी आइटम को उसकी विशेषताओं के सबसेट जिसे कुंजी कहा जाता है, का उपयोग करके तालिका में विशिष्ट रूप से पहचाना जाता है।<ref name=":4" />
 
 
==== DynamoDB में कुंजियाँ ====
प्राथमिक कुंजी विशेषताओं का एक सेट है जो डायनेमोडीबी तालिका में विशिष्ट रूप से आइटम की पहचान करती है। DynamoDB तालिका के निर्माण के लिए प्राथमिक कुंजी की परिभाषा की आवश्यकता थी। डायनेमोडीबी तालिका में प्रत्येक आइटम में प्राथमिक कुंजी बनाने वाली सभी विशेषताओं का होना आवश्यक है, और तालिका में किसी भी दो आइटम में एक ही कुंजी नहीं हो सकती है। डायनमो डीबी में प्राथमिक कुंजी में एक या दो विशेषताएँ शामिल हो सकती हैं।
 
जब प्राथमिक कुंजी केवल एक विशेषता से बनी होती है, तो इसे विभाजन कुंजी कहा जाता है। विभाजन कुंजी डेटा आइटम का भौतिक स्थान तय करती है। इस स्थिति में, तालिका में किसी भी दो आइटम में समान विभाजन कुंजियाँ नहीं हो सकती हैं।
 
जब प्राथमिक कुंजी दो विशेषताओं से बनी होती है, तो पहली को विभाजन कुंजी और सॉर्ट कुंजी कहा जाता है। विभाजन कुंजी डेटा का भौतिक स्थान तय करती है, और सॉर्ट कुंजी उस भौतिक स्थान के अंदर रिकॉर्ड की सापेक्ष तार्किक स्थिति तय करती है। इस मामले में, तालिका में दो आइटमों में एक ही विभाजन कुंजी हो सकती है, लेकिन विभाजन में किसी भी दो आइटम में एक ही सॉर्ट कुंजी नहीं हो सकती है। दूसरे शब्दों में, विभाजन कुंजी और सॉर्ट कुंजी के दिए गए संयोजन की गारंटी है कि डायनेमोडीबी तालिका में इसके साथ अधिकतम एक आइटम जुड़ा होगा।<ref name=":4" />
 
 
=== डायनेमोडीबी डेटा प्रकार ===
DynamoDB संख्यात्मक, स्ट्रिंग, बूलियन, दस्तावेज़ और सेट डेटा प्रकारों का समर्थन करता है।<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">{{Cite web |title=Amazon DynamoDB के मुख्य घटक - Amazon DynamoDB|url=https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html |access-date=2023-05-28 |website=docs.aws.amazon.com}}</ref>
=== डायनेमो डीबी मद ===
डाइनेमो डी बी में मद विशेषताओं का समूह है जिसे किसी तालिका में विशिष्ट रूप से निर्धारित जा सकता है। विशेषता परमाणु डेटा इकाई है जो अपने आप में समाधान-मान युग्मन है। समाधान सदैव श्रृंखला प्रकार की होती है, जबकि मान एकाधिक डेटा प्रकारों में से एक का हो सकता है।


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


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


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


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


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


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


==सिस्टम आर्किटेक्चर==
==सिस्टम संरचनाएं==
[[File:Dynamodb--table-creation.png|thumb|DynamoDB में निर्माण तालिका]]
[[File:Dynamodb--table-creation.png|thumb|डाइनेमो डी बी में निर्माण तालिका]]


=== डेटा संरचनाएं ===
=== डेटा संरचनाएं ===
डेटा प्रबंधित करने के लिए DynamoDB [[हैश फंकशन]] और [[बी-वृक्ष]] का उपयोग करता है। प्रवेश पर, डेटा को पहले विभाजन कुंजी पर हैशिंग द्वारा विभिन्न विभाजनों में वितरित किया जाता है। प्रत्येक विभाजन 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> आरसीयू आकार में 4 केबी तक की विषयों के लिए प्रति सेकंड अध्ययन वाली [[मजबूत स्थिरता|अंतिम स्थिरता]] या प्रति सेकंड दो अंततः स्थिरता अध्ययन का प्रतिनिधित्व करता है।<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> डब्लू सी यू 1के बी आकार तक के मद के लिए प्रति सेकंड प्रति लेखन का प्रतिनिधित्व करता है।डेटा हानि को रोकने के लिए, डाइनेमो डी बी में प्रतिकृति और दीर्घकालिक स्टोरेज की दो-स्तरीय बैकअप सिस्टम है।<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> प्रत्येक विभाजन में तीन बिंदु होते हैं, जिनमें से प्रत्येक में उस विभाजन के डेटा की एक प्रति होती है। प्रत्येक बिंदु में दो डेटा संरचनाएं भी होती हैं: बी ट्री जिसका उपयोग विषयों का पता लगाने के लिए किया जाता है, और प्रतिकृति लॉग जो बिंदु में किए गए सभी परिवर्तनों को टिप्पणियाँ करता है। डाइनेमो डी बी समय-समय पर इन दो डेटा संरचनाओं का अनौपचारिक चित्र लेता है और उन्हें अमेज़न एस3 में एक महीने के लिए संग्रहीत करता है, जिससे इंजीनियर अपने डेटाबेस की समय में इंगित पुनर्स्थापना कर सकते है।
 
डेटा हानि को रोकने के लिए, DynamoDB में प्रतिकृति और दीर्घकालिक भंडारण की दो-स्तरीय बैकअप प्रणाली है।<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> प्रत्येक विभाजन में तीन नोड होते हैं, जिनमें से प्रत्येक में उस विभाजन के डेटा की एक प्रति होती है। प्रत्येक नोड में दो डेटा संरचनाएं भी होती हैं: एक बी ट्री जिसका उपयोग वस्तुओं का पता लगाने के लिए किया जाता है, और एक प्रतिकृति लॉग जो नोड में किए गए सभी परिवर्तनों को नोट करता है। DynamoDB समय-समय पर इन दो डेटा संरचनाओं का स्नैपशॉट लेता है और उन्हें Amazon S3 में एक महीने के लिए संग्रहीत करता है ताकि इंजीनियर अपने डेटाबेस की पॉइंट-इन-टाइम पुनर्स्थापना कर सकें।


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


विभाजन और नोड्स के प्रावधान और प्रबंधन जैसे इंजीनियरिंग ओवरहेड्स के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परहेज किया।<ref name=":1" />जवाब में, DynamoDB टीम ने डेटाबेस को प्रबंधित करने के लिए एक सेवा बनाई जिसे वह AutoAdmin कहती है।<ref name=":3" />जब कोई नोड प्रतिक्रिया देना बंद कर देता है तो ऑटोएडमिन उसे दूसरे नोड से डेटा कॉपी करके बदल देता है। जब कोई विभाजन अपनी तीन सीमाओं (RCU, WCU, या 10GB) में से किसी एक से अधिक हो जाता है, तो AutoAdmin डेटा को और अधिक खंडित करने के लिए स्वचालित रूप से अतिरिक्त विभाजन जोड़ देगा।<ref name=":2" />
विभाजन और बिंदु् के प्रावधान और प्रबंधन जैसे इंजीनियरिंग उपरिव्यय के कारण अमेज़ॅन इंजीनियरों ने मूल रूप से डायनमो से परिवर्जन किया।<ref name=":1" /> डाइनेमो डी बी समूह ने डेटाबेस को प्रबंधित करने के लिए सेवा बनाई जिसे वह ऑटो एडमिन कहती है।<ref name=":3" /> जब कोई बिंदु प्रतिक्रिया देना संवृत कर देता है तब ऑटो एडमिन उसे दूसरे बिंदु से डेटा प्रतिलिपि करके परिवर्तित देता है। जब कोई विभाजन अपनी तीन सीमाओं (आरसीयू , डब्लूसीयू, या 10 जीबी) में से किसी एक से अधिक हो जाता है, तब ऑटो एडमिन डेटा को और अधिक खंडित करने के लिए स्वचालित रूप से अतिरिक्त विभाजन जोड़ देता है।<ref name=":2" />


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


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


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


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


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


==प्रदर्शन==
==प्रदर्शन==
[[File:Aws-dynamodb-web-console-capacity.png|thumb|क्षमता टैब, स्केलिंग]]DynamoDB प्रदर्शन मेट्रिक्स को उजागर करता है जो उपयोगकर्ताओं को इसे सही ढंग से व्यवस्थित करने में मदद करता है और DynamoDB का उपयोग करने वाले अनुप्रयोगों को सुचारू रूप से चालू रखता है:
[[File:Aws-dynamodb-web-console-capacity.png|thumb|क्षमता अंकित प्रवर्धन]]डाइनेमो डी बी प्रदर्शन आव्युह को व्यक्त करता है जो उपयोगकर्ताओं को इसे उचित रूप से व्यवस्थित करने में सहायता करता है और डाइनेमो डी बी का उपयोग करने वाले अनुप्रयोगों को सुचारू रूप से प्रचलित करता है:  
* अनुरोध और गला घोंटना
* अनुरोध और उपरोधन
*[https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html त्रुटियां]: ProvisionedThoughtputExceededException, सशर्त जांच विफल अपवाद, आंतरिक सर्वर त्रुटि (HTTP 500)
*[https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html त्रुटियां]: प्रावधानित प्रवाह क्षमता अपवाद, नियमबद्ध परीक्षण विफल अपवाद, आंतरिक सर्वर त्रुटि (एचटीटीपी 500)
* [http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html ग्लोबल सेकेंडरी इंडेक्स] निर्माण से संबंधित मेट्रिक्स<ref>{{cite web|url=https://www.datadoghq.com/blog/top-dynamodb-performance-metrics/|title=शीर्ष DynamoDB प्रदर्शन मेट्रिक्स|date=15 September 2015 }}</ref>
* [http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html वैश्विक माध्यमिक सूचकांक] निर्माण से संबंधित आव्युह<ref>{{cite web|url=https://www.datadoghq.com/blog/top-dynamodb-performance-metrics/|title=शीर्ष DynamoDB प्रदर्शन मेट्रिक्स|date=15 September 2015 }}</ref>
इन मेट्रिक्स को अमेज़ॅन वेब सर्विसेज मैनेजमेंट कंसोल का उपयोग करके, एडब्ल्यूएस [[कमांड लाइन इंटरफेस]] का उपयोग करके, या [[अमेज़ॅन क्लाउडवॉच]] के साथ एकीकृत एक निगरानी उपकरण का उपयोग करके ट्रैक किया जा सकता है।<ref>{{cite web|url=https://www.datadoghq.com/blog/how-to-collect-dynamodb-metrics/|title=DynamoDB मेट्रिक्स कैसे एकत्र करें|date=15 September 2015 }}</ref>
इन आव्युह को अमेज़ॅन वेब सेवाएं प्रबंधन सकर्मक क्रिया का उपयोग करके, एडब्ल्यूएस [[कमांड लाइन इंटरफेस]] का उपयोग करके, या [[अमेज़ॅन क्लाउडवॉच|अमेज़ॅन क्लाउड वॉच]] के साथ एकीकृत नियंत्रण उपकरण का उपयोग करके चिन्हित किया जा सकता है।<ref>{{cite web|url=https://www.datadoghq.com/blog/how-to-collect-dynamodb-metrics/|title=DynamoDB मेट्रिक्स कैसे एकत्र करें|date=15 September 2015 }}</ref>
 
 
==भाषा बाइंडिंग==
डायनेमोडीबी भाषा बाइंडिंग वाली भाषाओं और फ्रेमवर्क में [[जावा (प्रोग्रामिंग भाषा)]], [[जावास्क्रिप्ट]], नोड.जेएस, गो (प्रोग्रामिंग भाषा), सी शार्प (प्रोग्रामिंग भाषा)|सी# .NET फ्रेमवर्क|.नेट, [[पर्ल]], [[पीएचपी]], [[पायथन (प्रोग्रामिंग भाषा)]] शामिल हैं। ), [[रूबी (प्रोग्रामिंग भाषा)]], रस्ट (प्रोग्रामिंग भाषा), [[हास्केल (प्रोग्रामिंग भाषा)]], [[एरलांग (प्रोग्रामिंग भाषा)]], डीजेंगो (वेब ​​फ्रेमवर्क), और [[ ग्रेल्स (ढांचा) ]]।<ref>{{cite web|url=https://aws.amazon.com/blogs/aws/amazon-dynamodb-libraries-mappers-and-mock-implementations-galore/|title=Amazon DynamoDB लाइब्रेरीज़, मैपर्स, और नकली कार्यान्वयन प्रचुर मात्रा में!|website=Amazon Web Services|date=5 April 2012 }}</ref>
 


== कोड उदाहरण ==
==भाषा अनुबंधन==
[[File:Aws-dynamodb-webconsole-item (cropped).png|thumb|AWS DynamoDB: आइटम दृश्य]]
डायनेमो डीबी भाषा अनुबंधन वाली भाषाओं और रचना कार्य में [[जावा (प्रोग्रामिंग भाषा)|जावा (कार्यक्रम निर्माण भाषा)]], [[जावास्क्रिप्ट]], बिंदु.जेएस, गो (कार्यक्रम निर्माण भाषा), सी, नेट (कार्यक्रम निर्माण भाषा) [[पर्ल]], [[पीएचपी]], [[पायथन (प्रोग्रामिंग भाषा)|पायथन (कार्यक्रम निर्माण भाषा)]] [[रूबी (प्रोग्रामिंग भाषा)|रूबी (कार्यक्रम निर्माण भाषा)]], रस्ट (कार्यक्रम निर्माण भाषा), [[हास्केल (प्रोग्रामिंग भाषा)|हास्केल (कार्यक्रम निर्माण भाषा)]], [[एरलांग (प्रोग्रामिंग भाषा)|एरलांग (कार्यक्रम निर्माण भाषा)]], डीजेंगो (वेब ​​रचना कार्य), और [[ ग्रेल्स (ढांचा) |ग्रेल्स (अनुरूप)]] सम्मिलित हैं।<ref>{{cite web|url=https://aws.amazon.com/blogs/aws/amazon-dynamodb-libraries-mappers-and-mock-implementations-galore/|title=Amazon DynamoDB लाइब्रेरीज़, मैपर्स, और नकली कार्यान्वयन प्रचुर मात्रा में!|website=Amazon Web Services|date=5 April 2012 }}</ref>
== संकेतावली उदाहरण ==
[[File:Aws-dynamodb-webconsole-item (cropped).png|thumb|एडब्लूएस डाइनेमो डी बी : मद दृश्य]]


=== 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 एचटीटीपी एपीआई] के विरुद्ध, प्रश्नचिहन मद:<syntaxhighlight lang="http">
POST / HTTP/1.1
POST / HTTP/1.1
Host: dynamodb.<region>.<domain>;
Host: dynamodb.<region>.<domain>;
Line 158: Line 141:
</syntaxhighlight>
</syntaxhighlight>


=== पदच्युत ===


=== जाओ ===
पदच्युत में मद प्राप्त करें (कार्यक्रम निर्माण भाषा):<syntaxhighlight lang="go">
 
गो में आइटम प्राप्त करें (प्रोग्रामिंग भाषा):<syntaxhighlight lang="go">
getItemInput := &dynamodb.GetItemInput{
getItemInput := &dynamodb.GetItemInput{
TableName: aws.String("happy-marketer"),
TableName: aws.String("happy-marketer"),
Line 174: Line 156:
}
}
getItemOutput, err := dynamodbClient.GetItem(getItemInput)
getItemOutput, err := dynamodbClient.GetItem(getItemInput)
</syntaxhighlight>Go में DeleteItem (प्रोग्रामिंग भाषा):<syntaxhighlight lang="go">
</syntaxhighlight>पदच्युत में निष्कासित मद (कार्यक्रम निर्माण भाषा):<syntaxhighlight lang="go">
deleteItemInput := &dynamodb.DeleteItemInput{
deleteItemInput := &dynamodb.DeleteItemInput{
TableName: aws.String("happy-marketer"),
TableName: aws.String("happy-marketer"),
Line 191: Line 173:
panic(err)
panic(err)
}
}
</syntaxhighlight>[https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/expression/#UpdateBuilder UpdateItem] का उपयोग करके गो में [https://aws.amazon.com/blogs/developer/introduction -amazon-dynamodb-expression-builder-in-the-aws-sdk-for-go/ एक्सप्रेशन बिल्डर]:<syntaxhighlight lang="go">
</syntaxhighlight>[https://aws.amazon.com/blogs/developer/introduction अभिव्यक्ति निर्माता] का उपयोग करके पदच्युत में [https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/expression/#UpdateBuilder अद्यतन मद]  
 
<syntaxhighlight lang="go">
update := expression.Set(
update := expression.Set(
expression.Name(name),
expression.Name(name),
Line 223: Line 207:
}
}
</syntaxhighlight>
</syntaxhighlight>


==यह भी देखें==
==यह भी देखें==
*[[अमेज़न अरोरा]]
*[[अमेज़न अरोरा]]
*[[अमेज़ॅन दस्तावेज़डीबी]]
*[[अमेज़ॅन दस्तावेज़डीबी|अमेज़ॅन प्रपत्र डीबी]]
*[[अमेज़ॅन रेडशिफ्ट]]
*[[अमेज़ॅन रेडशिफ्ट|अमेज़ॅन रेड शिफ्ट]]
*[[अमेज़ॅन रिलेशनल डेटाबेस सेवा]]
*[[अमेज़ॅन रिलेशनल डेटाबेस सेवा|अमेज़ॅन सम्बंधित डेटाबेस सेवा]]
*[[संबंधपरक डेटाबेस प्रबंधन प्रणालियों की तुलना]]
*[[संबंधपरक डेटाबेस प्रबंधन प्रणालियों की तुलना]]


Line 236: Line 219:




==बाहरी संबंध==
==बाप्रत्येकी संबंध==
<!-- Per [[WP:ELMINOFFICIAL]], choose one official website only -->
<!-- Per [[WP:ELMINOFFICIAL]], choose one official website only -->
* {{Official website|http://aws.amazon.com/dynamodb/}}
* {{Official website|http://aws.amazon.com/dynamodb/}}
*[https://www.youtube.com/watch?v=6yqfmXiZTlM <nowiki>Video: AWS re:Invent 2019: [REPEAT 1] Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)</nowiki>]
*[https://www.youtube.com/watch?v=6yqfmXiZTlM <nowiki>Video: AWS re:Invent 2019: [REPEAT 1] अमेज़न डाइनेमो डी बी deep dive: Advanced design patterns (DAT403-R1)</nowiki>]
 
{{Amazon}}
{{Cloud computing}}
{{Cloud computing}}


<!--Categories-->[[Category: अमेज़न वेब सेवाएँ|DynamoDB]] [[Category: घन संग्रहण]] [[Category: वितरित डेटा भंडार]] [[Category: संरचित भंडारण]] [[Category: नोएसक्यूएल]] [[Category: क्लाउड डेटाबेस]] [[Category: 2012 में कंप्यूटर से संबंधित परिचय]] [[Category: कुंजी-मूल्य डेटाबेस]]  
[[Category:2012 में कंप्यूटर से संबंधित परिचय]]
 
[[Category:CS1 English-language sources (en)]]
 
[[Category:Collapse templates]]
 
[[Category: Machine Translated Page]]
[[Category:Created On 10/07/2023]]
[[Category:Created On 10/07/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Official website not in Wikidata]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]
[[Category:अमेज़न वेब सेवाएँ|DynamoDB]]
[[Category:कुंजी-मूल्य डेटाबेस]]
[[Category:क्लाउड डेटाबेस]]
[[Category:घन संग्रहण]]
[[Category:नोएसक्यूएल]]
[[Category:वितरित डेटा भंडार]]
[[Category:संरचित भंडारण]]

Latest revision as of 13:00, 4 August 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] आरसीयू आकार में 4 केबी तक की विषयों के लिए प्रति सेकंड अध्ययन वाली अंतिम स्थिरता या प्रति सेकंड दो अंततः स्थिरता अध्ययन का प्रतिनिधित्व करता है।[11] डब्लू सी यू 1के बी आकार तक के मद के लिए प्रति सेकंड प्रति लेखन का प्रतिनिधित्व करता है।डेटा हानि को रोकने के लिए, डाइनेमो डी बी में प्रतिकृति और दीर्घकालिक स्टोरेज की दो-स्तरीय बैकअप सिस्टम है।[12] प्रत्येक विभाजन में तीन बिंदु होते हैं, जिनमें से प्रत्येक में उस विभाजन के डेटा की एक प्रति होती है। प्रत्येक बिंदु में दो डेटा संरचनाएं भी होती हैं: बी ट्री जिसका उपयोग विषयों का पता लगाने के लिए किया जाता है, और प्रतिकृति लॉग जो बिंदु में किए गए सभी परिवर्तनों को टिप्पणियाँ करता है। डाइनेमो डी बी समय-समय पर इन दो डेटा संरचनाओं का अनौपचारिक चित्र लेता है और उन्हें अमेज़न एस3 में एक महीने के लिए संग्रहीत करता है, जिससे इंजीनियर अपने डेटाबेस की समय में इंगित पुनर्स्थापना कर सकते है।

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

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

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

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

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

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

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

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

प्रदर्शन

क्षमता अंकित प्रवर्धन

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

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

भाषा अनुबंधन

डायनेमो डीबी भाषा अनुबंधन वाली भाषाओं और रचना कार्य में जावा (कार्यक्रम निर्माण भाषा), जावास्क्रिप्ट, बिंदु.जेएस, गो (कार्यक्रम निर्माण भाषा), सी, नेट (कार्यक्रम निर्माण भाषा) पर्ल, पीएचपी, पायथन (कार्यक्रम निर्माण भाषा) रूबी (कार्यक्रम निर्माण भाषा), रस्ट (कार्यक्रम निर्माण भाषा), हास्केल (कार्यक्रम निर्माण भाषा), एरलांग (कार्यक्रम निर्माण भाषा), डीजेंगो (वेब ​​रचना कार्य), और ग्रेल्स (अनुरूप) सम्मिलित हैं।[15]

संकेतावली उदाहरण

एडब्लूएस डाइनेमो डी बी : मद दृश्य

एचटीटीपी एपीआई

एचटीटीपी एपीआई के विरुद्ध, प्रश्नचिहन मद:

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)

पदच्युत में निष्कासित मद (कार्यक्रम निर्माण भाषा):

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)
}

अभिव्यक्ति निर्माता का उपयोग करके पदच्युत में अद्यतन मद

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.


बाप्रत्येकी संबंध