Giới hạn và hạn mức

Hãy làm theo hướng dẫn này để tìm hiểu về các giới hạn và hạn mức khi sử dụng API Trình quản lý dữ liệu.

Hạn mức tạo dự án

Bạn cần có một dự án Google Cloud để sử dụng API Trình quản lý dữ liệu. Dự án trên đám mây của Google Cloud cung cấp Ứng dụng OAuth và thông tin xác thực mà bạn dùng để xác thực các Yêu cầu API.

Data Manager API thực thi giới hạn số lượng yêu cầu đối với mỗi dự án Google Cloud, được phân tách theo dịch vụ và loại thao tác (đọc so với thay đổi):

Dịch vụ Hoạt động Yêu cầu mỗi ngày Số yêu cầu mỗi phút
IngestionService Thay đổi (ghi) 100.000 300
IngestionService Đọc 100.000 300
Tất cả các dịch vụ khác kết hợp Thay đổi (ghi) 50.000 300
Tất cả các dịch vụ khác kết hợp Đọc 50.000 300

Những yêu cầu vượt quá giới hạn sẽ bị từ chối kèm theo lỗi RESOURCE_EXHAUSTED và trạng thái HTTP 429 Too Many Requests.

Bạn có thể kiểm soát ứng dụng và giảm thiểu giới hạn số lượng yêu cầu bằng cách chủ động giảm số lượng yêu cầu và điều tiết QPS từ phía máy khách. Bạn cũng có thể thiết lập cảnh báo và giám sát hạn mức trong Google Cloud Console để nhận thông báo trước khi ứng dụng đạt đến giới hạn.

Tên hạn mức

Mỗi hạn mức tương ứng với một tên hạn mức và chỉ số trong Google Cloud. Khi một yêu cầu vượt quá hạn mức, Data Manager API sẽ trả về tên hạn mức trong tải trọng chi tiết tiêu chuẩn ErrorInfo trong metadata.quota_limit:

Tên hạn mức Dịch vụ Hoạt động Cửa sổ Hạn mức
IngestionMutateRequestsPerDayPerProject IngestionService Thay đổi Ngày 100.000
IngestionMutateRequestsPerMinutePerProject IngestionService Thay đổi Phút 300
IngestionReadRequestsPerDayPerProject IngestionService Đọc Ngày 100.000
IngestionReadRequestsPerMinutePerProject IngestionService Đọc Phút 300
ManagementMutateRequestsPerDayPerProject Tất cả các dịch vụ khác Thay đổi Ngày 50.000
ManagementMutateRequestsPerMinutePerProject Tất cả các dịch vụ khác Thay đổi Phút 300
ManagementReadRequestsPerDayPerProject Tất cả các dịch vụ khác Đọc Ngày 50.000
ManagementReadRequestsPerMinutePerProject Tất cả các dịch vụ khác Đọc Phút 300

Kiểm tra metadata.quota_limit trong tải trọng ErrorInfo để phân biệt giữa lỗi giới hạn hằng ngày và lỗi giới hạn mỗi phút, đồng thời xác định xem nên tạm dừng và thử lại bằng thuật toán thời gian đợi luỹ thừa hay tạm dừng cho đến khi hạn mức hằng ngày được đặt lại. Để biết thông tin chi tiết, hãy xem bài viết Lỗi về hạn mức và giới hạn tốc độ.

Xử lý giới hạn số lượng yêu cầu và tính đồng thời

Để tối đa hoá công suất mà không vượt quá hạn mức của dự án, hãy làm theo các nguyên tắc sau:

  • Gộp các bản ghi theo lô cho mỗi yêu cầu: Thêm nhiều bản ghi nhất có thể vào mỗi yêu cầu, tối đa là giới hạn yêu cầu (tối đa 10.000 tài nguyên AudienceMember hoặc 2.000 tài nguyên Event cho mỗi yêu cầu).

  • Gửi tối đa 10 yêu cầu đồng thời: Để giảm tổng thời gian nhập mà không vượt quá giới hạn 300 yêu cầu mỗi phút, hãy gửi tối đa 10 yêu cầu đồng thời đến IngestionService.

  • Thử lại giới hạn số lượng yêu cầu mỗi phút bằng thuật toán thời gian đợi: Nếu một yêu cầu không thành công với mã lỗi RESOURCE_EXHAUSTED (HTTP 429) và metadata.quota_limit cho biết giới hạn mỗi phút (chẳng hạn như IngestionMutateRequestsPerMinutePerProject), hãy thử lại bằng thuật toán thời gian đợi luỹ thừa có độ trễ (ví dụ: đợi 1 giây, 2 giây và 4 giây giữa các lần thử lại).

  • Tạm dừng khi hết hạn mức hằng ngày: Nếu metadata.quota_limit cho biết giới hạn hằng ngày (chẳng hạn như IngestionMutateRequestsPerDayPerProject), đừng thử lại ngay lập tức. Tạm dừng các yêu cầu cho đến khi hạn mức hằng ngày được đặt lại vào lúc nửa đêm theo Giờ Thái Bình Dương.

Giới hạn yêu cầu

Sau đây là hạn mức cho các yêu cầu cụ thể:

  • IngestAudienceMembersRequest và RemoveAudienceMembersRequest:

    • 10.000 tài nguyên AudienceMember trong danh sách audience_members

    • 10 giá trị nhận dạng người dùng trong UserData cho một AudienceMember

    • 10 tài nguyên Destination trong danh sách destinations

  • RemoveAllAudienceMembersRequest:

    • 10 tài nguyên Destination trong danh sách destinations
  • IngestEventsRequest:

    • 2.000 tài nguyên Event trong danh sách events

    • 10 giá trị nhận dạng người dùng trong UserData cho một Event

    • 10 tài nguyên Destination trong danh sách destinations