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.000Event-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(HTTP429) fehlschlägt undmetadata.quota_limitein 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_limitein 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:
IngestAudienceMembersRequestundRemoveAudienceMembersRequest:10.000
AudienceMember-Ressourcen in deraudience_members-Liste10 Nutzer-IDs in der
UserDatafür eineAudienceMember10
Destination-Ressourcen in der Liste „destinations“
RemoveAllAudienceMembersRequest:- 10
Destination-Ressourcen in der Liste „destinations“
- 10
-
2.000
Event-Ressourcen in derevents-Liste10 Nutzer-IDs in der
UserDatafür eineEvent10
Destination-Ressourcen in der Liste „destinations“