2010-02-06 29 views
17

हम विभिन्न स्रोतों से आ रही जानकारी की एक धारा को स्टोर करने के कैसेंड्रा का उपयोग कर देख रहे हैं।कैसेंड्रा समय श्रृंखला डेटा

एक मुद्दा हम सामना कर रहे हैं सबसे अच्छा तरीका दो तिथियों के बीच क्वेरी करने के लिए है।

उदाहरण के लिए हमें डेटाटाइम डीटी 1 और डेटाटाइम डीटी 2 के बीच एक ऑब्जेक्ट पुनर्प्राप्त करने की आवश्यकता होगी।

हम वर्तमान में बनाई गई यूनिक्स टाइमस्टैम्प पर वास्तविक ऑब्जेक्ट को इंगित करने वाली कुंजी के रूप में विचार कर रहे हैं, फिर get_key_range को पुनर्प्राप्त करने के लिए क्वेरी का उपयोग कर?

स्पष्ट रूप से यह काम नहीं करेगा यदि दो वस्तुओं में एक ही टाइमस्टैम्प है।

क्या यह सामान्य रूप से noSQL स्टोर में डेटाटाइम करने का सबसे अच्छा तरीका है?

+2

आप अंततः अपने डेटा मॉडलिंग कैसे के रूप में समझना चाहते हैं? हम कुछ इसी तरह देख रहे हैं और मैं सर्वोत्तम प्रथाओं को इकट्ठा करने की कोशिश कर रहा हूं, आदि – AlexGad

उत्तर

15

कैसंड्रा पंक्तियां बहुत बड़ी हो सकती हैं, इसलिए इसे सीएफ में पंक्तियों की बजाय पंक्ति में कॉलम के रूप में मॉडलिंग करने पर विचार करें; तो आप कॉलम स्लाइस ऑपरेशंस का उपयोग कर सकते हैं, जो पंक्ति स्लाइस से तेज़ होते हैं। यदि इसके साथ जुड़े "प्राकृतिक" कुंजी नहीं हैं तो आप "2010/02/08 13:00" जैसे दैनिक या प्रति घंटा कुंजी का उपयोग कर सकते हैं।

अन्यथा, हाँ, श्रेणी क्वेरी का उपयोग करके (get_key_range 0.5 में बहिष्कृत है; get_range_slice का उपयोग करें) आपका सबसे अच्छा विकल्प है।

+1

कितना बड़ा है? http://www.slideshare.net/jbellis/cassandra-open-source-bigtable-dynamo पर प्रस्तुति की स्लाइड 41 पर आप 0.5 के लिए कहते हैं कि "पंक्ति प्रति कॉलम के लाखों"। क्या पंक्तियां अभी भी बड़ी समय श्रृंखला के लिए जाने का रास्ता है? –

+0

हां, कॉलम जाने का रास्ता हैं। – z8000

+0

पंक्तियों के बजाय स्तंभों का उपयोग करने का कारण विभाजनकर्ता हैं? चूंकि RandomPartitioner ऑर्डर को सुरक्षित नहीं करता है, जबकि बाइटऑर्डर्ड पार्टिशनर हॉटस्पॉट बनाता है। लेकिन पंक्ति कुंजी पर आधारित विभाजन नहीं है? इसका मतलब है कि अगर हम एक ही पंक्ति में बड़ी संख्या में कॉलम स्टोर करते हैं, तो यह भी हॉट स्पॉट समस्या का सामना करेगा? –

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