Limits und Kontingente

In diesem Leitfaden finden Sie Informationen zu Limits und Kontingenten bei der Arbeit mit der Data Manager API.

Projektbeschränkungen

Sie benötigen ein Google Cloud-Projekt, um die Data Manager API verwenden zu können. Das Google Cloud-Projekt stellt den OAuth-Client und die Anmeldedaten bereit, die Sie zur Authentifizierung von API-Anfragen verwenden.

Die Data Manager API erzwingt Ratenbegrenzungen für jedes Google Cloud-Projekt, getrennt nach Dienst und Vorgangstyp (Lesen oder Ändern):

Dienst Vorgang Anfragen pro Tag Anfragen pro Minute
IngestionService Ändern (schreiben) 100.000 300
IngestionService Lesen 100.000 300
Alle anderen Dienste zusammen Ändern (schreiben) 50.000 300
Alle anderen Dienste zusammen Lesen 50.000 300

Anfragen, die die Limits überschreiten, werden mit dem Fehler RESOURCE_EXHAUSTED und dem HTTP-Status 429 Too Many Requests abgelehnt.

Sie können die Kontrolle über Ihre Anwendung übernehmen und Ratenbegrenzungen reduzieren, indem Sie sowohl die Anzahl der Anfragen aktiv reduzieren als auch die Abfragen pro Sekunde auf der Clientseite drosseln. Sie können in der Google Cloud Console auch Kontingentbenachrichtigungen und -monitoring einrichten, um Benachrichtigungen zu erhalten, bevor Ihre Anwendung die Limits erreicht.

Kontingentnamen

Jedes Limit entspricht einem Kontingentlimitnamen und einem Messwert in Google Cloud. Wenn eine Anfrage ein Limit überschreitet, gibt die Data Manager API den Namen des Kontingentlimits in der Standard-Detailnutzlast ErrorInfo unter metadata.quota_limit zurück:

Name des Kontingentlimits Dienst Vorgang Fenster Limit
IngestionMutateRequestsPerDayPerProject IngestionService Änderung vorgenommen Tag 100.000
IngestionMutateRequestsPerMinutePerProject IngestionService Änderung vorgenommen Minute 300
IngestionReadRequestsPerDayPerProject IngestionService Lesen Tag 100.000
IngestionReadRequestsPerMinutePerProject IngestionService Lesen Minute 300
ManagementMutateRequestsPerDayPerProject Alle anderen Dienste Änderung vorgenommen Tag 50.000
ManagementMutateRequestsPerMinutePerProject Alle anderen Dienste Änderung vorgenommen Minute 300
ManagementReadRequestsPerDayPerProject Alle anderen Dienste Lesen Tag 50.000
ManagementReadRequestsPerMinutePerProject Alle anderen Dienste Lesen Minute 300

Prüfen Sie metadata.quota_limit in der Nutzlast ErrorInfo, um zwischen Fehlern im Zusammenhang mit dem Tageslimit und dem Limit pro Minute zu unterscheiden. So können Sie feststellen, ob Sie die Ausführung vorübergehend pausieren und mit Backoff wiederholen oder bis zum Zurücksetzen des Tageskontingents pausieren sollten. Weitere Informationen finden Sie unter Kontingent- und Ratenbegrenzungsfehler.

Ratenbegrenzungen und Nebenläufigkeit verwalten

Beachten Sie die folgenden Richtlinien, um den Durchsatz zu maximieren, ohne die Projektkontingente zu überschreiten:

  • Datensätze pro Anfrage im Batch zusammenfassen: Fügen Sie jeder Anfrage so viele Datensätze wie möglich hinzu, bis die Anfragelimits erreicht sind (bis zu 10.000 AudienceMember-Ressourcen oder 2.000 Event-Ressourcen pro Anfrage).

  • Bis zu 10 gleichzeitige Anfragen senden: Wenn Sie die Gesamtaufnahmezeit reduzieren möchten, ohne das Limit von 300 Anfragen pro Minute zu überschreiten, senden Sie bis zu 10 gleichzeitige Anfragen an IngestionService.

  • Minutenratenbegrenzungen mit Backoff wiederholen: Wenn eine Anfrage mit RESOURCE_EXHAUSTED (HTTP 429) fehlschlägt und metadata.quota_limit ein Limit pro Minute angibt (z. B. IngestionMutateRequestsPerMinutePerProject), wiederholen Sie den Vorgang mit exponentiellem Backoff mit Jitter (z. B. 1 s, 2 s und 4 s zwischen den Wiederholungen warten).

  • Bei Erreichen des Tageskontingents pausieren: Wenn metadata.quota_limit ein Tageslimit angibt (z. B. IngestionMutateRequestsPerDayPerProject), versuchen Sie es nicht sofort noch einmal. Pausieren Sie Anfragen, bis das Tageskontingent um Mitternacht (Pacific Time) zurückgesetzt wird.

Anfragelimits

Hier sind die Limits für bestimmte Anfragen: