2009-04-23 19 views
27

डुप्लिकेटगूगल के बिगटेबल बनाम एक संबंधपरक डेटाबेस

मैं गूगल के बिगटेबल के बारे में ज्यादा पता नहीं है, लेकिन सोच रहा हूँ क्या गूगल की बिगटेबल के बीच का अंतर और MySQL जैसे संबंधपरक डेटाबेस है। दोनों की सीमाएं क्या हैं?

+2

"संबंधित" साइडबार पर कई डुप्लिकेट। http: // stackoverflow।कॉम/प्रश्न/144001/चुनने-एक-डेटाबेस-प्रकार –

उत्तर

30

बिगटेबल Google की आविष्कार है जो कंपनी द्वारा नियमित रूप से संबंधित जानकारी की भारी मात्रा में निपटने के लिए है। एक बिगटेबल डेटासेट बड़ी संख्या में सर्वरों में वितरित भंडारण के साथ विशाल आकार (कई पेटबाइट्स) तक बढ़ सकता है। बिगटेबल का उपयोग करने वाली प्रणालियों में Google की वेब इंडेक्स और Google धरती जैसी परियोजनाएं शामिल हैं।

Google whitepaper विषय पर के अनुसार:

एक बिगटेबल एक विरल, वितरित, लगातार बहुआयामी क्रमबद्ध मानचित्र है। मानचित्र को पंक्ति कुंजी, कॉलम कुंजी और टाइमस्टैम्प द्वारा अनुक्रमित किया जाता है; मानचित्र में प्रत्येक मान बाइट्स की एक अनियंत्रित सरणी है।

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

बिगटेबल डेटासेट को जीक्यूएल ("जी-कवाल") नामक एक भाषा का उपयोग करके ऐपइंजिन जैसी सेवाओं से पूछताछ की जा सकती है जो कि एसक्यूएल के सबसेट पर आधारित है। GQL से स्पष्ट रूप से अनुपलब्ध किसी भी प्रकार का JOIN कमांड है। बिगटेबल डेटाबेस की वितरित प्रकृति की वजह से, दो तालिकाओं के बीच एक संयोजन करने से बहुत अक्षम हो जाएगा। इसके बजाए, प्रोग्रामर को अपने आवेदन में इस तरह के तर्क को लागू करना होगा, या उसके आवेदन को डिजाइन करना होगा ताकि इसकी आवश्यकता न हो।

+5

"उदाहरण के लिए, कल्पना करें कि यदि आप Google की संपूर्ण वेब सर्च सिस्टम को MySQL डेटाबेस के साथ कार्यान्वित करने का प्रयास करते हैं तो कठिनाइयों का सामना करना होगा" कठिनाइयों का क्या होगा? – Moeb

+4

@ एमोबा टेबल आकार, इंडेक्स आकार, रिडंडेंसी, बड़े पैमाने पर समांतर एक साथ पहुंच, और कई अन्य। MySQL एक बिंदु तक अच्छी तरह से करता है, लेकिन कई मशीनों को स्केलिंग और शेरिंग एक समन्वय दुःस्वप्न बन जाता है। – tylerl

+0

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

14

गूगल के बिगटेबल और अन्य समान परियोजनाओं (पूर्व: CouchDB, HBase) डाटाबेस सिस्टम उन्मुख हैं कि ताकि डेटा ज्यादातर denormalized है (यानी, दोहराया और समूहीकृत)।

मुख्य लाभ हैं: - जुड़ें संचालन असमान्यीकरण की वजह से कम महंगा कर रहे हैं - प्रतिकृति/आंकड़ों का वितरण डेटा स्वतंत्रता (यानी, अगर आप दो नोड्स भर में डेटा वितरित करना चाहते हैं, तो आप शायद जीता की वजह से कम महंगा है एक नोड और अन्य संबंधित इकाई में किसी अन्य नोड में एक इकाई होने की समस्या नहीं है क्योंकि इसी तरह के डेटा को समूहीकृत किया जाता है)

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

ओआरएम स्टोरेज मॉडल (टेबल, जॉइन, एफकेएस) की समृद्धि की वजह से अच्छा है। वितरित डेटाबेस स्केल की आसानी के कारण अच्छे हैं।

+9

लेकिन यदि डेटा सामान्य नहीं है, तो अपडेट अधिक कठिन होंगे क्योंकि आपको एकाधिक स्थानों पर एक ही जानकारी को प्रतिबिंबित करने की आवश्यकता हो सकती है, और यदि वे अलग-अलग नोड्स हैं तो इससे भी बदतर। Denormalized डेटाबेस कैसे सौदा करते हैं? – Moeb

+7

एआरएम ... क्या आप * आरआरबीएमएस * के साथ * ओआरएम * शब्द को भ्रमित नहीं कर रहे हैं? –

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