Tuỳ thuộc vào khoảng không quảng cáo, bạn có thể cần phải phân đoạn (hoặc chia nguồn cấp dữ liệu thành nhiều tệp).
Trường hợp sử dụng tính năng phân đoạn
Nguồn cấp dữ liệu vượt quá 200 MB đối với 1 tệp (sau khi nén gzip).
- Ví dụ: Nguồn cấp dữ liệu về tình trạng còn hàng đã tạo có kích thước 1 GB. Bạn nên phân đoạn tệp này thành 5 tệp riêng biệt trở lên (hoặc phân đoạn).
Khoảng không quảng cáo của đối tác được phân phối trên nhiều hệ thống và/hoặc khu vực, dẫn đến việc khó đối chiếu khoảng không quảng cáo.
- Ví dụ: Đối tác có khoảng không quảng cáo ở Hoa Kỳ và Liên minh Châu Âu nằm trong các hệ thống riêng biệt. Nguồn cấp dữ liệu có thể được tạo bằng 2 tệp (hoặc mảnh), 1 cho Hoa Kỳ và 1 cho Liên minh Châu Âu với cùng một
nonce
vàgeneration_timestamp
.
- Ví dụ: Đối tác có khoảng không quảng cáo ở Hoa Kỳ và Liên minh Châu Âu nằm trong các hệ thống riêng biệt. Nguồn cấp dữ liệu có thể được tạo bằng 2 tệp (hoặc mảnh), 1 cho Hoa Kỳ và 1 cho Liên minh Châu Âu với cùng một
Quy tắc chung
- Mỗi mảnh không được vượt quá 200 MB cho 1 tệp (sau khi nén gzip).
- Bạn không nên tạo quá 20 phân mảnh cho mỗi nguồn cấp dữ liệu. Nếu bạn có lý do kinh doanh cần nhiều hơn số tiền đó, vui lòng liên hệ với nhóm hỗ trợ để được hướng dẫn thêm.
-
Bạn phải gửi từng bản ghi (ví dụ: một đối tượng
Merchant
) trong một phân mảnh, không thể chia các bản ghi đó trên nhiều phân mảnh. Tuy nhiên, bạn không nhất thiết phải gửi các yêu cầu này trong phân đoạn bằng cùng mộtshard_number
cho các nguồn cấp dữ liệu trong tương lai. - Để có hiệu suất tốt hơn, dữ liệu của bạn phải được phân chia đều giữa các phân mảnh để tất cả các tệp được phân mảnh có kích thước tương tự nhau.
Cách phân đoạn nguồn cấp dữ liệu
Bạn có thể phân đoạn nguồn cấp dữ liệu sự kiện bằng cách tách một tệp JSON thành các tệp JSON riêng biệt với các sự kiện không trùng lặp và cập nhật tệp JSON chỉ số mô tả tệp bằng danh sách tên tệp JSON.
Nên dùng: Đối với mỗi tệp (hoặc mảnh), hãy đặt tên tệp để cho biết loại nguồn cấp dữ liệu, dấu thời gian và số mảnh. Các mảnh phải có kích thước gần bằng nhau và được xử lý sau khi tất cả các mảnh được tải lên.
Ví dụ về phân đoạn
Chỉ số mô tả tệp – event.feeddata.v1_1728306001.filedescriptor.json
{ "generation_timestamp": 1728306001, "name": "event.feeddata.v1", "data_file": [ "event.feeddata.v1_1728306001_001.json", "event.feeddata.v1_1728306001_002.json" ] }
Mảnh 0 – event.feeddata.v1_1728306001_001.json
{ "data": [ { "id": "event-1", ... }, { "id": "event-2", ... } ] }
Mảnh 1 – event.feeddata.v1_1728306001_002.json
{ "data": [ { "id": "event-3", ... }, { "id": "event-4", ... } ] }
Mảnh cho khoảng không quảng cáo do đối tác phân phối
Đối tác có thể gặp khó khăn khi hợp nhất khoảng không quảng cáo được phân phối trên nhiều hệ thống và/hoặc khu vực vào một nguồn cấp dữ liệu. Bạn có thể sử dụng tính năng phân đoạn để giải quyết các thách thức đối với việc điều chỉnh bằng cách thiết lập mỗi phân đoạn để khớp với mỗi nhóm khoảng không quảng cáo của hệ thống phân phối.
Ví dụ: giả sử kho hàng của một đối tác được chia thành 2 khu vực (kho hàng ở Hoa Kỳ và kho hàng ở Liên minh Châu Âu), nằm trong 2 hệ thống riêng biệt.
Đối tác có thể chia mỗi nguồn cấp dữ liệu thành 2 tệp (hoặc phân đoạn):
Hãy làm theo các bước sau để đảm bảo nguồn cấp dữ liệu được xử lý đúng cách:
- Quyết định lịch tải lên và định cấu hình từng phiên bản khoảng không quảng cáo để tuân theo lịch đó.
- Chỉ định số phân đoạn duy nhất cho mỗi thực thể (ví dụ: Hoa Kỳ = N, Liên minh Châu Âu = N + 1).
Đặt
total_shards
thành tổng số mảnh. - Tại mỗi thời điểm tải lên theo lịch, hãy quyết định một
generation_timestamp
. Trong đó, tất cả tên tệp đều chứa cùng một giá trị cho hai trường này và liệt kê tất cả tên tệp dự kiến trong tệp mô tả.generation_timestamp
phải là hiện tại hoặc gần đây (tốt nhất là dấu thời gian đọc trong cơ sở dữ liệu của đối tác)
- Sau khi tải tất cả các mảnh lên, Google sẽ nhóm các mảnh đó bằng cách sử dụng
generation_timestamp
vànonce
.
Google sẽ xử lý nguồn cấp dữ liệu dưới dạng một nguồn cấp dữ liệu mặc dù mỗi phân đoạn đại diện cho một khu vực khác nhau trong khoảng không quảng cáo của đối tác và có thể được tải lên vào một thời điểm khác nhau trong ngày, miễn là generation_timestamp
giống nhau trên tất cả các phân đoạn.