2010-06-09 13 views
5

मैंने कॉच डीबी, मोंगोडीबी और कैसंद्रा जैसे नोएसक्यूएल डेटाबेस का परीक्षण किया है और सम्मिलित कुंजी-मूल्य जोड़े के सापेक्ष ड्राइव स्थान की बहुत बड़ी मात्रा को अवशोषित करने की प्रवृत्ति देखी है। कॉच डीबी और माईएसक्यूएल स्कीमेलेस डेटाबेस की तुलना करते समय कॉच डीबी MySQL की तुलना में अधिक ड्राइव स्थान का उपभोग कर रहा है। मुझे पता है कि डिफ़ॉल्ट रूप से उस कुंजी-मूल्य डीबी के संस्करण हैं और लंबे समय तक यूआईआईडी हैं और मुख्य अनुकूलन की आवश्यकता है - तुलना MySQL में लगभग 15 मिलीयन पंक्तियों और 1-5 एमएलएन दस्तावेजों के बीच नोएसक्यूएल डीबी सूचीबद्ध है।ड्राइव स्पेस भूख NoSQL के डेटाबेस

मेरा प्रश्न है: क्या डेटा के अच्छे संयोजन/संपीड़न के साथ कोई नोएसक्यूएल है? ताकि मेरे पास 50 जीबी से 5 जीबी के करीब आकार के साथ नोएसक्यूएल डेटाबेस हो सके?

उत्तर

1

मोंगोडीबी में "डेटाबेस मरम्मत" फ़ंक्शन है जो एक कॉम्पैक्शन भी करता है। हालांकि, डीबी चल रहा है, जबकि ऐसी एक compaction नहीं होने जा रहा है।

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

लेकिन मुझे जेबेलिस की टिप्पणी गूंजनी है: आपको शायद अधिक जगह चाहिए और इनमें से अधिकतर उत्पाद धारणा कर रहे हैं कि डिस्क स्थान (अपेक्षाकृत) सस्ता है। यदि डिस्क स्पेस वास्तव में तंग है, तो आप पाएंगे कि मोंगोडीबी का आकार काफी है, लेकिन टैब्यूलर सीएसवी डेटा के साथ प्रतिस्पर्धा करने में मुश्किल हो रही है।

इस तरह से सोचें, अधिक स्पेस कुशल क्या है?

  • है कि एक ही डेटा JSON

में स्वरूपित एक लाख लाइनों

  • साथ एक CSV फ़ाइल जाहिर JSON b/c आप फ़ील्ड नाम हर बार दोहरा रहे हैं जो अब होने जा रहा है। यहां एकमात्र अपवाद एक सीएसवी फ़ाइल है जिसमें 100 कॉलम हैं जिनमें से प्रत्येक पंक्ति के लिए केवल कुछ ही भरे हुए हैं। (लेकिन शायद यह आपका डेटा नहीं है)

  • +0

    यह सच है, यदि आप लंबे क्षेत्र के नामों का उपयोग करते हैं तो आपको Mongodb का उपयोग करते समय अधिक डिस्क स्थान की आवश्यकता होती है। और Mongodb 2 गीगाबाइट की फ़ाइलों को preallocates। – TTT

    +1

    हां, कॉच डीबी के पास डीबी आकार को कई बार कम करने के बाद "कॉम्पैक्ट" विकल्प बहुत चुड़ैल है (कैसंड्रा बेहतर संगठित थोक लिखने के कारण इसे "पृष्ठभूमि में" पसंद करता है)। – jlmfao

    +0

    पिग्गी इस पर बैकिंग करते हैं, अगर यह पर्याप्त डिस्क स्थान वाले 1 नोड के साथ कोई समस्या है, तो HBase या Cassandra जैसे कुछ को आजमाएं और अधिक डेटा संग्रहण (और प्रसंस्करण शक्ति!) को और अधिक नोड जोड़कर बहुत आसान है। मुझे नहीं पता कि मोंगोडीबी/कॉच डीबी कैसे संरचित हैं, इसलिए मुझे नहीं पता कि आप आसानी से और बस उनके साथ एक ही चीज़ कर सकते हैं या नहीं। – Drizzt321

    1

    क्या आप "फ़ाइल की लंबाई" या वास्तविक आवंटन आकार की जांच कर रहे हैं?

    कई डेटाबेस फ़ाइल संरचनाओं को आवंटित रूप से आवंटित करते हैं और उनकी "लंबाई" उनके डिस्क आकार से काफी बड़ी है।

    +0

    मैं यह भी जांचता हूं कि फ़ाइल बफर इतना बड़ा नहीं है इसलिए मैं यह भी मानता हूं कि 15 एमएलएन दस्तावेज़ों की तरह डीबी में (भले ही यह कुछ जीबी होगा)। मुझे लगता है कि यह "अंतरिक्ष भूखा" शर्मनाक डीबी की सप्ताहांत है लेकिन मुझे यकीन नहीं है। – jlmfao

    4

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

    +2

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

    +1

    चुंबकीय बनाम एसएसडी एक आकार नहीं है-सभी फिट बैठता है; यदि आपका गर्म डेटा सेट राम में फिट बैठता है (बहुत आम है!) तो एसएसडी सिर्फ नाली के नीचे पैसे बह रहा है। कम अनुमानित वर्कलोड के लिए आप एसएसडी पर तैनात कैसंद्रा देखते हैं, जहां लिखने की तलाश में इसका बचाव (गैर) लिखने के लिए एक बड़ी जीत है। – jbellis

    1

    मुझे लगता है कि समस्या कुंजी है। कॉच डीबी अपने डेटा को बी-पेड़ में स्टोर करता है। यूयूआईडी - कुंजी कारण हैं कि आपको बड़ी मात्रा में डिस्क स्पेस की आवश्यकता है। बी-पेड़ प्रकृति द्वारा डेटा कॉम्पैक्ट स्टोर यूयूआईडी से बाहर है। एक कुंजी खोजने की कोशिश करें जो बी-पेड़ के लिए अधिक confortable है।

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