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