Quay lại bộ đề
Question #328 Topic 1
You are designing BigQuery tables for large volumes of clickstream event data. Your data analyst team will most frequently query by specific event date ranges and filter by the user ID UUID. You want to optimize table structure for query cost and performance. What should you do?
Bạn đang thiết kế các bảng BigQuery cho khối lượng lớn dữ liệu sự kiện clickstream. Nhóm phân tích dữ liệu của bạn sẽ truy vấn thường xuyên nhất theo các khoảng phạm vi ngày diễn ra sự kiện cụ thể và lọc theo UUID của ID người dùng (user ID). Bạn muốn tối ưu hóa cấu trúc bảng để tiết kiệm chi phí và tăng hiệu năng truy vấn. Bạn nên làm gì?
A
Partition the table by the user ID column and cluster the table by the event date column.
Phân vùng (partition) bảng theo cột ID người dùng và gom cụm (cluster) bảng theo cột ngày diễn ra sự kiện.
B
Create an ingestion-time partitioned table and cluster it by the user ID column.
Tạo một bảng được phân vùng theo thời gian nạp (ingestion-time partitioned table) và gom cụm nó theo cột ID người dùng.
C
Cluster the table by both the event date and the user ID columns.
Gom cụm bảng theo cả cột ngày diễn ra sự kiện và cột ID người dùng.
D
Partition the table by the event date column and cluster the table by user ID column.
Phân vùng bảng theo cột ngày diễn ra sự kiện và gom cụm bảng theo cột ID người dùng.
Giải thích & Tài liệu tham khảo
Để tối ưu hóa chi phí quét dữ liệu và tăng tốc độ truy vấn đối với bảng chứa dữ liệu clickstream lớn:
- D là đáp án đúng: Thiết lập kết hợp phân vùng và gom cụm tối ưu nhất là:
- Phân vùng (Partitioning) theo ngày xảy ra sự kiện (event date): Giúp BigQuery nhanh chóng bỏ qua các khối dữ liệu nằm ngoài phạm vi ngày được lọc, giảm trực tiếp số lượng byte cần quét (giảm chi phí).
- Gom cụm (Clustering) theo ID người dùng (user ID): Cột ID người dùng chứa các giá trị UUID có độ đa dạng cực lớn (high cardinality), việc gom cụm giúp sắp xếp các bản ghi có cùng ID người dùng nằm cạnh nhau về mặt vật lý, tối ưu hóa các phép lọc tìm kiếm người dùng cụ thể.
- A sai: Không thể phân vùng theo cột UUID người dùng vì số lượng phân vùng tối đa trong một bảng BigQuery bị giới hạn ở mức 10,000 phân vùng.
- B sai: Phân vùng theo thời gian nạp (ingestion-time) có thể không khớp với thời gian xảy ra sự kiện thực tế trong dữ liệu clickstream, làm sai lệch kết quả phân tích theo phạm vi ngày sự kiện.
- C sai: Chỉ sử dụng gom cụm mà không phân vùng sẽ không tối ưu hóa việc định hướng phân tách dữ liệu theo ngày hiệu quả bằng việc kết hợp cả hai cơ chế.
(Đáp án được gợi ý bởi AI)