2010-11-22 15 views
18

संक्षिप्त प्रश्न: क्या कोई nosql flat-file डेटाबेस sqlite के रूप में उपलब्ध है?क्या कोई nosql फ्लैट फ़ाइल डेटाबेस है जैसे स्क्लाइट?

स्पष्टीकरण: फ्लैट फ़ाइल डेटाबेस विभिन्न प्रक्रियाओं में खोला जा सकता है पढ़ने के लिए, और एक प्रक्रिया रखना लिखने के लिए। मुझे लगता है कि यदि कोई सख्त निरंतर आवश्यकता नहीं है तो पढ़ने के कैश के लिए यह सही है। कहें 1-2 सेकेंड फ़ाइल या यहां तक ​​कि मेमोरी ब्लॉक को लिखें और पाठकों को इसके बाद अद्यतन डेटा मिलता है।

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

तो क्या कोई और विकल्प है? धन्यवाद!

उत्तर

9

शायद shelve? यह मूल रूप से एक महत्वपूर्ण मूल्य स्टोर है जहां आप पाइथन ऑब्जेक्ट्स स्टोर कर सकते हैं। http://docs.python.org/library/shelve.html

या शायद आप फाइल सिस्टम का उपयोग कर सकते हैं?

+0

मैं निश्चित रूप से टांड़ के साथ जाना होगा। मैं वास्तव में त्वरित पहुंच के लिए अलग-अलग फ़ाइलों में अचार से लोड/डंप का उपयोग कर रहा हूं, लेकिन शेल्व एक व्यवहार्य विकल्प है। – vonPetrushev

+0

.... मैं बस इसे भूल गया! पाइथन के साथ भेज दिया यह महान समाधान मुझे याद दिलाने के लिए बहुत बहुत धन्यवाद! – davyzhang

+1

ध्यान दें कि समवर्ती पढ़ने/लिखने के लिए, 'शेल्व' एसक्लाइट के लिए व्यवहार्य विकल्प नहीं है। अजगर डॉक्स से: "टांड़ मॉड्यूल हटाया वस्तुओं के लिए समवर्ती पढ़ने/लिखने के लिए एक्सेस का समर्थन नहीं करता (एकाधिक एक साथ पढ़ने के लिए पहुंच सुरक्षित हैं।) एक कार्यक्रम के एक शेल्फ लिखने के लिए खुला है, तो कोई अन्य कार्यक्रम यह पढ़ने के लिए खुला है या चाहिए। लेखन। यूनिक्स फ़ाइल लॉकिंग का उपयोग इसे हल करने के लिए किया जा सकता है, लेकिन यह यूनिक्स संस्करणों में भिन्न है और उपयोग किए गए डेटाबेस कार्यान्वयन के बारे में ज्ञान की आवश्यकता है। " दूसरी तरफ, स्क्लाइट, सभी समर्थित ओएस पर एसीआईडी ​​अनुपालन है और आपके लिए लॉकिंग काम करता है। – chadrik

6

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

यदि आप इसे पायथन के साथ उपयोग करना चाहते हैं, तो आप शायद externally-maintained pybsddb/bsddb3 library चाहते हैं, deprecated bsddb library पायथन 2.x (और अब 3.x में नहीं) में शामिल नहीं है।

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

अधिक जानकारी:

+3

सिफारिश के लिए बहुत बहुत धन्यवाद!लेकिन जब मैंने देखा कि उन्होंने mysql के साथ क्या किया, तो मैं ओरेकल से दूर चलेगा। लेकिन मैं वास्तव में एसक्लाइट की तुलना में बीएसडीबी माना जाता है। अगर उन्होंने इसे बेचा नहीं है, तो मैं निश्चित रूप से इसके साथ जाऊंगा। आपके द्वारा प्रदान की जाने वाली जानकारी के लिए धन्यवाद। यह मूल्यवान है। – davyzhang

+0

सरल आईफोन ऐप्स के लिए भी लाइसेंस शुल्क में BerkelyDB $ 15,000 + ऊपर है। शायद अधिक यदि आपका नाम और स्टार्टअप अधिक आशाजनक दिखता है तो मेरा। – Lothar

+0

@ लोथर बीडीबी मुफ्त सॉफ्टवेयर है। आप बिना किसी लाइसेंस शुल्क के इसके साथ अधिक मुफ्त सॉफ्टवेयर विकसित कर सकते हैं। – bugmenot123

0

कुछ तुच्छ लेकिन व्यावहारिक, आप कुंजी मान डेटा संरचना उपयोग मसालेदार शब्दकोश ऊपर का समर्थन भंडारण देख रहे हैं। यदि आवश्यक हो तो बेहतर प्रदर्शन के लिए सीपीकल का उपयोग करें।

+0

केवल एक टेबल के साथ स्क्लाइट या फायरबर्ड का उपयोग करें। या OpenLDAP प्रोजेक्ट से डेटाबेस घटक, जो अति तेज़ है। http://symas.com/mdb/ – Lothar

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