माइग्रेशन

प्रोवाइडर के बीच बैच और बल्क सपोर्ट की तुलना

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

कुछ प्रदाता बल्क काम के लिए एक अलग वेब इंटरफ़ेस देते हैं: CSV अपलोड करें, प्रोसेसिंग का इंतज़ार करें, नए कॉलम जुड़े हुए नतीजे डाउनलोड करें। यह गैर-तकनीकी उपयोगकर्ताओं के लिए ठीक है, जैसे ऑपरेशंस या मार्केटिंग टीम का कोई सदस्य जिसे पते एक बार जियोकोड करवाने हैं और जो कोई कोड नहीं लिखना चाहता, लेकिन यह प्रोग्रामैटिक API से अलग एक प्रोडक्ट है और अगर आप इस पर निर्भर हैं तो इसके लिए अलग माइग्रेशन योजना चाहिए।

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

कुछ ऐसे सबक जो सचमुच किसी प्रदाता पर निर्भर नहीं हैं, लागू होते हैं, चाहे कोई प्रदाता कोई भी तरीका अपनाए:

  • किसी बड़े बैच के अंदर अलग-अलग विफल अनुरोधों के लिए हमेशा रीट्राई लॉजिक रखें, क्योंकि ऐसा बैच जॉब जो दस हज़ार में से सिर्फ़ एक पते के एरर लौटाने पर पूरी तरह विफल हो जाए, किसी भी प्रदाता के साथ एक नाज़ुक डिज़ाइन है
  • API जो भी रेट लिमिट या कोटा संरचना बताता है उसका पालन करें, क्योंकि जितनी तेज़ी से हो सके अनुरोध भेजने वाला एक सीधा-सादा लूप ही वह सबसे आम तरीका है जिससे कोई बल्क जॉब थ्रॉटलिंग या अनपेक्षित लागत में फँसता है
  • सिर्फ़ हर बैच के लिए नहीं, बल्कि हर अनुरोध के लिए इतना विवरण लॉग करें कि विफल हुए हिस्से को पहचाना और दोबारा प्रोसेस किया जा सके, पूरे जॉब को शुरू से दोबारा चलाए बिना

बल्क काम के लिए My Geocode का तरीका प्रोग्रामैटिक पैटर्न पर चलता है: अनुरोध उन्हीं एंडपॉइंट से जाते हैं जिनसे कोई भी दूसरा लुकअप, उन्हीं प्रमाणीकरण विकल्पों के साथ (X-API-Key हेडर, Authorization: Bearer, HTTP Basic auth, या कोई क्वेरी पैरामीटर) और हर एक अनुरोध पर X-Quota-Used और X-Quota-Free-Remaining जैसे रिस्पॉन्स हेडर के ज़रिए उसी कोटा दृश्यता के साथ, जिसका दस्तावेज़ /docs/rate-limits/ पर है। किसी बड़े, एक बार के बल्क जॉब के लिए यह कोटा दृश्यता जॉब की गति अपने आप नियंत्रित करने में सचमुच उपयोगी है, क्योंकि कोई स्क्रिप्ट हर रिस्पॉन्स पर X-Quota-Free-Remaining जाँचकर उसी के अनुसार खुद को धीमा कर सकती है, बजाय किसी सुरक्षित अनुरोध दर का अंदाज़ा लगाने के।

चूँकि कीमत हर एंडपॉइंट पर एक समान है, यानी प्रीपेड क्रेडिट में €0.0001 प्रति अनुरोध या €50 प्रति माह में Unlimited कुंजी, इसलिए जैसे ही आपको पता हो कि कितने पते प्रोसेस करने हैं, किसी बड़े बल्क जॉब की लागत एक सीधा गुणा है, बिना किसी अलग बल्क मूल्य स्तर के जिस पर मोलभाव करना पड़े या जिसे अपने नियमित प्रति-अनुरोध उपयोग से तुलना करनी पड़े। किसी बार-बार होने वाले बल्क वर्कफ़्लो को माइग्रेट करने वाली टीमों के लिए, चाहे वह हर महीने ग्राहक सूची की सफ़ाई हो या एक बार का डेटा माइग्रेशन प्रोजेक्ट, यह समान और अनुमानित प्रति-अनुरोध लागत अक्सर बजट बनाने को पूरे बदलाव का सबसे आसान हिस्सा बना देती है।