2011-11-03 19 views
61

मैं विंडोज़ Azure पर NoSQL डेटाबेस का उपयोग करना चाहता हूं और डेटा वॉल्यूम बहुत बड़ा होगा। क्या एक एज़ूर टेबल स्टोरेज या एक मोनो डीबी डेटाबेस एक वर्कर भूमिका का उपयोग कर चल रहा है बेहतर प्रदर्शन और स्केलेबिलिटी प्रदान कर सकता है? क्या किसी ने मजदूर भूमिका का उपयोग करके अज़ूर पर मोंगोडीबी का इस्तेमाल किया है? Azure टेबल संग्रहण पर Azure पर MongoDB का उपयोग करने पर अपने विचार साझा करें।Azure पर Vure MongoDB

उत्तर

72

तालिका भंडारण एक कोर विंडोज Azure भंडारण सुविधा, स्केलेबल होने के लिए ( 100TB 200TB प्रति खाता 500TB), टिकाऊ (डेटा सेंटर में ट्रिपल दोहराया, वैकल्पिक रूप से एक और डाटा सेंटर के लिए georeplicated), और स्कीमा-डिज़ाइन किया गया है (प्रत्येक पंक्ति में आपके इच्छित गुण हो सकते हैं)। एक पंक्ति विभाजन कुंजी + पंक्ति कुंजी द्वारा स्थित है, जो बहुत तेज़ लुकअप प्रदान करती है। सभी टेबल स्टोरेज एक्सेस किसी भी भाषा (एसडीके के साथ, आरईएसटी एपीआई के शीर्ष पर बनाया गया है, पहले से ही .NET, PHP, जावा, पायथन & रूबी के लिए जगह पर) के माध्यम से उपयोग योग्य है।

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

दोनों की तुलना करते समय, याद रखें कि तालिका संग्रहण संग्रहण-जैसी-सेवा है: आप बस एक प्रसिद्ध आरईएसटी एंडपॉइंट तक पहुंच सकते हैं। MongoDB के साथ, आप डेटाबेस को बनाए रखने के लिए ज़िम्मेदार हैं (उदाहरण के लिए जब भी मोंगोडीबी इंक (पूर्व में 10gen) मोंगोडीबी का एक नया संस्करण निकाल देता है, तो आपको तदनुसार अपना सर्वर अपडेट करना होगा)।

MongoDB इंक के अल्फा संस्करण के बारे में jtoberon द्वारा की ओर इशारा किया: replica- बिना

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

जबकि 10gen के विंडोज़ एज़ूर रैपर को अभी भी 'अल्फा' माना जाता है, mongod.exe नहीं है। आप मोंगोड एक्सई लॉन्च कर सकते हैं जैसे कि आप किसी भी अन्य विंडोज एक्सई लॉन्च करेंगे। यह लॉन्चिंग के आसपास सिर्फ प्रबंधन कोड है, और यही वह है जो अल्पा कार्यान्वयन प्रदर्शित कर रहा है।

2011-12-8 संपादित करें: यह अब अल्फा राज्य में नहीं है। आप नवीनतम मोंगोडीबी + विंडोज एज़ूर प्रोजेक्ट here डाउनलोड कर सकते हैं, जो प्रतिकृति-सेट समर्थन प्रदान करता है।

प्रदर्शन के लिए, मुझे लगता है कि आपको कुछ बेंचमार्किंग करने की आवश्यकता होगी। ऐसा कहकर, निम्नलिखित पर विचार करें:

  • टेबल संग्रहण या मोंगोडीबी तक पहुंचने पर, एक वेब रोल कहें, आप अभी भी विंडोज़ एज़ूर स्टोरेज सिस्टम तक पहुंच रहे हैं।
  • MongoDB अपने स्वयं के कैश के लिए बहुत सारी मेमोरी का उपयोग करता है। इस कारण से, बड़े पैमाने पर मोंगोडीबी सिस्टम बहुत बड़े आकार के आकार में तैनात किए जाते हैं। तालिका संग्रहण पहुंच के लिए, आपके पास समान स्मृति-आकार विचार नहीं होगा।

संपादित करें अप्रैल 7, 2015 आप किसी दस्तावेज़ आधारित डेटाबेस के रूप में एक सेवा, Azure अब DocumentDB प्रदान करता है उपयोग करना चाहते हैं।

+0

मैं इस अपने आप Tris नहीं किया है, लेकिन MongoDB एक Azure के रूप में आ रहा है एड-ऑन स्टोर के माध्यम से। संभवतः यह तैनाती को अज़ूर टेबल स्टोरेज के रूप में सरल बनाता है। – John

35

मैंने दोनों का उपयोग किया है।

एज़ूर टेबल्स: मृत सरल, तेज़, यहां तक ​​कि सरल प्रश्न लिखना वाकई मुश्किल है।

मोंगो: अच्छी तरह से चल रहा है, कई पूछताछ क्षमताओं के लिए, कई उदाहरण विश्वसनीय होने की आवश्यकता है।

संक्षेप में, यदि आपके प्रश्न वास्तव में सरल (कुंजी-> मान) हैं, तो आपको लागत तुलना (मुख्य रूप से अज़ूर पर मोंगो की मेजबानी की लागत के विरुद्ध लेनदेन की संख्या) के चलते लेनदेन की संख्या चलनी होगी। मैं इसके लिए टेबल स्टोरेज पर जाना चाहूंगा। यदि आपको अधिक विस्तृत प्रश्नों की आवश्यकता है और SQL Azure पर जाना नहीं चाहते हैं, तो मोंगो आपकी सबसे अच्छी शर्त है।

+0

क्या यह अभी भी डब्ल्यूसीएफ डाटा सर्विसेज जैसे एंडपॉइंट्स प्रकाशित करने के बाद मामला है? मुझे लगता है कि आप उन एंडपॉइंट्स पर LINQ कर सकते हैं –

+0

क्या आप अपनी टिप्पणी को समझा सकते हैं (या इसके बारे में संदर्भ को इंगित करें) "कई उदाहरण विश्वसनीय होने की आवश्यकता है"? 2 विश्वसनीय क्यों नहीं होंगे? – Mark

+1

हां, यह अभी भी मामला है कि Azure टेबल्स में क्वेरी कठिन है, यहां तक ​​कि नए रिलीज में भी। आप LINQ कर सकते हैं, लेकिन सभी सुविधाओं का समर्थन नहीं किया जाता है - उदाहरण के लिए, ऑर्डरबी, "इसमें", और गिनती है और परिणामस्वरूप एक त्रुटि होगी। पीके के खिलाफ उन लोगों के अलावा कोई भी प्रश्न तालिका स्कैन में परिणाम देता है। – Daniel

5

मेरी पहली पसंद AzureTables है क्योंकि सास मॉडल और कम लागत और SLA 99.99%
http://alexandrebrisebois.wordpress.com/2013/07/09/what-if-20000-windows-azure-storage-transactions-per-second-isnt-enough/


कुछ सीमाएं .. http://msdn.microsoft.com/en-us/library/windowsazure/jj553018.aspx


http://www.windowsazure.com/en-us/pricing/calculator/?scenario=data-management

या छोटे व्यवसाय के

के लिए AzureSQL

डॉक्यूम entDB http://azure.microsoft.com/en-us/documentation/services/documentdb/ http://azure.microsoft.com/en-us/documentation/articles/documentdb-limits/


दूसरी पसंद अमेज़न प्रस्ताव S3

या गूगल टेबल सहित कई बादल प्रदाताओं है https://developers.google.com/bigquery/pricing


वां चुनाव शो का प्रबंधन अपने आप को कोई नींद MongoDB है सब से अच्छी तरह से मैं दिखेगा फिर पहले दो SAAS


मेरी पसंद अगर मैं "CLOUD" चला रहा हूं I wi ll संभव "किराए पर आईटी" के रूप में के रूप में ज्यादा सास मॉडल के लिए जाना ...

सवाल यह है कि क्या मेरे ऐप की जरूरत DocumentDB या AzureSQL
DocumentDB प्रलेखन यह AzureTables है या http://azure.microsoft.com/en-us/documentation/services/documentdb/

मूल्य निर्धारण कैसे काम करता है Azure http://azure.microsoft.com/en-us/pricing/details/documentdb/

इस मज़ा http://www.documentdb.com/sql/demo

8

मुझे लगता है कि इस सवाल का दिनांकित है है। मैं उन लोगों के लिए निम्न जानकारी जोड़ना चाहता हूं जो इस प्रश्न पर उनकी खोज में आ सकते हैं।

ध्यान दें कि अब, मोंगोडीबी को अज़ूर पर पूरी तरह से प्रबंधित सेवा के रूप में पेश किया जाता है।(आधिकारिक तौर पर की अप्रैल '15 के रूप में बीटा में)

देखें: http://www.mongodb.com/partners/cloud/microsoft या https://azure.microsoft.com/en-us/blog/announcing-new-mongodb-instances-on-microsoft-azure/

सी (मूल्य निर्धारण सहित): https://azure.microsoft.com/en-us/marketplace/partners/mongolab/mongolab/

2

जवाब से ऊपर सभी अच्छे हैं - लेकिन असली जवाब पर निर्भर करता है आपकी आवश्यकताओं क्या हैं। आपको यह समझने की जरूरत है कि आप किस डेटा का संसाधन संसाधित कर रहे हैं, डेटा पर आप किस प्रकार के संचालन करना चाहते हैं और फिर अपनी आवश्यकताओं को पूरा करने वाले समाधान का चयन करें।

2

बिल्ड 2016 में यह घोषणा की गई कि दस्तावेज़ डीबी सभी मोंगोडीबी ड्राइवरों का समर्थन करेगा। यह डॉकडीबी के साथ टूलिंग मुद्दों की कमी में से कुछ हल करता है और मोंगो ऐप्स को माइग्रेट करना भी आसान बनाता है।

0

एक बात याद करने के लिए यह एक स्ट्रिंग या संख्या या बुलियन या तिथि आदि एक एक के खिलाफ एक वस्तु की दुकान नहीं कर सकते हैं होने के लिए इकाई में हर संपत्ति का समर्थन करता है Azure तालिका भंडारण जटिल डेटा प्रकार का समर्थन नहीं करता है कुंजी, जो मुझे लगता है कि नोएसक्ल डीबी के लिए जरूरी है। https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/understanding-the-table-service-data-model स्क्रॉल को संपत्ति प्रकार

+0

"Azure Table Storage समर्थन नहीं करता है जटिल डेटा प्रकार। " यह पूरी तरह से सही नहीं है। Azure संग्रहण एसडीके संस्करण 8.0.0.0 के साथ, तालिका भंडारण में जटिल वस्तुओं को लिखने के लिए एपीआई एसडीके में जोड़े गए हैं। Https://msdn.microsoft.com/en-us/library/azure/mt775434.aspx और https://msdn.microsoft.com/en-us/library/azure/mt775432.aspx देखें। मैंने इन एपीआई को लिखा है :) इसलिए यदि आपके पास कोई टिप्पणी है तो पूछने के लिए स्वतंत्र महसूस करें .. –

+0

क्या आप कृपया नोड.जेएस के साथ उदाहरण साझा कर सकते हैं, यहां एक संपत्ति आकार की बाधा है जो 64 केबी अधिकतम सीमा को सही करती है, इसके साथ हम इसे स्टोर कर सकते हैं बहुत बड़ी वस्तु ?, अग्रिम धन्यवाद ... –

+0

हाँ मैं मानता हूं कि हम इसे क्रमबद्ध और deserializing द्वारा कर सकते हैं, लेकिन नो-एसक्यूएल डीबी को बिना किसी अतिरिक्त प्रयास के डिफ़ॉल्ट रूप से उनका समर्थन करना चाहिए, लेकिन मुझे लगा जैसे Azure एक टेबल प्रकार भंडारण है (कॉलम वार, जो कि सरल कुंजी-मूल्य डेटा के लिए सबसे उपयुक्त है)। –