सीमाएं और कोटा

Data Manager API का इस्तेमाल करते समय, सीमाओं और कोटा को समझने के लिए इस गाइड को पढ़ें.

प्रोजेक्ट बनाने की सीमाएं

Data Manager API का इस्तेमाल करने के लिए, आपके पास Google Cloud प्रोजेक्ट होना चाहिए. Google Cloud प्रोजेक्ट, OAuth क्लाइंट और क्रेडेंशियल उपलब्ध कराता है. इनका इस्तेमाल, एपीआई अनुरोधों की पुष्टि करने के लिए किया जाता है.

डेटा मैनेजर एपीआई, हर Google Cloud प्रोजेक्ट पर अनुरोध संख्या सीमित करने की सुविधा लागू करता है. यह सेवा और कार्रवाई के टाइप (रीड बनाम म्यूटेट) के हिसाब से अलग-अलग होती है:

सेवा कार्रवाई हर दिन मिलने वाले अनुरोध हर मिनट मिलने वाले अनुरोध
IngestionService बदलाव (लिखें) 1,00,000 300
IngestionService पढ़ें 1,00,000 300
अन्य सभी सेवाएं एक साथ बदलाव (लिखें) 50,000 300
अन्य सभी सेवाएं एक साथ पढ़ें 50,000 300

तय सीमा से ज़्यादा अनुरोधों को अस्वीकार कर दिया जाता है. साथ ही, गड़बड़ी का मैसेज RESOURCE_EXHAUSTED और एचटीटीपी स्टेटस 429 Too Many Requests दिखता है.

अपने ऐप्लिकेशन को कंट्रोल किया जा सकता है और अनुरोध संख्या सीमित करने की समस्या को कम किया जा सकता है. इसके लिए, क्लाइंट साइड से अनुरोधों की संख्या कम करें और क्यूपीएस को थ्रॉटल करें. Google Cloud Console में, कोटा से जुड़ी सूचनाएं और मॉनिटरिंग सेट अप भी की जा सकती है. इससे आपको ऐप्लिकेशन की सीमाएं पूरी होने से पहले सूचनाएं मिलेंगी.

कोटा के नाम

हर सीमा, Google Cloud में कोटा सीमा के नाम और मेट्रिक से जुड़ी होती है. जब कोई अनुरोध तय सीमा से ज़्यादा होता है, तो Data Manager API, metadata.quota_limit में मौजूद ErrorInfo स्टैंडर्ड जानकारी वाले पेलोड में कोटे की सीमा का नाम दिखाता है:

कोटा सीमा का नाम सेवा कार्रवाई विंडो सीमा
IngestionMutateRequestsPerDayPerProject IngestionService बदलाव दिन 1,00,000
IngestionMutateRequestsPerMinutePerProject IngestionService बदलाव मिनट 300
IngestionReadRequestsPerDayPerProject IngestionService पढ़ें दिन 1,00,000
IngestionReadRequestsPerMinutePerProject IngestionService पढ़ें मिनट 300
ManagementMutateRequestsPerDayPerProject अन्य सभी सेवाएं बदलाव दिन 50,000
ManagementMutateRequestsPerMinutePerProject अन्य सभी सेवाएं बदलाव मिनट 300
ManagementReadRequestsPerDayPerProject अन्य सभी सेवाएं पढ़ें दिन 50,000
ManagementReadRequestsPerMinutePerProject अन्य सभी सेवाएं पढ़ें मिनट 300

ErrorInfo पेलोड में metadata.quota_limit की जांच करें, ताकि हर दिन और हर मिनट की सीमा से जुड़ी गड़बड़ियों के बीच अंतर किया जा सके. साथ ही, यह तय किया जा सके कि कुछ समय के लिए रुकना है और बैकऑफ़ के साथ फिर से कोशिश करनी है या हर दिन का कोटा रीसेट होने तक रुकना है. ज़्यादा जानकारी के लिए, कोटा और अनुरोध संख्या सीमित करने से जुड़ी गड़बड़ियां लेख पढ़ें.

अनुरोध संख्या सीमित करने और एक साथ कई टास्क करने की सुविधा को मैनेज करना

प्रोजेक्ट के कोटे से ज़्यादा इस्तेमाल किए बिना, थ्रूपुट को बढ़ाने के लिए, ये दिशा-निर्देश अपनाएं:

  • हर अनुरोध के लिए बैच रिकॉर्ड: हर अनुरोध में ज़्यादा से ज़्यादा रिकॉर्ड शामिल करें. हालांकि, यह संख्या अनुरोध की सीमाओं के मुताबिक होनी चाहिए. जैसे, हर अनुरोध के लिए ज़्यादा से ज़्यादा 10,000 AudienceMember संसाधन या 2,000 Event संसाधन.

  • एक साथ ज़्यादा से ज़्यादा 10 अनुरोध भेजें: डेटा डालने में लगने वाले कुल समय को कम करने के लिए, IngestionService पर एक साथ ज़्यादा से ज़्यादा 10 अनुरोध भेजें. हालांकि, ध्यान रखें कि हर मिनट 300 से ज़्यादा अनुरोध न भेजे जाएं.

  • बैकऑफ़ के साथ, हर मिनट के लिए अनुरोध संख्या सीमित करना फिर से आज़माएं: अगर कोई अनुरोध RESOURCE_EXHAUSTED (एचटीटीपी 429) के साथ पूरा नहीं हो पाता है और metadata.quota_limit से हर मिनट के लिए अनुरोध संख्या सीमित करने (जैसे, IngestionMutateRequestsPerMinutePerProject) का पता चलता है, तो जिटर के साथ एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करके फिर से कोशिश करें. उदाहरण के लिए, फिर से कोशिश करने के बीच में एक सेकंड, दो सेकंड, और चार सेकंड इंतज़ार करें.

  • रोज़ाना इस्तेमाल की समयसीमा खत्म होने पर रोकें: अगर metadata.quota_limit से रोज़ाना इस्तेमाल की समयसीमा (जैसे, IngestionMutateRequestsPerDayPerProject) का पता चलता है, तो तुरंत फिर से कोशिश न करें. अनुरोधों को तब तक रोकें, जब तक कि हर दिन का कोटा पैसिफ़िक टाइम के मुताबिक आधी रात को रीसेट न हो जाए.

अनुरोध करने की सीमाएं

यहां अलग-अलग अनुरोधों के लिए तय की गई सीमाएं दी गई हैं:

  • IngestAudienceMembersRequest और RemoveAudienceMembersRequest:

    • audience_members सूची में 10,000 AudienceMember संसाधन

    • AudienceMember के लिए, UserData में 10 यूज़र आइडेंटिफ़ायर

    • destinations की सूची में 10 Destination संसाधन

  • RemoveAllAudienceMembersRequest:

    • destinations सूची में 10 Destination संसाधन
  • IngestEventsRequest:

    • events सूची में 2,000 Event संसाधन

    • Event के लिए, UserData में 10 यूज़र आइडेंटिफ़ायर

    • destinations की सूची में 10 Destination संसाधन