DynamoDB पेजिनेशन: ओवरव्यू, यूज़ केस और उदाहरण

Dynamodb Pejinesana Ovaravyu Yuza Kesa Aura Udaharana



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

DynamoDB में पेजिनेशन क्या है?

आम तौर पर, पेजिनेशन, शब्द पृष्ठों से प्राप्त होता है, एक ऐसी तकनीक है जिसका उपयोग डेटाबेस द्वारा डेटा रिकॉर्ड को कई हिस्सों, खंडों या पृष्ठों में विभाजित करने के लिए किया जाता है। और चूंकि AWS DynamoDB बड़ी मात्रा में डेटा के भंडारण का समर्थन करता है, इसलिए इसमें विश्वसनीय पेजिनेशन क्षमताएं हैं।







DynamoDB पेजिनेशन घटक यह सुनिश्चित करता है कि आप प्रति स्कैन या क्वेरी के लिए केवल 1 GB तक डेटा पुनर्प्राप्त कर सकते हैं। जबकि यह एक डिफ़ॉल्ट सेटिंग है, आप एक सीमा निर्दिष्ट करने के लिए क्वेरी में एक सीमा पैरामीटर जोड़ सकते हैं। आप आगे प्रत्येक स्कैन क्वेरी में रिकॉर्ड की संख्या के लिए एक सीमा निर्धारित कर सकते हैं।



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



डायनेमोडीबी में पेजिनेशन का उपयोग कैसे करें





1. क्वेरी ऑपरेशन के दौरान पृष्ठांकन

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

LastEvaluatedKey तत्व के बिना परिणाम, जो गैर-शून्य है, का तात्पर्य है कि क्वेरी से मेल खाने वाले सभी आइटम 1 एमबी की सीमा के भीतर फिट होते हैं और पुनर्प्राप्ति के लिए और आइटम नहीं हैं। बेशक, आप प्रति परिणाम आइटमों की संख्या के लिए एक सीमा भी निर्धारित कर सकते हैं। निम्नलिखित नमूना आदेश देखें:



एडब्ल्यूएस डायनेमोडब क्वेरी \

--तालिका-नाम MyTableName \

--कुंजी-स्थिति-अभिव्यक्ति 'विभाजनकी =: pk \

--अभिव्यक्ति-विशेषता-मान '{'
:पीके ':{' एस ':' a1234b '}},

--सीमा 10 \

आप पिछले आदेश का उपयोग समान कुंजी स्थिति अभिव्यक्ति मान वाले आइटम के लिए अपनी तालिका क्वेरी करने के लिए कर सकते हैं। आइए हम डैरी टेक से ऑर्डर_आईडी के लिए अपनी 'ऑर्डर' तालिका खोजें। हम प्रति पेज 10 आइटम की सीमा भी निर्धारित करते हैं। -लिमिट पैरामीटर के लिए एक अन्य विकल्प समान उद्देश्य के लिए -पेज-साइज पैरामीटर का उपयोग करना है।

पेजिनेशन 1 एमबी डेटा से कम आइटम के लिए एडब्ल्यूएस सीएलआई में एक स्वचालित ऑपरेशन है। यदि आप चाहते हैं कि आपकी क्वेरी किसी विशेष क्रम से शुरू हो, तो आप कमांड में एक विशिष्ट प्रारंभ कुंजी जोड़ सकते हैं।

प्रतिक्रिया इस तरह दिखती है:

प्रदान किए गए परिणाम पहले पृष्ठ पर 10 डैरी टेक दिखाते हैं। आप अधिक ऑर्डर प्राप्त करने के लिए LastEvaluatedKey मानों का उपयोग कर सकते हैं जो नई क्वेरी बनाने के लिए आपकी खोज के अभिव्यक्ति कुंजी मानों से मेल खाते हैं। नए क्वेरी अनुरोध में ExclusiveStartKey पैरामीटर में LastEvaluatedKey मान शामिल हैं।

सिंटैक्स का एक उदाहरण निम्नलिखित में दिखाया गया है:

एडब्ल्यूएस डायनेमोडब क्वेरी \

--तालिका-नाम उदाहरण तालिका \

--कुंजी-स्थिति-अभिव्यक्ति 'विभाजनकी =: pk \

--अभिव्यक्ति-विशेषता-मान '{'
:पीके ':{' एस ': डैरी टेक ' \

--सीमा 10 \

--अनन्य-प्रारंभ-कुंजी '{'
विभाजन कुंजी ':{' एस ': डैरी टेक' }, 'सॉर्टकी' :{ 'एस' : '5356' }} '

पिछला कमांड अगले पेज में अगले सेटऑफ़ ऑर्डर उत्पन्न करता है, जो उस ऑर्डर आईडी से शुरू होता है जिसमें निर्दिष्ट प्राथमिक कुंजी होती है, यानी {'पार्टिशनकी':{'एस': डैरी टेक'},'सॉर्टकी':{'एस': ”5356-sy”}}।

2. स्कैन ऑपरेशन के दौरान पेजिनेशन

स्कैन ऑपरेशंस के लिए पेजिनेशन का उपयोग करना भी संभव है। सब कुछ उसी तरह काम करता है जैसे क्वेरी कमांड के साथ। हालाँकि, आपको फ़िल्टर-अभिव्यक्ति विशेषता का उपयोग करने की आवश्यकता है। आदेश हमारे यहां जैसा दिखता है:

एडब्ल्यूएस डायनेमोडब स्कैन \

--तालिका-नाम MyTable \

--फ़िल्टर-अभिव्यक्ति 'विशेषतानाम =: मान' \

--अभिव्यक्ति-विशेषता-मान '{': value':{'S':'ABC123'}}' \

--सीमा बीस \

--अनन्य-प्रारंभ-कुंजी '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

पिछला आदेश MyTable तालिका से प्रति पृष्ठ 20 आइटम तक सेवानिवृत्त करता है, उस आइटम से शुरू होता है जिसकी प्राथमिक कुंजी {'पार्टिशनकी': 'एबीसी123', 'सॉर्टकी': 'XYZ987'} है। यह केवल उन आइटम्स को शामिल करने के लिए परिणामों को फ़िल्टर करता है जिनमें विशेषतानाम विशेषता में 'ABC123' मान है।

जवाब में द LastEvaluatedKey फ़ील्ड में परिणाम सेट में अंतिम आइटम की प्राथमिक कुंजी होती है। आप इस मान का उपयोग इस रूप में कर सकते हैं एक्सक्लूसिव स्टार्टकी बाद में स्कैन परिणामों के अगले पृष्ठ को पुनः प्राप्त करने के लिए ऑपरेशन।

निष्कर्ष

DynamoDB में पृष्ठांकन डेटा की प्रबंधनीयता में सुधार करता है। हालाँकि, यह जानना महत्वपूर्ण है कि क्या आपके सिस्टम को पेजिनेशन से लाभ होगा। यदि आपके पास किसी एप्लिकेशन में मदों की लंबी सूची है, तो पेजिनेशन का उपयोग करना आवश्यक है। जबकि प्रदान किया गया उदाहरण AWS CLI कॉल पर केंद्रित है, आप AWS SDK जैसे कि Python के Boto3 या किसी भी SDK जिसे आप पसंद करते हैं, के साथ पेजिनेशन का उपयोग कर सकते हैं।