2012-03-20 15 views
10

है तो तालिका में त्वरित रूप से क्वेरी करें मेरे पास हैश और रेंज कॉम्प्लेक्स कुंजी वाली एक तालिका है।
मैं जावा के लिए एडब्ल्यूएस एसडीके से GetItem का उपयोग कर किसी आइटम से पूछताछ कर सकता हूं। GetItem ऑब्जेक्ट नहीं मिलता है, या आइटम को Map<String, AttributeValue> के रूप में नहीं मिलता है।
मैं कि क्या वस्तु मौजूद है की जाँच करने के लिए सबसे तेज दृष्टिकोण रहा हूँ
मैं शायद आपूर्ति में सोच रहा था एक .withAttributesToGet जैसे:यदि इसमें एक कुंजी (डायनेमोडीबी और जावा)

GetItemResult result = dbClient.getItem(new GetItemRequest(). 
    withTableName(TABLE_NAME). 
     withKey(new Key(new AttributeValue().withS(hashKey), 
         new AttributeValue().withS(rangeKey))). 
     withAttributesToGet(new ArrayList<String>())); 
Map<String, AttributeValue> item = result.getItem(); 
return (item != null); 

एक और अनुकूलन एसडीके JSON पार्सर का उपयोग करें और प्रतिक्रिया अपने आप को पार्स नहीं करने के लिए है यह जांचने के लिए कि आइटम वापस आ गया है या नहीं।

धन्यवाद

+1

"सबसे तेज़" से आपका क्या मतलब है? यहां वास्तविक बाधा क्या है? – tddmonkey

उत्तर

9

मुझे लगता है कि "हो रही" के बीच गति में नगण्य अंतर है और यह मौजूद है या नहीं। आप आगे बढ़ सकते हैं और GetItem स्वयं का उपयोग कर सकते हैं। यदि आइटम संभावित रूप से बहुत बड़ा है, तो वापस लौटाए गए गुणों को सीमित करें।

बोतल की गर्दन विलंबो डीबी सर्वर (आरईएसटी एपीआई) तक पहुंचने और सूचकांक से लाने में विलंबता में है। तो हो रही है और जांच एक ही गति होगी। सुनिश्चित करें कि कॉल जारी करने वाला आपका सर्वर डायनेमो डीबी के समान क्षेत्र में है - इसका गति पर अधिकतम प्रभाव पड़ता है।

+0

लौटाए गए गुणों को सीमित करने के बारे में बात करते हुए, क्या डायनेमो डीबीएपर का उपयोग सीमित करने का कोई तरीका है? मुझे DynamoDBMapper के साथ ProjectionExpression का उपयोग करने का कोई तरीका नहीं दिख रहा है। – 500865

3

केवल हैश कुंजी के रूप में प्राप्त करने के लिए जिम्मेदार बताते हैं उल्लेख करके, आप बेहतर प्रदर्शन कर सकता था और अपने प्रवाह बर्बाद मत करो।

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