NoSQL डेटाबेस, वहाँ कई चीजें हल करने के लिए कर रहे हैं मुख्य रूप से:
(चर्चा) BigData => लगता है टीबी, पंजाब, आदि ..
वितरित सिस्टम के साथ कार्य करना/डेटासेट => कहें कि आपके पास 42 उत्पाद हैं, इसलिए उनमें से 13 शिकागो डेटासेंटर में रहते हैं, एनवाई में 21 और जापान में कहीं और 8, लेकिन एक बार जब आप सभी 42 उत्पादों के खिलाफ पूछते हैं, तो आपको यह जानने की आवश्यकता नहीं होगी कि वे कहां स्थित हैं: नोएसक्यूएल डीबी होगा। यह भी एक बहुत अधिक मस्तिष्क शक्ति (सर्वर) को मुश्किल कम्प्यूटेशनल समस्याओं को हल करने संलग्न करने के लिए अनुमति देता है [प्रतीत नहीं होता है यह आपके उपयोग के मामले फिट होगा, लेकिन यह नोट करने के लिए एक दिलचस्प बात है]
विभाजन => अपने होने डीबी आसानी से उन शांत 8 उत्पादों जापान में के अलावा वितरित किया,, यह भी एक आसान डेटा प्रतिकृति के लिए अनुमति देता है, तो उन 42 उत्पादों, 3 का एक पहलू से दोहराया किया जाएगा, उदाहरण के लिए, जो आप का मतलब होगा डीबी हर के लिए 3 प्रतियां होता उत्पाद। इसलिए यदि कुछ नीचे चला जाता है, तो कोई समस्या नहीं => यहां एक प्रतिकृति उपलब्ध है। यह वह जगह है जहां नोएसक्यूएल डेटाबेस वास्तव में बनाम आरडीबीएमएस बनाते हैं। अनुमोदित है कि आप ओरेकल/माईएसक्यूएल/पोस्टग्रेएसक्यूएल/आदि को शेड, विभाजन और क्लस्टर कर सकते हैं .. लेकिन यह कई जटिलताओं की प्रक्रिया है और आमतौर पर आपके द्वारा नियोजित अधिकांश लोगों के लिए एक रखरखाव सिरदर्द है।
(अपने प्रश्नों के)
होगी चारों ओर दैनिक न्यूनतम 1000 उपयोगकर्ता
1000 उपयोगकर्ता दैनिक एक बहुत ही कम मात्रा है, जब तक आप एक NoSQL समाधान था कि चयन
एक सबूत अवधारणा के रूप में कल 3 बजे लिखा, यहां कोई चिंता नहीं होनी चाहिए। लेकिन यदि आप सफल हैं, और कुछ महीनों में 100,000,000 उपयोगकर्ता होंगे, तो नोएसक्यूएल स्केल करने के लिए आसान होगा।
विल उपलब्धता एक समस्या हो?"प्रतिकृतियां कि पढ़ने का जवाब या इससे पहले कि यह सफल माना जाता है अनुरोध लिखना चाहिए की मात्रा":
ठोस NoSQL समाधान आप कुछ है जो किसी quorum
कहा जाता है निर्दिष्ट करने के लिए अनुमति देते हैं। कुछ समाधान hinted handoff
नामक कुछ भी करते हैं: "पड़ोसी नोड अस्थायी रूप से असफल नोड" के लिए संग्रहण संचालन लेते हैं। सामान्य रूप से, आप अपनी आवश्यकताओं के आधार पर उपलब्धता को नियंत्रित करने में सक्षम होना चाहिए।
(अपनी टिप्पणी से)
- हम विस्तार की योजना बना रहे हैं। और डेटाबेस को एक बाधा नहीं होना चाहिए
Expanding
एक बहुत सापेक्ष शब्द है। "वित्तीय उद्योग काफी विस्तारित है", और वे अब भी दिन-प्रतिदिन के संचालन के लिए आरडीबीएमएस का उपयोग करते हैं। फेसबुक MySQL का उपयोग करता है। प्रमुख बैंकों, मैंने ओरेकल/माईएसक्यूएल/पोस्टग्रेएसक्यूएल/डीबी 2/आदि का उपयोग करने के लिए काम किया था, और उनमें से कुछ केवल नोएसक्यूएल का उपयोग करते हैं, लेकिन डेटा के लिए नहीं, जिसके लिए हर समय 100% स्थिरता की आवश्यकता होती है। यहां तक कि फेसबुक केवल "इनबॉक्स खोज" जैसी चीजों के लिए कैसंद्रा का उपयोग करता है। लेकिन यदि विस्तार से आप अधिक डेटा और अधिक उपयोगकर्ता (अनुरोध, कनेक्शन, आदि ..) का मतलब है, तो स्केल करने के लिए NoSQL बहुत आसान होगा। फिर, इसका मतलब यह नहीं है कि आप आरडीबीएमएस को स्केल नहीं कर सकते हैं, यह सिर्फ अधिक कठिन/जटिल है।
- से मैं क्या पढ़ा है, कोई SQL डेटाबेस में हम नहीं है, स्कीमा बारे में बहुत कुछ सोचने के लिए
मेरे अनुभव में है, तो मैं एक प्रणाली है कि, किसी भी अच्छा है का निर्माण मैं हमेशा को स्कीमा के बारे में सोचना होगा। NoSQL डेटाबेस आपको आपके द्वारा जारी किए गए डेटा के साथ लचीला होने की अनुमति देता है, लेकिन इसका मतलब यह नहीं है कि आपको स्कीमा के बारे में सोचना चाहिए। उदाहरण के लिए डेटा का अनुक्रमण, या यह sharding कई समूहों, या यहाँ तक कि अनुबंध/इंटरफेस है कि आप ग्राहकों को बेनकाब कर सकते हैं, आदि के बारे में सोचो ..
- रखरखाव NoSQL डेटाबेस के लिए आवश्यक बहुत कम है
मैं यह नहीं कहूंगा कि यह सामान्य रूप से सच है, जब तक हम बिगडाटा के बारे में बात करते हैं। उदाहरण के लिए PostgreSQL ले लो। यह सॉफ्टवेयर का एक बेहद शानदार टुकड़ा है, जो काम करने और बनाए रखने में काफी आसान है। आरडीबीएमएस दुनिया के लिए एक और प्लस => लोग महसूस करते हैं एक बहुत एसक्यूएल के साथ अधिक आरामदायक। इसी कारण से, उदाहरण के लिए, कैसंद्रा दोस्तों ने 0.8 में CQL
जारी किया, जो कि SQL का एक बहुत ही सीमित सबसेट है। maintenance
जैसी शर्तों को Talent
, Knowledge
, Expertise
जैसी शर्तों के साथ कंधे के कंधे पर खड़ा होना चाहिए। चूंकि आप कैसंद्रा का उपयोग करते हैं, उदाहरण के लिए, वह लड़की बहुत "उच्च रखरखाव" है, लेकिन डेटास्टैक्स के लोगों के लिए नहीं, जिनके पास Expertise
है, लेकिन आपको इसके लिए भुगतान करना होगा।
आपका मुख्य प्रश्न
- मैं एक ब्लॉग है कि NoSQL डेटाबेस ऑनलाइन मनी लेनदेन अर्थात के लिए बहुत अच्छा नहीं कर रहे हैं में पढ़ा हैजहां डेटा अखंडता सर्वोच्च महत्व है। (मेरे उत्पाद ऑनलाइन पैसे के लेन-देन है)
वास्तव में जानते हुए भी कि आपके उत्पाद है बिना, यह कहने के लिए कि क्या एक NoSQL डेटाबेस/एक अच्छा फिट नहीं होगा होगा कठिन है। यदि उत्पाद का प्राथमिक लक्ष्य "ऑनलाइन मनी ट्रांजैक्शन" है, तो मैं नोएसQL डेटाबेस (कम से कम आज 2011 के वर्ष में) के खिलाफ सुझाव दूंगा। यदि "ऑनलाइन मनी ट्रांजैक्शन" केवल आवश्यकताओं में से एक है, लेकिन "कोर" के आधार पर आपके उत्पाद का "मूल" नहीं है, तो आप निश्चित रूप से NoSQL डेटाबेस को आज़मा सकते हैं, और उदाहरण के लिए प्रक्रिया के लिए बाहरी सेवा का उपयोग करें (उदाहरण के लिए Google Checkout, आदि ..) गारंटीकृत स्थिरता के साथ आपके लेनदेन।
एक तकनीकी नोट के रूप में, यदि आप वितरण के साथ हल होने से लाभ को हल करने की कोशिश कर रहे हैं, तो मैं एरलांग (जैसे रीक, कॉच डीबी इत्यादि) में लिखे गए डेटाबेस की अनुशंसा करता हूं, क्योंकि एरलांग पहले से ही हल हो जाती है दशकों से सफलतापूर्वक वितरित चीजों में से अधिकांश।
इस तरह के सिस्टम में लेनदेन करने की अत्यधिक अनुशंसा की जाती है। आप nosql के साथ लेनदेन अनुकरण कर सकते हैं लेकिन आप पहिया का आविष्कार करेंगे। – varela
@ वेरला: क्या आप कृपया अपना मुद्दा विस्तृत कर सकते हैं, मैं समझने में असमर्थ हूं कि आपको वास्तव में क्या कहना है। – Akamad007
सबसे अधिक समस्या concurrency है। यदि आप उदाहरण के लिए पैसा कम करना चाहते हैं, तो आप केवल 1 नहीं कर सकते हैं) उपलब्ध राशि की जांच करें 2) यदि उपयोगकर्ता के पास पैसा है तो सबस्ट्रेट करें। आपको पहले विशेष ध्वज के साथ उपयोगकर्ता खाते को परिवर्तनों से लॉक करने की आवश्यकता है और फिर संचालन करें। एसक्यूएल डेटाबेस के साथ आपके पास ऐसा करने के मानक तरीके हैं। – varela