Z tego przewodnika dowiesz się, jakie są limity i limity przydziału podczas pracy z interfejsem Data Manager API.
Limity dotyczące projektu
Aby korzystać z interfejsu Data Manager API, musisz mieć projekt Google Cloud. Projekt w chmurze Google Cloud udostępnia klienta OAuth i dane logowania, których używasz do uwierzytelniania żądań do interfejsu API.
Interfejs Data Manager API wymusza ograniczanie liczby żądań w każdym projekcie Google Cloud, które są podzielone według usługi i typu operacji (odczyt lub zmiana):
| Usługa | Operacja | Liczba żądań dziennie | Żądania na minutę |
|---|---|---|---|
IngestionService |
Modyfikowanie danych (zapis) | 100 000 | 300 |
IngestionService |
Odczyt | 100 000 | 300 |
| Wszystkie inne usługi łącznie | Modyfikowanie danych (zapis) | 50 000 | 300 |
| Wszystkie inne usługi łącznie | Odczyt | 50 000 | 300 |
Żądania, które przekraczają limity, są odrzucane z błędem RESOURCE_EXHAUSTED i stanem HTTP 429 Too Many Requests.
Możesz przejąć kontrolę nad aplikacją i ograniczyć limity liczby żądań, aktywnie zmniejszając liczbę żądań i ograniczając liczbę zapytań na sekundę po stronie klienta. Możesz też skonfigurować alerty dotyczące limitów i monitorowanie w konsoli Google Cloud, aby otrzymywać powiadomienia, zanim aplikacja osiągnie limity.
Nazwy limitów
Każdy limit odpowiada nazwie limitu i wskaźnikowi w Google Cloud. Gdy żądanie przekroczy limit, interfejs Data Manager API zwraca nazwę limitu w standardowym ładunku szczegółów ErrorInfo w polu metadata.quota_limit:
| Nazwa limitu przydziału | Usługa | Operacja | Okno | Limit |
|---|---|---|---|---|
IngestionMutateRequestsPerDayPerProject |
IngestionService |
Mutacja | Dzień | 100 000 |
IngestionMutateRequestsPerMinutePerProject |
IngestionService |
Mutacja | Minuta | 300 |
IngestionReadRequestsPerDayPerProject |
IngestionService |
Odczyt | Dzień | 100 000 |
IngestionReadRequestsPerMinutePerProject |
IngestionService |
Odczyt | Minuta | 300 |
ManagementMutateRequestsPerDayPerProject |
Wszystkie inne usługi | Mutacja | Dzień | 50 000 |
ManagementMutateRequestsPerMinutePerProject |
Wszystkie inne usługi | Mutacja | Minuta | 300 |
ManagementReadRequestsPerDayPerProject |
Wszystkie inne usługi | Odczyt | Dzień | 50 000 |
ManagementReadRequestsPerMinutePerProject |
Wszystkie inne usługi | Odczyt | Minuta | 300 |
Sprawdź metadata.quota_limit w ładunku ErrorInfo, aby odróżnić błędy związane z limitem dziennym od błędów związanych z limitem minutowym i zdecydować, czy tymczasowo wstrzymać działanie i ponowić próbę z wycofaniem, czy wstrzymać działanie do czasu zresetowania dziennego limitu.
Więcej informacji znajdziesz w sekcji Błędy związane z limitami i ograniczeniami liczby żądań.
Obsługa ograniczania liczby żądań i równoczesności
Aby zmaksymalizować przepustowość bez przekraczania limitów projektu, postępuj zgodnie z tymi wytycznymi:
Grupuj rekordy w żądaniach: w każdym żądaniu uwzględniaj jak najwięcej rekordów, aż do osiągnięcia limitów żądań (do 10 000 zasobów
AudienceMemberlub 2000 zasobówEventna żądanie).Wysyłaj do 10 równoczesnych żądań: aby skrócić łączny czas przetwarzania bez przekraczania limitu 300 żądań na minutę, wysyłaj do 10 równoczesnych żądań do
IngestionService.Ponów próbę z wykorzystaniem wzrastającego czasu do ponowienia w przypadku limitów liczby żądań na minutę: jeśli żądanie nie powiedzie się z powodu błędu
RESOURCE_EXHAUSTED(HTTP429), ametadata.quota_limitwskazuje limit na minutę (np.IngestionMutateRequestsPerMinutePerProject), ponów próbę z wykorzystaniem wzrastającego czasu do ponowienia z losowym opóźnieniem (np. odczekaj 1 s, 2 s i 4 s między próbami).Wstrzymanie po wyczerpaniu dziennego limitu: jeśli
metadata.quota_limitwskazuje limit dzienny (np.IngestionMutateRequestsPerDayPerProject), nie ponawiaj próby od razu. Wstrzymaj żądania do czasu zresetowania dziennego limitu o północy czasu pacyficznego.
Limity żądań
Oto limity dotyczące konkretnych żądań:
IngestAudienceMembersRequestiRemoveAudienceMembersRequest:10 000 zasobów
AudienceMemberna liścieaudience_members10 identyfikatorów użytkowników w
UserDatadlaAudienceMember10 zasobów
Destinationna liściedestinations
RemoveAllAudienceMembersRequest:- 10 zasobów
Destinationna liściedestinations
- 10 zasobów
-
2000 zasobów
Eventna liścieevents10 identyfikatorów użytkowników w
UserDatadlaEvent10 zasobów
Destinationna liściedestinations