2014-10-10 4 views
9

मैंने डायनेमोडीबी दस्तावेज़ों की कोशिश की और उदाहरण के साथ QueryResult का उपयोग करके काम किया, मुझे कोई भी स्रोत नहीं मिला कि डायनेमोडीबी में न्यूनतम, अधिकतम और औसत का उपयोग कैसे करें (मैं जावा एपीआई का उपयोग कर रहा हूं)।क्या डायनेमोडीबी एवीजी, MAX, MIN जैसे कुल कार्यों का समर्थन करता है?

उत्तर

6

ये उपलब्ध नहीं कराए गए हैं। आप इन्हें या तो एक क्वेरी कर या फ़िल्टर के साथ स्कैन करके और मूल्यों की गणना करके इन्हें लागू करेंगे। चीजों को थोड़ा सा सरल बनाने के लिए, आप Count parameter का उपयोग केवल उन वस्तुओं की गिनती को वापस करने के लिए कर सकते हैं जो वास्तविक आइटम के बजाय उस क्वेरी/स्कैन द्वारा लौटाए जाएंगे। (ध्यान दें कि गिनती केवल आंशिक गिनती देता है - आपको प्रश्न/स्कैन के कई पृष्ठों में गणना करने की आवश्यकता हो सकती है)।

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

+0

केवल गिनती समर्थित है https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count – cjungel

+1

काफी नहीं है - केवल कि क्वेरी से आंशिक परिणाम देता है गिनती खुद को कुल गिनती इकट्ठा करने की जरूरत है। मैंने यहां आपके लिंक से प्रासंगिक दस्तावेज़ नोट कॉपी और पेस्ट किया है: "* यदि फ़िल्टर अभिव्यक्ति या क्वेरी स्थिति के लिए मिलान करने वाली आइटम 1 एमबी से अधिक है, तो गणना में अनुरोध से मेल खाने वाली वस्तुओं की कुल संख्या की आंशिक गणना होती है। मेल खाने वाली वस्तुओं की पूरी गिनती प्राप्त करें, पिछले अनुरोध से LastEvaluatedey मूल्य लें, और उस अनुरोध का उपयोग अगले अनुरोध में ExclusiveStartKey के रूप में करें। इसे तब तक दोहराएं जब तक डायनेमोडबी अब LastEvaluatedKey नहीं लौटाता। * " – Krease

+0

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

2

मुझे आपके जैसी ही समस्या थी, और फिर मुझे उस समस्या को हल करने के लिए 2 विचार प्राप्त हुए। पहला एक - क्वेरी/स्कैन का उपयोग करके सभी डेटा पूछताछ करना है, फिर जावा कोड में अपना डेटा एकत्र करें। दूसरा - हाइव एसक्यूएल का उपयोग करना है, आप एक साथ हाइव और डायनमो डीबी का उपयोग कर सकते हैं, और अपने डेटा को हिवक्ल में जोड़ सकते हैं। अभी भी आप -

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.Tutorial.html

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