Quay lại bộ đề
Question #161 Topic 1
You migrated a data backend for an application that serves 10 PB of historical product data for analytics. Only the last known state for a product, which is about 10 GB of data, needs to be served through an API to the other applications. You need to choose a cost-effective persistent storage solution that can accommodate the analytics requirements and the API performance of up to 1000 queries per second (QPS) with less than 1 second latency. What should you do?
Bạn đã di chuyển cơ sở dữ liệu backend của một ứng dụng phục vụ 10 PB dữ liệu sản phẩm lịch sử cho mục đích phân tích. Chỉ có trạng thái được biết đến gần đây nhất của một sản phẩm, khoảng 10 GB dữ liệu, là cần được phục vụ thông qua một API tới các ứng dụng khác. Bạn cần chọn một giải pháp lưu trữ ổn định và hiệu quả về chi phí có thể đáp ứng các yêu cầu phân tích và hiệu suất API lên tới 1000 truy vấn mỗi giây (QPS) với độ trễ dưới 1 giây. Bạn nên làm gì?
A
1. Store the historical data in BigQuery for analytics.2. Use a materialized view to precompute the last state of a product.3. Serve the last state data directly from BigQuery to the API.
1. Lưu trữ dữ liệu lịch sử trong BigQuery để phân tích.
2. Sử dụng materialized view để tính toán trước trạng thái cuối cùng của một sản phẩm.
3. Phục vụ dữ liệu trạng thái cuối cùng trực tiếp từ BigQuery tới API.
B
1. Store the products as a collection in Firestore with each product having a set of historical changes.2. Use simple and compound queries for analytics.3. Serve the last state data directly from Firestore to the API.
1. Lưu trữ các sản phẩm dưới dạng một collection trong Firestore với mỗi sản phẩm có một tập hợp các thay đổi lịch sử.
2. Sử dụng các truy vấn đơn giản và truy vấn phức hợp để phân tích.
3. Phục vụ dữ liệu trạng thái cuối cùng trực tiếp từ Firestore tới API.
C
1. Store the historical data in Cloud SQL for analytics.2. In a separate table, store the last state of the product after every product change.3. Serve the last state data directly from Cloud SQL to the API.
1. Lưu trữ dữ liệu lịch sử trong Cloud SQL để phân tích.
2. Trong một bảng riêng biệt, lưu trữ trạng thái cuối cùng của sản phẩm sau mỗi thay đổi sản phẩm.
3. Phục vụ dữ liệu trạng thái cuối cùng trực tiếp từ Cloud SQL tới API.
D
1. Store the historical data in BigQuery for analytics.2. In a Cloud SQL table, store the last state of the product after every product change.3. Serve the last state data directly from Cloud SQL to the API.
1. Lưu trữ dữ liệu lịch sử trong BigQuery để phân tích.
2. Trong một bảng Cloud SQL, lưu trữ trạng thái cuối cùng của sản phẩm sau mỗi thay đổi sản phẩm.
3. Phục vụ dữ liệu trạng thái cuối cùng trực tiếp từ Cloud SQL tới API.
Giải thích & Tài liệu tham khảo
Để thiết kế một hệ thống vừa đáp ứng yêu cầu lưu trữ và phân tích dữ liệu lịch sử khổng lồ (10 PB) với chi phí tối ưu, vừa phục vụ API độ trễ thấp (< 1 giây) và thông lượng cao (1000 QPS) cho dữ liệu hiện tại (10 GB):
- Lưu trữ dữ liệu lịch sử (10 PB): Với quy mô dữ liệu phân tích lên tới 10 PB, BigQuery là giải pháp lưu trữ dữ liệu phân tích serverless, mở rộng linh hoạt và tiết kiệm chi phí nhất. Việc dùng Cloud SQL hay Firestore cho 10 PB dữ liệu phân tích là cực kỳ đắt đỏ và không khả thi về mặt hiệu suất phân tích (loại trừ B và C).
- Phục vụ API trạng thái cuối (10 GB, 1000 QPS, < 1s latency): Dù BigQuery có thể xử lý tốt dữ liệu phân tích, việc truy vấn trực tiếp từ BigQuery thông qua API phục vụ khách hàng với tần suất 1000 QPS sẽ rất đắt đỏ (do chi phí quét dữ liệu) và khó đảm bảo độ trễ ổn định dưới 1 giây cho các ứng dụng vận hành (loại trừ A).
- Giải pháp kết hợp (BigQuery + Cloud SQL): Dùng BigQuery để lưu trữ và phân tích 10 PB dữ liệu lịch sử. Sử dụng một cơ sở dữ liệu quan hệ như Cloud SQL để lưu trữ riêng 10 GB trạng thái sản phẩm mới nhất (dữ liệu nhỏ, thay đổi thường xuyên) và phục vụ trực tiếp cho API. Cloud SQL có thể dễ dàng đáp ứng 1000 QPS với độ trễ vài mili-giây cho dữ liệu có dung lượng nhỏ (10 GB).
(Đáp án được gợi ý bởi AI)