במדריך הזה מוסבר על המגבלות והמכסות כשעובדים עם 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(HTTP429) ו-metadata.quota_limitמציין מגבלה לדקה (כמוIngestionMutateRequestsPerMinutePerProject), נסו שוב באמצעות השהיה מעריכית לפני ניסיון חוזר (exponential backoff) עם ריצוד (לדוגמה, המתנה של שנייה אחת, 2 שניות ו-4 שניות בין הניסיונות החוזרים).השהיה כשמגיעים למכסה היומית: אם
metadata.quota_limitמציין מגבלה יומית (כמוIngestionMutateRequestsPerDayPerProject), אל תנסו שוב מיד. להשהות את הבקשות עד שהמכסה היומית תתאפס בחצות לפי שעון החוף המערבי של ארה"ב.
מגבלות על בקשות
אלה המגבלות על בקשות ספציפיות:
IngestAudienceMembersRequestו-RemoveAudienceMembersRequest:10,000 משאבים מסוג
AudienceMemberברשימהaudience_members10 מזהי משתמשים ב
UserDataעבורAudienceMember10 מקורות מידע של
Destinationברשימהdestinations
RemoveAllAudienceMembersRequest:- 10 מקורות מידע של
Destinationברשימהdestinations
- 10 מקורות מידע של
-
2,000 משאבים מסוג
Eventברשימהevents10 מזהי משתמשים ב
UserDataעבורEvent10 מקורות מידע של
Destinationברשימהdestinations