מגבלות ומכסות

במדריך הזה מוסבר על המגבלות והמכסות כשעובדים עם Data Manager API.

מגבלות הפרויקטים

כדי להשתמש ב-Data Manager API, צריך פרויקט ב-Google Cloud. הפרויקט בענן של Google מספק את לקוח ה-OAuth ואת פרטי הכניסה שמשמשים לאימות בקשות API.

‫Data Manager API אוכף מגבלות קצב של יצירת בקשות בכל פרויקט ב-Google Cloud, לפי סוג השירות והפעולה (קריאה לעומת שינוי):

שירות פעולה בקשות ביום בקשות לדקה
IngestionService שינוי (כתיבה) 100,000 300
IngestionService קריאה 100,000 300
כל השירותים האחרים ביחד שינוי (כתיבה) 50,000 300
כל השירותים האחרים ביחד קריאה 50,000 300

בקשות שחורגות מהמגבלות נדחות עם השגיאה RESOURCE_EXHAUSTED וסטטוס ה-HTTP‏ 429 Too Many Requests.

כדי לשלוט באפליקציה ולהפחית את הגבלת קצב של יצירת בקשות, אתם יכולים להקטין את מספר הבקשות באופן פעיל וגם לווסת נתונים (throttle) את ה-QPS בצד הלקוח. אתם יכולים גם להגדיר התראות על הגעה למכסה ומעקב במסוף Google Cloud כדי לקבל התראות לפני שהאפליקציה מגיעה למגבלות שלה.

שמות של מכסות

כל מגבלה תואמת לשם של מגבלת מכסה ולמדד ב-Google Cloud. אם בקשה חורגת מהמגבלה, ה-Data Manager API מחזיר את שם המגבלה במטען הייעודי (payload) של הפרטים הסטנדרטיים של ErrorInfo, בקטע metadata.quota_limit:

שם מגבלת המכסה שירות פעולה חלון מגבלה
IngestionMutateRequestsPerDayPerProject IngestionService שינוי יום 100,000
IngestionMutateRequestsPerMinutePerProject IngestionService שינוי דקה 300
IngestionReadRequestsPerDayPerProject IngestionService קריאה יום 100,000
IngestionReadRequestsPerMinutePerProject IngestionService קריאה דקה 300
ManagementMutateRequestsPerDayPerProject כל השירותים האחרים שינוי יום 50,000
ManagementMutateRequestsPerMinutePerProject כל השירותים האחרים שינוי דקה 300
ManagementReadRequestsPerDayPerProject כל השירותים האחרים קריאה יום 50,000
ManagementReadRequestsPerMinutePerProject כל השירותים האחרים קריאה דקה 300

בודקים את metadata.quota_limit במטען הייעודי (payload) של ErrorInfo כדי להבחין בין שגיאות של מגבלה יומית לבין שגיאות של מגבלה לדקה, ולקבוע אם להשהות באופן זמני ולנסות שוב עם השהיה, או להשהות עד שהמכסה היומית תתאפס. פרטים נוספים זמינים במאמר שגיאות שקשורות למכסות ולמגבלות קצב.

טיפול בהגבלת קצב של יצירת בקשות ובפעולות בו-זמניות

כדי למקסם את קצב העיבוד בלי לחרוג ממכסות הפרויקט, כדאי לפעול לפי ההנחיות הבאות:

  • איסוף רשומות לכל בקשה: כדאי לכלול כמה שיותר רשומות בכל בקשה, עד למגבלות הבקשה (עד 10,000 משאבי AudienceMember או 2,000 משאבי Event לכל בקשה).

  • שליחה של עד 10 בקשות מקבילות: כדי לצמצם את זמן ההטמעה הכולל בלי לחרוג מהמגבלה של 300 בקשות לדקה, שלחו עד 10 בקשות מקבילות אל IngestionService.

  • ניסיון חוזר של מגבלות קצב לדקה עם השהיה: אם בקשה נכשלת עם RESOURCE_EXHAUSTED (HTTP 429) ו-metadata.quota_limit מציין מגבלה לדקה (כמו IngestionMutateRequestsPerMinutePerProject), נסו שוב באמצעות השהיה מעריכית לפני ניסיון חוזר (exponential backoff) עם ריצוד (לדוגמה, המתנה של שנייה אחת, 2 שניות ו-4 שניות בין הניסיונות החוזרים).

  • השהיה כשמגיעים למכסה היומית: אם metadata.quota_limit מציין מגבלה יומית (כמו IngestionMutateRequestsPerDayPerProject), אל תנסו שוב מיד. להשהות את הבקשות עד שהמכסה היומית תתאפס בחצות לפי שעון החוף המערבי של ארה"ב.

מגבלות על בקשות

אלה המגבלות על בקשות ספציפיות:

  • ‫IngestAudienceMembersRequest ו-RemoveAudienceMembersRequest:

    • ‫10,000 משאבים מסוג AudienceMember ברשימה audience_members

    • ‫10 מזהי משתמשים בUserData עבור AudienceMember

    • ‫10 מקורות מידע של Destination ברשימה destinations

  • RemoveAllAudienceMembersRequest:

    • ‫10 מקורות מידע של Destination ברשימה destinations
  • IngestEventsRequest:

    • ‫2,000 משאבים מסוג Event ברשימה events

    • ‫10 מזהי משתמשים בUserData עבור Event

    • ‫10 מקורות מידע של Destination ברשימה destinations