2012-01-23 14 views
14

अमेज़ॅन एडब्ल्यूएस डायनेमो डीबी प्रश्न।तुलना ऑपरेटर के साथ डायनेमोडीबी क्वेरी

क्या रेंजके कंडिशन और तुलनाऑपरेटर्स जैसे कंटेनस, इन, बीटवेन का उपयोग करने के कोई उदाहरण हैं। मैं एक समग्र रेंजकी (समेकित और सीमांकित) के आधार पर डेटा पुनर्प्राप्त करने का प्रयास कर रहा हूं। उदाहरण के लिए तारीख + लेखक + किताबें तालिका के लिए कीवर्ड। मान लें कि हैशवैल्यू इस मामले में "पुस्तक" है (यह पुस्तक, डीवीडी, वीडियो, लिंक इत्यादि हो सकता है)। मैं उन सभी पुस्तकों का चयन करना चाहता हूं जिनमें कीवर्ड "जादू" या लेखक "जॉन डो" द्वारा सभी पुस्तकें शामिल हों। एक नमूना रिकॉर्ड/आइटम इस तरह दिखेगा:

हैश ------ रेंज ---------------------------- ------------------------------------- विशेषता 1 ... attributex

पुस्तक --- --- 2012-1-20 ~ जॉन डो ~ साहसिक ~ जादू ~ यात्रा ---------------- विवरण ... कुछ सामान

सशर्त ऑपरेटर का उपयोग करने की कोशिश में में या शामिल है, मुझे निम्न त्रुटि मिलती है: ऑब्जेक्ट (CFSimpleXML) 20 सार्वजनिक '__type' => स्ट्रिंग 'com.amazon.coral.validate # प्रमाणीकरण अपवाद' (लंबाई = 45) सार्वजनिक 'संदेश' => स्ट्रिंग 'प्रयास किया गया सशर्त बाधा एक सूचकांक ऑपरेशन नहीं है '

इन तुलनाऑरिऑपरेटर्स का उपयोग करके कोई उदाहरण नहीं मिला। किसी भी तरह की सहायता का स्वागत किया जाएगा।

धन्यवाद।

A scan operation scans the entire table. You can specify filters to apply to the results to refine the values returned to you, after the complete scan. Amazon DynamoDB puts a 1MB limit on the scan (the limit applies before the results are filtered). [...]

[...] For information about each comparison operator available for scan operations, see the API entry for Scan .

अब,

  • क्वेरी

    A query operation searches only primary key attribute values and supports a subset of comparison operators on key attribute values to refine the search process. A query returns all of the item data for the matching primary keys (all of each item's attributes) up to 1MB of data per query operation. [...]

    [..] For information about each comparison operator available for query operations, see the API entry for Query .

    [emphasis mine]

  • स्कैन सु:

उत्तर

34

यह दो खोज एपीआई के बीच का अंतर Query and Scan in Amazon DynamoDB महसूस करने के लिए महत्वपूर्ण है रेंजके कंडिशन के लिए पपोर्टेड सबसेट: क्वेरी एपीआई की तुलनाऑपरेटरCONTAINS और IN को छोड़कर, जो दोनों स्कैन एपीआई के भीतर उपलब्ध हैं; केवल तुलना ऑपरेटर BETWEEN दोनों एपीआई के भीतर उपलब्ध है।

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

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

शुभकामनाएं!

+8

धन्यवाद स्टीफन। आप बिल्कुल सही हैं। असुविधाजनक रूप से एडब्ल्यूएस डेवलपर दस्तावेज में एक बग था जो इन ऑपरेटरों को क्वेरी के लिए भी उपलब्ध है। – user573306

संबंधित मुद्दे