इस पेज पर, Cloud Firestore जैसे टूल का इस्तेमाल करके, mongoimport में डेटा को एक साथ लोड करने के सबसे सही तरीके बताए गए हैं.
Cloud Firestore एक ऐसा सिस्टम है जो कई सर्वर पर काम करता है. यह आपके कारोबार की ज़रूरतों को पूरा करने के लिए, अपने-आप स्केल होता रहता है. Cloud Firestore सिस्टम को मिले लोड के आधार पर, आपके डेटा को डाइनैमिक तरीके से स्प्लिट और कंबाइन करता है.
लोड के आधार पर स्प्लिटिंग अपने-आप होती है. इसके लिए, पहले से कोई कॉन्फ़िगरेशन करने की ज़रूरत नहीं होती. Cloud Firestore के लोड के आधार पर डेटा को अलग-अलग हिस्सों में बांटने वाले सिस्टम की कुछ खास विशेषताएं हैं. ये विशेषताएं, अन्य दस्तावेज़ डेटाबेस की तुलना में अलग हैं. डेटा को मॉडल करते समय, इन विशेषताओं को ध्यान में रखना ज़रूरी है.
Cloud Firestore के डिस्ट्रिब्यूटेड नेचर की वजह से, कुछ डिज़ाइन विकल्पों को बदलना पड़ सकता है. खास तौर पर, उन वर्कलोड के लिए जिन्हें उन डेटाबेस के लिए ऑप्टिमाइज़ किया गया था जहां प्राइमरी रेप्लिका, राइट थ्रूपुट के लिए बॉटलनेक है.
सबसे अच्छे तरीके
एक थ्रेड वाले क्लाइंट में ज़्यादा डेटा प्रोसेस करने वाले वर्कलोड से, परफ़ॉर्मेंस में रुकावट आ सकती है. क्लाइंट, एक साथ कई फ़ाइलों को लोड करने के लिए सिंगल थ्रेडिंग का इस्तेमाल कर सकते हैं. ऐसा इसलिए, क्योंकि क्लाइंट और सर्वर की थ्रूपुट क्षमता एक जैसी होती है. Cloud Firestore डेटाबेस, एक साथ कई अनुरोधों को प्रोसेस कर सकता है. हालांकि, इसके लिए आपको क्लाइंट को कॉन्फ़िगर करना होगा, ताकि वे एक साथ अनुरोध भेज सकें.
mongoimport
mongoimport टूल का इस्तेमाल करते समय, अनुरोध डिफ़ॉल्ट रूप से क्रम से किए जाते हैं.
Cloud Firestore में कॉन्टेंट लोड होने में लगने वाले समय को बेहतर बनाने के लिए, --numInsertionWorkers फ़्लैग का इस्तेमाल करके वर्कर की संख्या सेट करें.
क्लाइंट के साइज़ के हिसाब से, सही सेटिंग में बदलाव करना पड़ सकता है. हालांकि, आम तौर पर हमारा सुझाव है कि आप कम से कम 32 से शुरुआत करें.
एसिंक्रोनस प्रोग्रामिंग
MongoDB के साथ काम करने वाली कार्रवाइयों का इस्तेमाल करके अपना सॉफ़्टवेयर डेवलप करते समय, इन तरीकों से पैरललिज़्म को बेहतर बनाया जा सकता है:
- एसिंक फ़्रेमवर्क: एसिंक फ़्रेमवर्क का इस्तेमाल करने से, अनुरोधों को एक साथ प्रोसेस किया जा सकता है और उनके जवाब दिए जा सकते हैं. अपने डेटाबेस में कॉल करते समय, किसी जटिल पूलिंग या क्यूइंग को डेवलप करना ज़रूरी नहीं है. हर अनुरोध फ़्लो, अलग-अलग कनेक्शन का इस्तेमाल कर सकता है. साथ ही, डेटाबेस कॉल को एक साथ किया जा सकता है.
- पैरललाइज़्ड कंप्यूट ऑफ़रिंग का इस्तेमाल करें: Cloud Run जैसी सेवाओं का इस्तेमाल करके, आपका सिस्टम, डेटा को प्रोसेस करने के लिए ज़रूरी कंप्यूटेशन वर्कर की संख्या को बढ़ा सकता है.
कुछ समय के लिए गड़बड़ियां
Cloud Firestore जैसे बड़े डिस्ट्रिब्यूटेड सिस्टम के साथ काम करते समय, आपको कुछ समय के लिए होने वाली गड़बड़ियां दिख सकती हैं. जैसे, नेटवर्क में रुकावट या किसी दस्तावेज़ पर विवाद.
एक साथ कई फ़ाइलों को लोड करते समय, यह ज़रूरी है कि फ़ाइलें लिखने में हुई गड़बड़ियों को ठीक करने के लिए, फिर से कोशिश करने की रणनीति अपनाई जाए. ऐसा करते समय, एक साथ कई फ़ाइलों को लोड करने की प्रोसेस में गड़बड़ी नहीं होनी चाहिए.
आइडेंटिकल ऑपरेशन की गारंटी देता है.