hash - हैश और रेंज प्राथमिक कुंजी क्या है?




amazon-dynamodb primary-key (2)

@vnr आप पार्टियन कुंजी का उपयोग कर क्वेरी का उपयोग करके विभाजन कुंजी से जुड़े सभी प्रकार की कुंजी को पुनर्प्राप्त कर सकते हैं। स्कैन की कोई ज़रूरत नहीं है। यहां बिंदु एक क्वेरी में विभाजन कुंजी अनिवार्य है। सॉर्ट कुंजी का उपयोग केवल डेटा की सीमा प्राप्त करने के लिए किया जाता है

मैं यह समझने में सक्षम नहीं हूं कि यहां रेंज प्राथमिक कुंजी क्या है -

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key

और यह कैसे काम करता है?

उनका क्या अर्थ है - "हैश विशेषता पर अनियंत्रित हैश इंडेक्स और रेंज विशेषता पर एक क्रमबद्ध रेंज इंडेक्स"?


" हैश एंड रेंज प्राइमरी की " का अर्थ है कि डायनेमो डीबी में एक पंक्ति में हैश और रेंज कुंजी दोनों की एक अनूठी प्राथमिक कुंजी है। उदाहरण के लिए एक्स की हैश कुंजी और वाई की रेंज कुंजी के साथ, आपकी प्राथमिक कुंजी प्रभावी रूप से XY है । आपके पास एक ही हैश कुंजी के लिए कई रेंज कुंजियां भी हो सकती हैं लेकिन संयोजन XZ और XA जैसे अद्वितीय होना चाहिए। आइए प्रत्येक प्रकार की तालिका के लिए अपने उदाहरणों का उपयोग करें:

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

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

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

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

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

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





nosql