2012-05-16 7 views
8

मुझे इस तरह के एक ही नस में कुछ प्रश्न मिले, लेकिन उनमें संग्रहीत डेटा की प्रकृति, यह कैसे पूछताछ की गई आदि की प्रकृति पर अधिक जानकारी शामिल नहीं थी ... इसलिए मैंने सोचा कि पोस्ट करना उचित होगा।बेस्ट (नोएसक्यूएल?) डीबी छोटे दस्तावेज़/रिकॉर्ड्स के लिए, अपरिवर्तनीय डेटा, बहुत सारे लिखने, त्वरित पढ़ता है?

मेरे डेटा है बहुत ही सरल, तीन क्षेत्रों: - एक "datetimestamp" मूल्य (दिनांक/समय) - दो तार, "ए" और "बी", दोनों < 20 वर्ण

मेरा आवेदन बहुत है लिखना-भारी (प्रति सेकेंड सैकड़ों)। सभी लिखने नए रिकॉर्ड हैं; एक बार डाला गया, डेटा कभी संशोधित नहीं किया गया है।

नियमित पढ़ने हर कुछ सेकंड में होता है, और कुछ निकट-वास्तविक डैशबोर्ड को पॉप्युलेट करने के लिए उपयोग किया जाता है। मैं दिनांक/समय मान और स्ट्रिंग मानों में से एक के खिलाफ पूछताछ करता हूं। जैसे सभी रिकॉर्ड प्राप्त करें जहां डेटाेटिमस्टैम्प एक निश्चित सीमा के भीतर है और फ़ील्ड "बी" एक विशिष्ट खोज मान के बराबर है। ये प्रश्न आम तौर पर प्रत्येक के कुछ हजार रिकॉर्ड लौटाते हैं।

आखिरकार, मेरे डेटाबेस को सीमा के बिना बढ़ने की आवश्यकता नहीं है; मैं रिकॉर्ड्स रिकॉर्डिंग को देख रहा हूं जो 10+ दिन पुराने हैं या तो मैन्युअल रूप से उन्हें हटाकर या कैश-एक्सपेरी तकनीक का उपयोग करके यदि डीबी समर्थित है।

मैंने शुरुआत में इसे लॉन्गिंग (लिखने वाले ब्लॉक लिखने) के तरीके से अवगत किए बिना, मोंगोडीबी में इसे लागू किया। जैसा कि मैं स्केल करता हूं, मेरे प्रश्न लंबे और लंबे समय तक ले रहे हैं (30+ सेकंड अब भी उचित अनुक्रमण के साथ)। अब जो मैंने सीखा है, मुझे विश्वास है कि बड़ी संख्या में लिखने से मेरे पढ़ने को भूख लगी है।

मैंने विभिन्न नोएसक्यूएल विकल्पों की तुलना में kkovacs.eu पोस्ट पढ़ा है, और जब मैंने बहुत कुछ सीखा तो मुझे नहीं पता कि मेरे उपयोग के मामले में स्पष्ट विजेता है या नहीं। मैं विकल्प से परिचित किसी से सिफारिश की सराहना करता हूं।

अग्रिम धन्यवाद!

+0

आप क्या रिकॉर्ड कर रहे हैं कि आपको रीयल-टाइम डैशबोर्ड के लिए एक डीबी पॉप्युलेट करने के लिए प्रति सेकंड सैकड़ों लिखने की आवश्यकता है? – eaolson

+0

क्या आपने SQLite जांच की थी? –

+0

@ एओल्सन मैं घटनाओं को रिकॉर्ड कर रहा हूं जैसे वे होते हैं, और मेरे पास आने वाले इनपुट पर मेरा कोई नियंत्रण नहीं है। दो तार एक "क्या" और "जहां" की पहचान करते हैं। प्रश्न ज्यादातर चीजें हैं जैसे "पिछले 5 मिनट में स्थान [x] पर सभी घटनाओं का चयन करें"। परिणाम कैश किए गए हैं और पहले के प्रश्नों (पिछले समय-स्लाइस से) के परिणामों के साथ संयुक्त होते हैं, और डैशबोर्ड पर प्लॉट किए जाते हैं। –

उत्तर

0

सही निर्णय लेने वाला NoSQL उत्पाद एक आसान काम नहीं है। मैं आपको अपनी पसंद बनाने से पहले नोएसक्यूएल के बारे में अधिक जानने के लिए सुझाव दूंगा, अगर आप वास्तव में यह सुनिश्चित करना चाहते हैं कि आप किसी और के सुझाव या पसंदीदा पर भरोसा न करें।

एक अच्छी किताब है जो नोएसक्यूएल के बारे में वास्तव में अच्छी पृष्ठभूमि देती है और जो कोई भी नोएसक्यूएल के साथ शुरू हो रहा है उसे पढ़ना चाहिए।

http://www.amazon.com/Professional-NoSQL-Wrox-Programmer/dp/047094224X

मैं पुस्तक में अध्यायों का कुछ पढ़ने वास्तव में आपकी मदद करेगा उम्मीद है। नौकरी और बहुत कुछ के लिए क्या अच्छा है इसके बारे में तुलना और स्पष्टीकरण हैं।

शुभकामनाएं।

1

मुझे सिस्टम रिकॉर्डिंग प्रक्रिया नियंत्रण माप में पहले इस तरह की समस्या का सामना करना पड़ा है। यह 5 मेगाहट्र्ज आईबीएम पीसी के साथ किया गया था, इसलिए यह निश्चित रूप से संभव है। उपयोग के मामले — मिनट, घंटे, आठ घंटे-शिफ्ट, दिन, सप्ताह, महीने या वर्ष — द्वारा संक्षेप में भिन्न थे, इसलिए सिस्टम ने सभी कच्चे डेटा रिकॉर्ड किए, लेकिन सबसे आम प्रश्नों के लिए फ्लाई पर भी एकत्रित किया गया है (जो पांच मिनट औसत थे)। आपके डैशबोर्ड के मामले में, ऐसा लगता है कि पांच मिनट का एकत्रीकरण भी एक प्रमुख लक्ष्य है।

शायद यह प्रत्येक इनपुट स्ट्रीम के लिए टेक्स्ट फ़ाइलों की एक जोड़ी लिखकर हल किया जा सकता है: सभी कच्चे डेटा के साथ; एक और बहु-मिनट एकत्रीकरण के साथ। डैशबोर्ड कच्चे डेटा को अनदेखा कर देगा। एक ही बात करने के लिए, एक डेटाबेस का इस्तेमाल किया जा सकता है। लेकिन आवेदन को सरल बनाने का मतलब यह हो सकता है कि कोई आरडीबी की आवश्यकता नहीं है।इंजीनियर और रखरखाव करने के लिए सरल, एक माइक्रोकंट्रोलर, एम्बेडेड सिस्टम, आदि पर फिट होना आसान है, या एक साझा मेजबान पर अधिक दोस्ताना पड़ोसी।

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