Để giảm dung lượng dữ liệu quét mà không cần sửa đổi mã nguồn SQL truy vấn, chúng ta nên tối ưu hóa cấu trúc vật lý của bảng bằng phân vùng (Partitioning) và gom cụm (Clustering).
- C. Tạo lại bảng với phân vùng và gom cụm:
- Phân vùng (Partitioning) trên cột
timestamp giúp chia nhỏ bảng theo thời gian. Khi truy vấn sử dụng mệnh đề WHERE lọc theo thời gian, BigQuery sẽ chỉ quét các phân vùng khớp với điều kiện (partition pruning).
- Gom cụm (Clustering) trên cột
ID giúp sắp xếp dữ liệu nội bộ trong các phân vùng theo thứ tự ID. Khi lọc theo ID, BigQuery định vị chính xác khối dữ liệu chứa ID đó, giảm thiểu tối đa lượng dữ liệu cần đọc.
- A. Tạo bảng riêng cho mỗi ID: Gây khó khăn lớn cho việc quản lý bảng và không thể mở rộng khi số lượng ID tăng lên.
- B. Sử dụng LIMIT: Từ khóa LIMIT chỉ giới hạn số lượng dòng trả về chứ không làm giảm dung lượng dữ liệu quét của BigQuery (BigQuery vẫn quét toàn bộ dữ liệu trước khi cắt giảm kết quả đầu ra).
- D. maximum_bytes_billed: Cờ này chỉ dừng truy vấn nếu nó vượt quá ngưỡng chi phí quy định chứ không giúp tối ưu hóa hiệu năng hay giảm lượng dữ liệu quét thực tế của truy vấn.
(Đáp án được gợi ý bởi AI)