2012-10-17 15 views
5

लिनक्स क्लाउड सर्वर पर डेटा वेयरहाउसिंग खनन परियोजना की स्थापना करना। प्राथमिक भाषा पायथन है।एक अच्छा ब्लॉबस्टोर/मेमकेचे समाधान

डेटा पर लगाने और उन्हें डेटा भंडारण के लिये इस पद्धति का उपयोग करना चाहेंगे:

  • एसक्यूएल डाटाबेस - SQL डेटाबेस डेटा पर क्वेरी करने के लिए प्रयोग किया जाता है। हालांकि, SQL डेटाबेस केवल उन फ़ील्ड को संग्रहीत करता है जिन्हें खोजा जाना आवश्यक है, यह डेटा के "ब्लॉब" को संग्रहीत नहीं करता है। इसके बजाए यह एक कुंजी संग्रहीत करता है जो एक महत्वपूर्ण मूल्य ब्लॉबस्टोर में डेटा का पूर्ण "ब्लॉब" संदर्भ देता है।
  • ब्लॉबस्टोर - एक कुंजी-मूल्य ब्लॉबस्टोर का उपयोग डेटा के वास्तविक "दस्तावेज़" या "ब्लॉब्स" को संग्रहीत करने के लिए किया जाता है।

हमारे पास यह मुद्दा यह है कि हम डेटा में स्वचालित रूप से संग्रहीत होने वाले डेटा के अधिकतर ब्लॉब्स को एक्सेस करना चाहते हैं। हम इसके लिए रेडिस का उपयोग करने की योजना बना रहे थे। हालांकि, हम एक ऐसा समाधान चाहते हैं जो स्वचालित रूप से डेटा को राम से पहले प्राप्त करने का प्रयास करता है, अगर उसे वहां नहीं मिल पाता है, तो यह ब्लॉबस्टोर पर जाता है।

क्या इसके लिए कोई अच्छी लाइब्रेरी या तैयार समाधान है जिसका उपयोग हम स्वयं को घुमाने के बिना कर सकते हैं? इसके अलावा, प्रस्तावित वास्तुकला के बारे में कोई टिप्पणी और आलोचना भी सराहना की जाएगी।

बहुत बहुत धन्यवाद!

+0

क्या गूगल एप इंजन का उपयोग कर के साथ गलत क्या है? – RLH

+0

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

उत्तर

3

कैशिंग के लिए रेडिस या मेमकैच का उपयोग करने के बजाय, डिस्क पर चीजों को स्टोर करने के लिए "ब्लॉबस्टोर" पैकेज का उपयोग करने के बजाय, मैं Couchbase Server पर एक नज़र डालने का सुझाव दूंगा जो वास्तव में आप चाहते हैं (यानी स्मृति से गर्म ब्लब्स की सेवा करना, लेकिन फिर भी उन्हें डिस्क पर संग्रहीत)।

जिस कंपनी के लिए मैं काम करता हूं, हम आमतौर पर हमारे संग्रह सर्वर (डेटा के टेराबाइट्स) के लिए वर्णित पैटर्न (यानी एक संबंधपरक डेटाबेस, प्लस ब्लॉब स्टोरेज में अनुक्रमण) का उपयोग करते हैं। ब्लॉब्स लिखने के लिए किए गए I/O को अनुक्रमिक रखा जाता है जब यह अच्छी तरह से काम करता है। ब्लब्स को कभी भी लिखा नहीं जाता है, लेकिन फ़ाइल के अंत में बस जोड़ा जाता है (यह एक संग्रह अनुप्रयोग के लिए ठीक है)।

उसी दृष्टिकोण का उपयोग दूसरों द्वारा भी किया जाता है।

1

किसी भी SQL डेटाबेस पहले भाग के लिए काम करेंगे। ब्लॉबस्टोर को भी अनिवार्य रूप से, "शेल्फ से बाहर" प्राप्त किया जा सकता है, cbfs का उपयोग करके। यह एक नई परियोजना है, जो सोफेबेस 2.0 के शीर्ष पर बनाई गई है, लेकिन यह बहुत सक्रिय विकास में प्रतीत होती है।

कॉचबेस पहले डिस्क की जांच करने से पहले रैम कैश से परिणाम देने की कोशिश करता है, और बड़े डेटा सेट का समर्थन करने के लिए पूरी तरह से वितरित किया जाता है।

सीबीएफएस उस पर एक फाइल सिस्टम रखता है, और इसके लिए पहले से ही एक FUSE मॉड्यूल लिखा गया है।

चूंकि फाइल सिस्टम प्रभावी रूप से सबसे कम-आम-संप्रदाय हैं, इसलिए आपके लिए इसे पाइथन से एक्सेस करना वास्तव में आसान होना चाहिए, और आपको लिखने के लिए आवश्यक कस्टम कोड की मात्रा कम हो जाएगी।

ब्लॉग पोस्ट: http://dustin.github.com/2012/09/27/cbfs.html

परियोजना भंडार: https://github.com/couchbaselabs/cbfs

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