सामाजिक नेटवर्क / ज्ञान के आधार समुदाय के लिए डेटाबेस सुझाव?


12

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

मैंने MySQL और postgreSQL में सिस्टम बनाया है, अब मैं डेटाबेस में अपने ज्ञान और अनुभव का विस्तार करना चाहता हूं।

मेरा प्रोजेक्ट एक प्रकार का सोशल नेटवर्क / एग्रीगेट नॉलेज चीज़ होगा। (अभी भी havent यह वर्णन करने के लिए एक शब्द विकसित किया है)।

मैं देख रहा हूँ:

  • कैसेंड्रा (क्वेरी भाषा के अपने प्रकार का उपयोग करें); यह सुविधा संपन्न सामग्री और उच्च प्रदर्शन क्वेरी निष्पादन के लिए अच्छा लगता है। हालाँकि मैं इसके लिए बहुत उत्सुक नहीं हूँ क्योंकि इसे काम करने के लिए एक जावा वातावरण की आवश्यकता है और मैं ओरेकल के साथ कुछ भी नहीं करना पसंद करूँगा।
  • MongoDB (DBMS का noSQL प्रकार); हालाँकि, आप व्यावसायिक सूचना प्रश्नों की तरह सिद्ध SQL भाषा पर पहले से ही उपलब्ध सभी क्षमताओं को खो देते हैं।

सिस्टम की आवश्यकताएँ:

  • डेटा पाठ, दिनांक, समय, xml, छोटे ints, बूँद,
  • संरचना / व्यवहार : सामान्यीकृत 3NF, गैर वास्तविक समय, संबंधपरक, मापनीय, मजबूत
  • पर्यावरण: यूनिक्स / लिनक्स, कोई जावा!, अधिमानतः सी पर चलाते हैं

मैं सोच रहा था कि क्या आप मुझे किसी अन्य डेटाबेस सिस्टम की ओर इशारा कर सकते हैं, जिसमें मुझे शोध करना चाहिए।

मुझे ऑब्जेक्ट रिलेशनल डेटाबेस पर भी एक नज़र है, मैं उन्हें PHP ऑब्जेक्ट्स (PDO) के साथ काम करने का विचार पसंद करता हूं, हालांकि उनका प्रदर्शन थोड़ा खराब लगता है।

यह देखते हुए कि डीबीए यहां होगा, आपके द्वारा संचालित इन प्रणालियों पर किसी भी प्रतिक्रिया की सराहना की जाएगी।

धन्यवाद


3
यदि आप सामान्यीकृत 3nf चाहते हैं तो आपको एक रिलेशनल स्टोर करने की आवश्यकता है। अवधि।
जेएनके

2
मैं जावा को सिर्फ इसलिए नहीं ठोकूंगा क्योंकि यह "ओरेकल" है। इस काम के लिए सही उपकरण का उपयोग करें। यदि जावा सबसे अच्छा उपकरण है, तो मैं इसका उपयोग करूंगा। यदि C सही काम है, तो इसका उपयोग करें। ध्यान दें कि प्रत्येक उपकरण आपको क्या देता है, पेशेवरों और विपक्ष। भावना के आधार पर उस पर (डीबी पक्ष के साथ ही) एक अच्छा शिक्षित निर्णय लें।
क्रिस एल्डरिच

जवाबों:


4

आपकी अमूर्त आवश्यकताएं मेरे लिए "PostgreSQL" चिल्लाती हैं। हालाँकि, मुझे लगता है कि यह पूंजीपति के लिए क्या है, इसके बराबर रहने के लायक है, इसलिए यहां विभिन्न सामानों की एक सूची दी गई है जिन्हें आप जांचना चाहते हैं।

मुफ्त सामान

  • CouchDB - पहले NoSQL डेटाबेस में से एक, शक्तिशाली मैप / कम क्वेरी सिस्टम, अत्यधिक वितरित और गलती सहिष्णु। बेहतर NoSQL दावेदारों में से एक।
  • हाइपरडेक्स - खोज क्षमताओं के साथ बहुत नया, वितरित हैश तालिका।
  • रियाक - कुछ सम्मान के योग्य हैश तालिका वितरित की।

अजीब मुफ्त सामान

  • Metakit - SQLite जैसे एम्बेडेड डेटाबेस का अधिक लेकिन SQL- आधारित नहीं, इसलिए अधिक प्रक्रियात्मक।
  • FramerD - एक क्लासिक "नेटवर्क" डेटाबेस की तरह, बहुत सूचक-केंद्रित। शायद मर गया?
  • मैग्मा - स्मॉलटाकल ओओडीबीएमएस। शांत लेकिन अच्छी तरह से प्रलेखित नहीं।

गैर-मुक्त सामान

  • AllegroGraph - RDF (ग्राफ) डेटाबेस, SPARQL का समर्थन करता है। लिस्प के स्वाद का।
  • कैच - एक हाइब्रिड रिलेशनल / OO डेटाबेस, मूल रूप से MUMPS (IIRC) पर आधारित है।
  • वस्तुनिष्ठता - पिछले कुछ बड़ी OODBs में से एक। बहुत शक्तिशाली, प्रभावशाली और महंगी।
  • VoltDB - अत्यधिक स्केलेबल ज्यादातर रिलेशनल डेटाबेस। "सबसे" SQL का समर्थन करता है। बहुत नया। मुझे लगता है कि उनका एक सामुदायिक संस्करण भी है।

निष्कर्ष

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

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

आपके लिए प्रयोग सोचा

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

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

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


यहां से हटाए गए लंबे टिप्पणी थ्रेड का सारांश: "यह कहना अनुचित है कि एनओएसक्यूएल स्टोर किसी भी तरह से इसे और अधिक संभावना बनाने जा रहे हैं कि आप डेटा खो देंगे"।
जैक का कहना है कि topanswers.xyz

मैं जो कह रहा हूं उसे उम्र और व्यापक उपयोग के साथ करना है, न कि भंडारण इंजन के डिजाइन के साथ।
डैनियल लियोन्स

6

इस बात पर भी विचार करें कि ऐसा कोई कारण नहीं है कि आप कुछ चीजों के लिए रिलेशनल डेटाबेस और दूसरी चीजों के लिए नोस्कल डेटाबेस का उपयोग नहीं कर सकते हैं।


0

Nosql की बात करें तो मेरे पास फेसबुक संदर्भ के बारे में जोड़ने के लिए सिर्फ 1 चीज है:

यदि आप बहुत बड़े पैमाने पर योजना बनाते हैं, तो मेरा सुझाव है कि आप डीबी इंजन सेसडमिन फ्रेंडली बनाम डेवलपपर फ्रेंडली प्राप्त करें।

डेवलपर के अनुकूल और सुपर फास्ट MongoDB से बाहर निकलें जो भौगोलिक रूप से फैलाने का पैमाना नहीं हो सकता है, और कुशलता और आसानी से बैकअप का कोई रास्ता नहीं है। हालांकि यहां हम MongoDB का उपयोग करते हैं, ऐसा लगता है कि Riak या CouchDB sysadmins के चश्मे में बेहतर दिखती है (मुझे Riak या CouchDB का कोई अनुभव नहीं है)


2
यदि आप बड़े पैमाने पर चुनते हैं, तो ऐसा इसलिए है क्योंकि आप पहले से ही सूक्ष्म से छोटे और छोटे से छोटे तक बढ़ चुके हैं, और जिस तरह से आपने कुछ चीजें सीखी हैं जो आपको सही विकल्प बनाने में मदद करेंगी। जब आप बड़े पैमाने पर तैयार होते हैं, तो आप उन इंजीनियरों को बर्दाश्त कर सकते हैं जो बड़े पैमाने पर जानते हैं।
jcolebrand
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.