Limity

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 AudienceMember lub 2000 zasobów Event na żą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 (HTTP 429), a metadata.quota_limit wskazuje 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_limit wskazuje 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ń: