2008-09-10 14 views
13

क्या किसी ने अमेज़ॅन SimpleDB डेटा स्टोर की लाइनों के साथ उनके बैकएंड डेटाबेस के रूप में कुछ उपयोग करने पर विचार किया है?अमेज़ॅन SimpleDB

एसक्यूएल सर्वर होस्टिंग (कम से कम ब्रिटेन में) महंगा तो क्लाउड फ़ाइल संग्रहण (S3) के साथ-साथ कुछ इस तरह इमारत क्षुधा है कि आपके आवेदन के साथ विकसित कर सकता है के लिए इस्तेमाल किया जा सकता है।

सिद्धांत में महान लेकिन क्या कोई इसका उपयोग करने पर विचार करेगा। वास्तव में वास्तविक उत्पादन सॉफ्टवेयर के लिए वास्तव में इसका उपयोग करने वाला कोई भी व्यक्ति है क्योंकि मुझे आपकी टिप्पणियां पढ़ना अच्छा लगेगा।

उत्तर

14

यह Dare से अमेज़ॅन सेवाओं का एक अच्छा विश्लेषण है।

S3 संभाला क्या मैं आम तौर पर के रूप में "ब्लॉब संग्रहण" वर्णित सुना है। एक सामान्य वेब एप्लिकेशन में आम तौर पर मीडिया फाइलें और अन्य संसाधन होते हैं (छवियां, सीएसएस स्टाइलशीट्स, स्क्रिप्ट्स, वीडियो फाइलें इत्यादि) जिन्हें आसानी से नाम/पथ से एक्सेस किया जाता है। हालांकि इनमें से बहुत से संसाधनों में मेटाडाटा भी है (उदाहरण के लिए YouTube पर एक वीडियो फ़ाइल में इसकी रेटिंग के बारे में मेटाडेटा है, जिसने इसे अपलोड किया है, विचारों की संख्या इत्यादि) जिन्हें भी संग्रहीत करने की आवश्यकता है। क्वेरी करने योग्य, स्कीमेटेड स्टोरेज की आवश्यकता है जहां SimpleDB आता है। ईसी 2 एक वर्चुअल सर्वर प्रदान करता है जिसका उपयोग स्थानीय फ़ाइल सिस्टम इंस्टेंस के साथ पूर्ण गणना के लिए किया जा सकता है जो किसी भी कारण से वर्चुअल सर्वर डाउन होने पर लगातार नहीं होता है। जब आप ईसी 2 द्वारा प्रदान की गई कम्प्यूटेशनल क्षमताओं में फेंकते हैं तो सरल डीबी और एस 3 के साथ आपके पास "वेब 2.0" शैली अनुप्रयोगों की एक बड़ी श्रेणी बनाने के लिए बिल्डिंग ब्लॉक हैं। हालांकि न तो एस 3 और न ही सरल डीबी एक डेवलपर के लिए एक समाधान प्रदान करता है जो सामान्य रूप से डेटाबेस संचालित वेब अनुप्रयोग बनाने या उन अनुप्रयोगों के लिए सामान्य एलएएमपी या डब्ल्यूआईएससी डेवलपर अनुभव चाहता है, जिनके पास कस्टम स्टोरेज की आवश्यकता हो सकती है जो ब्लॉब स्टोरेज की बाल्टी में अच्छी तरह फिट नहीं होती या schematized भंडारण। एक सतत फाइल सिस्टम तक पहुंच के बिना, अमेज़ॅन के क्लाउड कंप्यूटिंग प्लेटफॉर्म पर डेवलपर्स को वांछित अनुभव प्राप्त करने के लिए ईसी 2 से एस 3 तक मैन्युअल रूप से बैकिंग डेटा समेत परिष्कृत समाधानों के साथ आना पड़ा।

0

लेकिन क्या आपको वास्तव में SQL सर्वर की आवश्यकता है? क्या आप PostgreSQL या MySQL के साथ नहीं रह सकते हैं? दोनों ज्यादातर कार्यों के लिए ठीक साबित हुए हैं।

अब यदि आपको SQL सर्वर सुविधाओं की आवश्यकता है तो आप भाग्य से बाहर हैं।

एक और विकल्प सर्वर किराए पर लेना है। महंगा कितना महंगा है?

(मैं अमेज़न S3 का उपयोग किया है एक आवेदन के लिए छवियों को स्टोर करने के लिए, यह ठीक है और ठीक काम करता है, कम से कम उस के लिए)

0

मैं SimpleDB उपयोग नहीं किया है, लेकिन एस 3 के संयोजन का उपयोग किया गया, EC2, और हमारे आवेदन के लिए MySQL।

जब तक आप SimpleDB उपयोग करने के लिए तैयार हैं, तो आप के रूप में अच्छी MySQL विचार कर सकते हैं (जो बहुत स्केलेबल है, और कहा कि महंगा नहीं)।

एस 3 और ईसी 2 पक्ष पर, यह अभ्यास में भी बढ़िया है।

+0

आरडीएस> MySQL बहुत महंगा है! – Jasper

11

मैंने पर्ल आसान, नेट :: अमेज़ॅन :: सरल डीबी :: सरल में सरलता के लिए एक ऐप पोर्ट करने के लिए एक लाइब्रेरी लिखना समाप्त कर दिया है क्योंकि मुझे अमेज़ॅन क्लाइंट लाइब्रेरी दर्दनाक लगता है। लाइब्रेरी अभी तक सीपीएएन पर नहीं है, लेकिन यह http://rjurneyopen.s3.amazonaws.com/SimpleDB/Simple.pm पर है। यह विचार सरल डीबी में और बाहर सामान हैश के लिए तुच्छ बनाना था।

मैंने अभी इसका उपयोग करने के लिए एक ऐप पोर्ट किया है। कुल मिलाकर मैं SimpleDB से प्रभावित हूं ... यहां तक ​​कि अक्षम प्रश्नों को वापस करने के लिए केवल 2-3 सेकंड लगते हैं। सरल डीबी आपकी एर्लंग/समानांतर प्रकृति के कारण आपकी तालिका के आकार की परवाह नहीं करता है। टेबल्सन इसके लिए आसान हैं।

दर्द इस तथ्य से आता है कि आप गिनती, योग या समूह द्वारा गणना नहीं कर सकते हैं। यदि आप इनमें से किसी भी चीज को करने की योजना बना रहे हैं ... तो सरल डीबी शायद आपके लिए नहीं है। फिलहाल कार्यक्षमता के मामले में यह memcached और MySQL के बीच कहीं मौजूद है। आप LIMIT द्वारा ऑर्डर कर सकते हैं, जो अच्छा है। यह भी अच्छा है कि आपको इसे स्वयं स्केल करने की ज़रूरत नहीं है, और यह अच्छा है कि इससे परवाह नहीं है कि आप इसमें कितना सामान डालते हैं। लेकिन विश्लेषिकी जैसे अधिक उन्नत संचालन सबसे अच्छा दर्दनाक हैं। आपको अपनी खुद की गणना सर्वर की तरफ करना होगा। यह भी एक बड़ा प्लस है कि किसी भी कंप्यूटर पर मैं अपने डेटा पूछने के लिए सरलीब सीएलआई http://code.google.com/p/amazon-simpledb-cli/ का उपयोग कर सकता हूं।

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

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

यह सब लाइब्रेरी में निकाला जा सकता है जो सरल डीबी के ऊपर बैठता है, इसलिए सरल डीबी के उपयोग के लिए आप एक अच्छी लाइब्रेरी चुनना चाहेंगे ... आप शायद इसे सीधे निपटाना नहीं चाहते हैं। चीज़ों को आसान बनाने के लिए PHP पक्ष पर कुछ काम है, और मेरी लाइब्रेरी है। एक रेल सक्रियता है, लेकिन ऐसा लगता है कि यह आपके लिए बहुत कुछ नहीं करता है।

सभी अभी भी गेम में शुरुआती सभी में, लेकिन अन्य एपीआई (ट्विटर को दिमाग में आता है) की तुलना में, मुझे कहना है कि सरल डीबी रीस्ट एपीआई बहुत सरल है (विशेष रूप से यह मानना ​​है कि यह एक्सएमएल है) और काम करने के लिए विनम्र साथ में। मैं इसकी सिफारिश करता हूं ... आपके आवेदन की आवश्यकताओं और इसके उपयोग के अर्थशास्त्र के आधार पर। यदि आप ऐसी सेवा को तेजी से स्केल करना चाहते हैं जो डीबी पर बहुत अधिक भार नहीं डालता है और स्केलेबल माईएसक्यूएल/मेमकेचे कॉम्बो से परेशान नहीं होना चाहता है ... तो SimpleDB आपके लिए 'सरल' समाधान प्रदान कर सकता है।

मुझे उम्मीद है कि इसकी विशेषताएं बढ़ती रहेंगी और यह अधिक जटिल और रोचक चीजें करने वाले अधिक से अधिक अनुप्रयोगों के लिए एक अच्छा विकल्प होगा। लेकिन अभी यह आपकी सामान्य वेब 2.0 सेवा के लिए लक्षित और उपयुक्त है।

3

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

0

सरल डीबी कई अनुप्रयोगों के लिए बहुत अच्छा काम करता है .... यदि आपके प्रोजेक्ट को कई विश्लेषणात्मक रिपोर्टिंग, जुड़ने आदि की आवश्यकता होगी, तो आप MySQL या हाइब्रिड-मॉडल पर विचार कर सकते हैं।

यदि आप SimpleDB पर जाते हैं, तो हमने अपने आंतरिक उपयोग के लिए Radquery.com विकसित किया है और इसे जनता के लिए खोला है।

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