Quay lại bộ đề
Question #95 Topic 1
You need to create a near real-time inventory dashboard that reads the main inventory tables in your BigQuery data warehouse. Historical inventory data is stored as inventory balances by item and location. You have several thousand updates to inventory every hour. You want to maximize performance of the dashboard and ensure that the data is accurate. What should you do?
Bạn cần tạo một bảng điều khiển (dashboard) hàng tồn kho gần thời gian thực (near real-time) đọc từ các bảng tồn kho chính trong kho dữ liệu BigQuery của bạn. Dữ liệu tồn kho lịch sử được lưu trữ dưới dạng số dư tồn kho theo mặt hàng và vị trí. Bạn có vài nghìn cập nhật đối với hàng tồn kho mỗi giờ. Bạn muốn tối đa hóa hiệu suất của bảng điều khiển và đảm bảo rằng dữ liệu luôn chính xác. Bạn nên làm gì?
A
Leverage BigQuery UPDATE statements to update the inventory balances as they are changing.
Tận dụng các câu lệnh UPDATE của BigQuery để cập nhật số dư tồn kho khi chúng thay đổi.
B
Partition the inventory balance table by item to reduce the amount of data scanned with each inventory update.
Phân vùng (partition) bảng số dư tồn kho theo mặt hàng (item) để giảm lượng dữ liệu bị quét với mỗi lần cập nhật tồn kho.
C
Use the BigQuery streaming the stream changes into a daily inventory movement table. Calculate balances in a view that joins it to the historical inventory balance table. Update the inventory balance table nightly.
Sử dụng tính năng truyền trực tuyến (streaming) của BigQuery để truyền các thay đổi vào một bảng biến động tồn kho hàng ngày. Tính toán số dư trong một view kết hợp bảng này với bảng số dư tồn kho lịch sử. Cập nhật bảng số dư tồn kho hàng đêm.
D
Use the BigQuery bulk loader to batch load inventory changes into a daily inventory movement table. Calculate balances in a view that joins it to the historical inventory balance table. Update the inventory balance table nightly.
Sử dụng bộ tải hàng loạt (bulk loader) của BigQuery để tải hàng loạt các thay đổi tồn kho vào một bảng biến động tồn kho hàng ngày. Tính toán số dư trong một view kết hợp bảng này với bảng số dư tồn kho lịch sử. Cập nhật bảng số dư tồn kho hàng đêm.
Giải thích & Tài liệu tham khảo
BigQuery được thiết kế tối ưu cho việc đọc phân tích thay vì thực hiện cập nhật/ghi đè liên tục các hàng dữ liệu riêng lẻ.
- Tại sao chọn C:
- Việc thực hiện hàng ngàn lệnh
UPDATEtrực tiếp vào bảng lịch sử mỗi giờ là một anti-pattern trong BigQuery, gây giảm hiệu năng truy vấn và tốn chi phí cực kỳ lớn. - Thay vào đó, ta sử dụng BigQuery Streaming Ingestion để ghi nhận liên tục các biến động tồn kho (deltas) vào một bảng chuyển động hàng ngày. Thao tác này diễn ra ở thời gian thực với chi phí thấp và hiệu năng cao.
- Một View sẽ được sử dụng để kết hợp (JOIN/UNION) bảng dữ liệu lịch sử ổn định và bảng biến động trong ngày nhằm đưa ra số lượng tồn kho chính xác tức thời cho dashboard.
- Vào ban đêm, một tiến trình batch sẽ hợp nhất (merge) dữ liệu biến động vào bảng lịch sử chính để reset bảng biến động hàng ngày.
- Tại sao các phương án khác sai:
- A: Dùng UPDATE trực tiếp rất chậm và dễ chạm giới hạn quota cập nhật dòng của BigQuery.
- B: Phân vùng bảng theo cột
itemlà không hợp lệ vì BigQuery chỉ hỗ trợ phân vùng theo cột thời gian (time/date) hoặc dãy số nguyên (integer range). - D: Tải hàng loạt (batch load) định kỳ tạo ra độ trễ cao và không đáp ứng được yêu cầu "gần thời gian thực" cho dashboard.
(Đáp án được gợi ý bởi AI)