मान लें कि आपका डेटा अपरिवर्तनीय है और आकार दिया गया है, तो आप Amazon Redshift पर विचार करना चाहेंगे; यह पेटबाइट आकार के रिपोर्टिंग समाधानों के लिए लिखा गया है।
डायनेमो में, मैं कुछ व्यवहार्य डिजाइनों के बारे में सोच सकता हूं। सबसे पहले, आप एक कंपाउंड हैश/रेंज कुंजी (दोनों स्ट्रिंग्स) के साथ एक टेबल का उपयोग कर सकते हैं। हैश कुंजी समय श्रृंखला का नाम होगा, रेंज कुंजी एक आईएसओ 8601 स्ट्रिंग के रूप में टाइमस्टैम्प होगी (जिसमें सुखद संपत्ति है जो वर्णानुक्रमिक क्रम भी क्रोनोलॉजिकल ऑर्डरिंग है), और प्रत्येक आइटम पर एक अतिरिक्त विशेषता होगी; एक कीमत'। यह आपको एक समय श्रृंखला (हैशके समानता पर प्रश्न) और एक समय श्रृंखला का एक सबसेट चुनने का अधिकार देता है (हैशकी समानता और सीमा के बीच सीमा के बारे में प्रश्न)। हालांकि, आपकी मुख्य समस्या "हॉटस्पॉट" समस्या है: आंतरिक रूप से, डायनेमो आपके डेटा को हैशके द्वारा विभाजित करेगा, और आपके सभी विभाजनों पर आपकी ProvisionedReadCapacity फैल जाएगा। तो आपके पास 1000 सेकंड पढ़ने वाला एक सेकंड हो सकता है, लेकिन यदि आपके पास 100 विभाजन हैं, तो आपके पास प्रत्येक विभाजन के लिए केवल 10 KB एक सेकंड है, और एक ही समय श्रृंखला (एकल हैशके) से सभी डेटा पढ़ने से केवल एक विभाजन ही प्रभावित होगा। तो आपको लगता है कि आपके 1000 केबी पढ़ने से आपको 1 एमबी एक सेकंड मिलती है, लेकिन यदि आपके पास 10 एमबी संग्रहीत है तो इसे पढ़ने के लिए आपको अधिक समय लग सकता है, क्योंकि आपका एकल विभाजन आपको बहुत अधिक भारी कर देगा।
ऊपर की तरफ, डायनेमो डीबी की स्केलिंग पर अत्यधिक उच्च लेकिन महंगा ऊपरी सीमा है; यदि आप चाहते थे कि आप 100,000 पढ़ने की क्षमता इकाइयों के लिए भुगतान कर सकें, और उस डेटा के उप-दूसरे प्रतिक्रिया समय हो।
एक और सैद्धांतिक डिजाइन प्रत्येक बार श्रृंखला को एक अलग तालिका में स्टोर करना होगा, लेकिन मुझे नहीं लगता कि डायनेमोडबीबी लाखों तालिकाओं तक स्केल करने के लिए है, इसलिए यह शायद कोई नहीं है।
आप 10 टेबलों में अपनी टाइम सीरीज़ को आजमा सकते हैं और तालिका तालिका में "अत्यधिक पढ़ा" डेटा चला सकते हैं, तालिका 10 में "डेटा कभी नहीं पढ़ा", और अन्य सभी डेटा के बीच कहीं भी। यह आपको प्रावधान थ्रूपुट/विभाजन थ्रॉटलिंग नियमों को "गेम" करने देगा, लेकिन आपके डिजाइन में जटिलता की उच्च डिग्री पर। कुल मिलाकर, यह शायद इसके लायक नहीं है; आप नई समय श्रृंखला कहां करते हैं? आपको याद है कि वे कहां हैं? आप एक समय श्रृंखला कैसे ले जाते हैं?
मुझे लगता है कि डायनेमोडीबी अपने स्वयं के अनुभव से इन प्रकार के पढ़ने पर कुछ आंतरिक "फटने" का समर्थन करता है, और यह संभव है कि मेरी संख्याएं बंद हो जाएं, और आपको पर्याप्त प्रदर्शन मिलेगा। हालांकि मेरा निर्णय Redshift में देखना है।
स्रोत
2013-08-13 18:42:13
आपने क्या उपयोग किया? – Hugo
आप किस डिजाइन का उपयोग कर समाप्त किया? – Narayan