MongoDB शार्डिंग: उदाहरण के साथ चरण दर चरण ट्यूटोरियल
⚡ स्मार्ट सारांश
MongoDB शार्डिंग बड़े डेटा सेट को कई क्षेत्रों में वितरित किए गए छोटे उपसमूहों में विभाजित करता है। MongoDB इंस्टेंसेस की संख्या बढ़ाकर किसी एक सर्वर पर CPU लोड को कम किया जा सकता है। शार्डेड क्लस्टर स्टोरेज और क्वेरी थ्रूपुट को क्षैतिज रूप से बढ़ाने के लिए शार्ड्स, एक कॉन्फ़िगरेशन सर्वर और एक राउटर को जोड़ता है।
शार्डिंग क्या है? MongoDB?
शार्डिंग एक अवधारणा है MongoDB, जो बड़े डेटा सेट को कई छोटे डेटा सेटों में विभाजित करता है MongoDB उदाहरणों।
कभी-कभी डेटा के भीतर MongoDB डेटा इतना विशाल होगा कि इतने बड़े डेटा सेट के खिलाफ क्वेरी करने से सर्वर पर सीपीयू का बहुत अधिक उपयोग हो सकता है। इस स्थिति से निपटने के लिए, MongoDB इसमें शार्डिंग की अवधारणा है, जो मूल रूप से डेटा सेट को कई भागों में विभाजित करना है। MongoDB उदाहरणों।
यह संग्रह, जिसका आकार बड़ा हो सकता है, वास्तव में कई संग्रहों या शार्ड्स में विभाजित है। तार्किक रूप से, सभी शार्ड्स एक ही संग्रह के रूप में कार्य करते हैं।
शार्डिंग के लाभ MongoDB
शार्डेड क्लस्टर को लागू करने से पहले, यह समझना ज़रूरी है कि टीमें शार्डिंग क्यों अपनाती हैं। इसके मुख्य लाभ इस प्रकार हैं:
- क्षैतिज मापनीयता: डेटा को कई कमोडिटी सर्वरों में वितरित किया जाता है, बजाय इसके कि किसी एक मशीन को लगातार बड़ा होने के लिए मजबूर किया जाए।
- उच्चतर थ्रूपुट: रीड और राइट ऑपरेशन शार्ड्स में समानांतर रूप से चलते हैं, इसलिए क्लस्टर प्रति सेकंड अधिक अनुरोधों को संभाल सकता है।
- अधिक भंडारण क्षमता: सभी शार्ड्स की संयुक्त डिस्क एक सर्वर की तुलना में कहीं अधिक बड़े डेटा सेट को स्टोर कर सकती है।
- उच्च उपलब्धता: जब प्रत्येक शार्ड को एक प्रतिकृति सेट के रूप में तैनात किया जाता है, तो एक नोड की विफलता से क्लस्टर बंद नहीं होता है।
- संतुलित भार: RSI MongoDB बैलेंसर डेटा चंक्स को स्वचालित रूप से पुनर्वितरित करता है ताकि कोई भी एक शार्ड हॉटस्पॉट न बन जाए।
इन सभी फायदों को मिलाकर, शार्डिंग स्केलिंग के लिए मानक दृष्टिकोण बन जाता है। MongoDB एक सर्वर की सीमाओं से परे।
शार्डिंग को कैसे लागू करें
शार्ड्स को क्लस्टर का उपयोग करके कार्यान्वित किया जाता है, जो कि वास्तव में समूहों का एक समूह है। MongoDB उदाहरणों।
शार्ड के घटकों में निम्नलिखित शामिल हैं:
- एक शार्ड -यही मूल बात है, और यह कुछ और नहीं, बल्कि एक MongoDB इंस्टेंस जो डेटा का सबसेट रखता है। उत्पादन वातावरण में, सभी शार्ड को प्रतिकृति सेट का हिस्सा होना चाहिए।
- सर्वर कॉन्फ़िगर करें - यह एक MongoDB वह इंस्टेंस जो क्लस्टर के बारे में मेटाडेटा रखता है, मूल रूप से विभिन्न के बारे में जानकारी। MongoDB वे इंस्टेंसेस जो शार्ड डेटा को धारण करेंगे।
- एक राउटर - यह एक MongoDB यह वह इंस्टेंस है जो मूल रूप से क्लाइंट द्वारा भेजे गए कमांड को सही सर्वरों तक पुनर्निर्देशित करने के लिए जिम्मेदार है।
चरण दर चरण शार्डिंग Cluster उदाहरण
चरण 1) कॉन्फ़िगरेशन सर्वर के लिए एक अलग डेटाबेस बनाएँ.
mkdir /data/configdb
चरण 2) शुरू करें MongoDB कॉन्फ़िगरेशन मोड में इंस्टेंस। मान लीजिए हमारे पास सर्वर D नाम का एक सर्वर है, जो हमारा कॉन्फ़िगरेशन सर्वर होगा। सर्वर को कॉन्फ़िगरेशन सर्वर के रूप में कॉन्फ़िगर करने के लिए हमें नीचे दिए गए कमांड को चलाना होगा।
mongod --configdb ServerD:27019
चरण 3) कॉन्फ़िगरेशन सर्वर निर्दिष्ट करके मोंगोस इंस्टेंस प्रारंभ करें।
mongos --configdb ServerD:27019
चरण 4) मोंगो शेल से, मोंगोस इंस्टेंस से कनेक्ट करें।
mongo --host ServerD --port 27017
चरण 5) यदि आपके पास सर्वर A और सर्वर B हैं जिन्हें क्लस्टर में जोड़ना है, तो नीचे दिए गए कमांड जारी करें।
sh.addShard("ServerA:27017") sh.addShard("ServerB:27017")
चरण 6) डेटाबेस के लिए शार्डिंग सक्षम करें। इसलिए, यदि हमें एम्प्लॉईडीबी डेटाबेस को शार्ड करना है, तो नीचे दिए गए कमांड का उपयोग करें।
sh.enableSharding("Employeedb")
चरण 7) कलेक्शन के लिए शार्डिंग सक्षम करें। इसलिए, यदि हमें एम्प्लॉई कलेक्शन को शार्ड करना है, तो नीचे दिए गए कमांड का उपयोग करें।
sh.shardCollection("Employeedb.Employee", { "Employeeid": 1, "EmployeeName": 1 })
शार्ड कुंजी का चयन कैसे करें MongoDB
शार्ड कुंजी अनुक्रमित फ़ील्ड, या फ़ील्ड का समूह है, जो MongoDB प्रत्येक दस्तावेज़ को किस शार्ड में संग्रहीत किया जाए, यह तय करने के लिए कुंजी का उपयोग किया जाता है। चूंकि कुंजी डेटा वितरण को नियंत्रित करती है, इसलिए शार्डिंग में इसका सही चुनाव करना सबसे महत्वपूर्ण निर्णय है। एक खराब कुंजी डेटा और ट्रैफ़िक को एक ही शार्ड पर केंद्रित कर देती है, जिससे शार्डिंग के लाभ समाप्त हो जाते हैं।
एक मजबूत शार्ड कुंजी में आम तौर पर निम्नलिखित विशेषताएं होती हैं:
- उच्च कार्डिनैलिटी: इस फ़ील्ड में कई संभावित मान होने चाहिए ताकि डेटा को कई बारीक-बारीक हिस्सों में विभाजित किया जा सके।
- कम बार होना: किसी एक मूल्य का प्रभुत्व नहीं होना चाहिए, अन्यथा उस मूल्य को साझा करने वाले दस्तावेज़ एक ही शार्ड में जमा हो जाएंगे।
- गैर-मोनोटोनिक परिवर्तन: टाइमस्टैम्प जैसी कुंजीयां जो हमेशा बढ़ती रहती हैं, प्रत्येक नए लेखन को उसी शार्ड में भेजती हैं, जिससे एक हॉटस्पॉट बनता है।
MongoDB यह कुंजी के आधार पर दो शार्डिंग रणनीतियों का समर्थन करता है। रेंज्ड शार्डिंग डेटा को सन्निहित श्रेणियों में विभाजित करता है और रेंज क्वेरी के लिए उपयुक्त है, जबकि हैश्ड शार्डिंग राइट्स को शार्ड्स में समान रूप से वितरित करने के लिए एक हैश फ़ंक्शन लागू करता है। टीमें अक्सर भारी राइट्स होने पर हैश्ड शार्डिंग से शुरुआत करती हैं और रेंज-आधारित रीड्स हावी होने पर रेंज्ड शार्डिंग पर स्विच करती हैं। आप जो भी रणनीति चुनें, कमिट करने से पहले वास्तविक क्वेरी पैटर्न के विरुद्ध कुंजी का परीक्षण करें, क्योंकि डेटा लोड होने के बाद शार्ड कुंजी को आसानी से बदला नहीं जा सकता है।
शार्डिंग बनाम प्रतिकृति MongoDB
शार्डिंग और रेप्लिकेशन पूरक हैं लेकिन अलग-अलग विशेषताएं हैं। नीचे दी गई तालिका इनके अंतरों को दर्शाती है ताकि आप प्रत्येक को सही ढंग से लागू कर सकें, और व्यवहार में प्रोडक्शन क्लस्टर दोनों का एक साथ उपयोग करते हैं।
| पहलू | Sharding | प्रतिकृति |
|---|---|---|
| उद्देश्य | डेटा को विभाजित करके क्षैतिज रूप से स्केल करें | डेटा की सुरक्षा करें और उसे उपलब्ध रखें |
| प्रत्येक नोड पर डेटा | डेटा का एक उपसमूह (एक शार्ड) | डेटा की पूरी प्रति |
| प्राथमिक लाभ | अधिक भंडारण और प्रवाह क्षमता | दोष सहिष्णुता और रीड स्केलिंग |
| ज़रूरी भाग | शार्ड्स, कॉन्फ़िगरेशन सर्वर, मोंगोस राउटर | प्राथमिक और द्वितीयक सदस्य |
संक्षेप में, शार्डिंग स्केल की आवश्यकता को पूरा करती है, जबकि प्रतिकृति उपलब्धता की आवश्यकता को पूरा करती है, और एक मजबूत परिनियोजन इन दोनों को जोड़ता है।

