Batas dan kuota

Ikuti panduan ini untuk memahami batas dan kuota saat menggunakan Data Manager API.

Batasan project

Anda memerlukan project Google Cloud untuk menggunakan Data Manager API. Project Google Cloud menyediakan klien dan kredensial OAuth yang Anda gunakan untuk mengautentikasi permintaan API.

Data Manager API menerapkan pembatasan kapasitas pada setiap project Google Cloud, yang dipisahkan berdasarkan jenis layanan dan operasi (baca versus mutasi):

Layanan Operasi Permintaan per hari Permintaan per menit
IngestionService Mengubah (menulis) 100.000 300
IngestionService Baca 100.000 300
Semua layanan lainnya digabungkan Mengubah (menulis) 50.000 300
Semua layanan lainnya digabungkan Baca 50.000 300

Permintaan yang melebihi batas akan ditolak dengan error RESOURCE_EXHAUSTED dan status HTTP 429 Too Many Requests.

Anda dapat mengontrol aplikasi dan mengurangi pembatasan kapasitas dengan secara aktif mengurangi jumlah permintaan dan membatasi QPS dari sisi klien. Anda juga dapat menyiapkan pemberitahuan dan pemantauan kuota di konsol Google Cloud untuk menerima notifikasi sebelum aplikasi Anda mencapai batasnya.

Nama kuota

Setiap batas sesuai dengan nama dan metrik batas kuota di Google Cloud. Jika permintaan melebihi batas, Data Manager API akan menampilkan nama batas kuota dalam payload detail standar ErrorInfo di bagian metadata.quota_limit:

Nama batas kuota Layanan Operasi Jendela Batas
IngestionMutateRequestsPerDayPerProject IngestionService Mutasi Hari 100.000
IngestionMutateRequestsPerMinutePerProject IngestionService Mutasi Menit 300
IngestionReadRequestsPerDayPerProject IngestionService Baca Hari 100.000
IngestionReadRequestsPerMinutePerProject IngestionService Baca Menit 300
ManagementMutateRequestsPerDayPerProject Semua layanan lainnya Mutasi Hari 50.000
ManagementMutateRequestsPerMinutePerProject Semua layanan lainnya Mutasi Menit 300
ManagementReadRequestsPerDayPerProject Semua layanan lainnya Baca Hari 50.000
ManagementReadRequestsPerMinutePerProject Semua layanan lainnya Baca Menit 300

Periksa metadata.quota_limit dalam payload ErrorInfo untuk membedakan antara error batas harian dan per menit, serta tentukan apakah akan menjeda sementara dan mencoba lagi dengan backoff, atau menjeda hingga kuota harian direset. Untuk mengetahui detailnya, lihat Error kuota dan pembatasan kapasitas.

Menangani pembatasan kapasitas dan konkurensi

Untuk memaksimalkan throughput tanpa melebihi kuota project, ikuti panduan berikut:

  • Kelompokkan data per permintaan: Sertakan data sebanyak mungkin dalam setiap permintaan hingga batas permintaan (hingga 10.000 resource AudienceMember atau 2.000 resource Event per permintaan).

  • Kirim hingga 10 permintaan serentak: Untuk mengurangi total waktu penyerapan tanpa melebihi batas 300 permintaan per menit, kirim hingga 10 permintaan serentak ke IngestionService.

  • Coba lagi pembatasan kapasitas per menit dengan backoff: Jika permintaan gagal dengan RESOURCE_EXHAUSTED (HTTP 429) dan metadata.quota_limit menunjukkan pembatasan kapasitas per menit (seperti IngestionMutateRequestsPerMinutePerProject), coba lagi menggunakan backoff eksponensial dengan jitter (misalnya, menunggu 1 dtk, 2 dtk, dan 4 dtk di antara percobaan ulang).

  • Jeda saat kuota harian habis: Jika metadata.quota_limit menunjukkan batas harian (seperti IngestionMutateRequestsPerDayPerProject), jangan langsung mencoba lagi. Jeda permintaan hingga kuota harian direset pada tengah malam Waktu Pasifik.

Batas permintaan

Berikut adalah batas untuk permintaan tertentu: