2011-12-31 6 views
5

के लिए मैं एक परियोजना है कि लोग इन एकत्रीकरण और विश्लेषण एक बड़ा परियोजना के हिस्से के रूप में करता है पर काम कर रहा हूँ। मुझे नहीं पता कि इन लॉगों को संभालने के लिए कौन सा डेटाबेस चुनना है। हाल ही में मैं मोंगोडीबी और कैसंद्रा के बीच आगे जा रहा हूं, लेकिन मुझे यकीन है कि ऐसे कुछ भी हैं जो मेरी जरूरतों को पूरा करते हैं। मुझे कौन सा चुनना चाहिए और क्यों?MongoDB बनाम कैसेंड्रा, योग खोज और विश्लेषण करने के कई लॉग

पूरी बात शुरुआत अभी से काफी है, लेकिन यहाँ अब तक आवश्यकताएँ हैं:

  • लॉग syslog प्रारूप
  • प्रश्नों एक छोटे स्ट्रिंग पर हैं संदेश में है कि में हैं , लेकिन मैं इसे एक अलग क्षेत्र में प्राप्त करूंगा। और तिथि, गंभीरता या टैग के आधार पर फ़िल्टर भी होंगे। बहुत ही कम, लोग सिर्फ संदेश के भीतर एक यादृच्छिक स्ट्रिंग की तलाश करेंगे।
  • लॉग प्रविष्टियों में से कुछ से प्रति घंटा एनालिटिक्स
  • समय के एक कॉन्फ़िगर की
  • अधिक आ जाएगा के लिए लॉग रखते हैं, मुझे यकीन है :) यही कारण है कि मैं सोच रहा हूँ NoSQL अधिक उपयुक्त है है हूँ, क्योंकि हम कर सकते हैं स्कीमा बदलें।

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

अभी, सभी मशीनों के लिए भंडारण सामान्य (और धीमी) है। sharding समझ बनाने के लिए के लिए आदेश में - तो scalability के लिए, मैं हम स्मृति और बहु ​​सूत्रण का सबसे अच्छा उपयोग करने की जरूरत है लगता है।

बुनियादी विचारों मुझे मिल गया अब तक कि MongoDB ऐसे regex या परिणाम छँटाई के रूप में और अधिक सुविधाओं, है, और यह एक सभ्य विन्यास के लिए आसान सेटअप है, जबकि कैसेंड्रा को और अधिक विश्वसनीय लगता है (बस जोड़ने सर्वर द्वारा), और यह भी एक है कुछ साफ सुविधाएँ, डेटा पर एक टीटीएल रखने जैसा।

+0

मैं Elasticsearch का उपयोग कर समाप्त हो गया है -

मैं एक साथ MongoDB और कैसेंड्रा यहाँ के बीच मतभेद का एक उच्च स्तरीय सिंहावलोकन डाल दिया है। कुछ और जानकारी के लिए यहां एक नज़र डालें: [लिंक] (http://www.elasticsearch.org/tutorials/2012/05/19/elasticsearch-for-logging.html) –

उत्तर

2

MongoDB अपनी आवश्यकताओं के लिए बिल्कुल उपयुक्त की तरह ध्वनि करता है। यहाँ क्यों है:

  • सूचकांक: जब से तुम कभी प्रश्नों चलाना चाहते हैं, यह उन्हें अपने अनुप्रयोग में बनाए रखने या एक अलग खोज एप्लिकेशन (Lucene) है करने के लिए नहीं अच्छा है।
  • तराजू अच्छी तरह से (बिल्ट-इन sharding समर्थन, प्रतिकृति)
  • राईट अतुल्यकालिक हैं (डिफ़ॉल्ट रूप से, आप उन्हें synchr बना सकता है।), कि गैर अवरुद्ध, और तेजी से है। आप कुछ विफलता परिदृश्यों में कुछ खो सकता है, लेकिन लॉग और विश्लेषण के लिए, यह एक फर्क नहीं होता।
  • काफी शक्तिशाली क्वेरी एपीआई (रिलेशनल की तरह नहीं, कोई जुड़ता नहीं है, लेकिन अन्य सभी nosql कुंजी-मूल्य स्टोर से बेहतर है, और कैसंड्रा ऑफर की तुलना में अधिक शक्तिशाली लगता है)।

आपको गैर-शर्डेड सेटअप में इसे उचित कॉन्फ़िगरेशन भी मिल सकता है। डिफ़ॉल्ट रूप से उदाहरण के लिए यह डिस्क के लिए हर 60sec, जिसका अर्थ है लेखन की 60secs इसलिए आईओ को कम करने बफ़र हो जाएगा सिंक करता है। मैं एक ही मशीन पर डेटा की एक टेराबाइट एक आधे पर यह कोशिश की है और एक ही अनुक्रमित क्षेत्र प्रश्नों सीसीए 100-200ms में चलाते हैं।

+0

आपके उत्तर के लिए बहुत बहुत धन्यवाद। यह मेरे मन में जो कुछ है, उसके साथ फिट बैठता है, जो मोंगोडीबी के साथ जाना है और फिर यदि मैं समस्याओं में भाग लेता हूं तो शायद कुछ और स्विच कर सकता हूं। –

5

अपाचे कैसंद्रा जैसे दुर्लभ स्तंभकार डेटास्टोर समय श्रृंखला डेटा एकत्रित करने में उत्कृष्ट हैं।उदाहरण के लिए निम्न लेख देखें:

+0

क्या आप इस तथ्य के बारे में बात कर रहे हैं कि कैसंद्रा स्वचालित रूप से प्रत्येक कॉलम के लिए टाइमस्टैम्प स्टोर करता है? सबसे पहले मैंने सोचा कि यह मेरे लिए वास्तव में उपयोगी है, लेकिन फिर मुझे एहसास हुआ कि मुझे वास्तव में एक अलग टाइमस्टैम्प की आवश्यकता है: जब सर्वर पर ईवेंट जेनरेट किया जाता है, तब जब ईवेंट लॉग एग्रीगेटर पर नहीं मिलता है। अगर आपको लगता है कि मुझे कुछ याद आ रही है, तो क्या आप कुछ विवरणों में लिख सकते हैं? –

+0

मैं विशेष रूप से डेटा मॉडलिंग दृष्टिकोण का जिक्र कर रहा हूं। टाइमस्टैम्प के कैसंद्रा की अवधारणा के साथ इसका कोई लेना-देना नहीं है। कृपया उपर्युक्त लेख पढ़ें - वे लॉग डेटा संग्रहीत करने के लिए कॉलम परिवारों को कैसे बनाएंगे, इस बारे में कुछ अंतर्दृष्टि प्रदान करेंगे। – zznate

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