Quay lại bộ đề
Question #250 Topic 1
You are designing a pipeline that publishes application events to a Pub/Sub topic. Although message ordering is not important, you need to be able to aggregate events across disjoint hourly intervals before loading the results to BigQuery for analysis. What technology should you use to process and load this data toBigQuery while ensuring that it will scale with large volumes of events?
Bạn đang thiết kế một đường ống xuất bản các sự kiện ứng dụng lên một Pub/Sub topic. Mặc dù thứ tự tin nhắn không quan trọng, bạn cần có khả năng tổng hợp các sự kiện theo các khoảng thời gian không chồng chéo từng giờ (disjoint hourly intervals) trước khi tải kết quả vào BigQuery để phân tích. Bạn nên sử dụng công nghệ nào để xử lý và tải dữ liệu này vào BigQuery mà vẫn đảm bảo khả năng mở rộng với khối lượng sự kiện lớn?
A
Create a Cloud Function to perform the necessary data processing that executes using the Pub/Sub trigger every time a new message is published to the topic.
Tạo một Cloud Function để thực hiện xử lý dữ liệu cần thiết, thực thi bằng trigger Pub/Sub mỗi khi có một tin nhắn mới được xuất bản lên topic.
B
Schedule a Cloud Function to run hourly, pulling all available messages from the Pub/Sub topic and performing the necessary aggregations.
Lập lịch chạy một Cloud Function hàng giờ để kéo (pull) tất cả các tin nhắn hiện có từ Pub/Sub topic và thực hiện các phép tổng hợp cần thiết.
C
Schedule a batch Dataflow job to run hourly, pulling all available messages from the Pub/Sub topic and performing the necessary aggregations.
Lập lịch chạy một job Dataflow dạng lô (batch) hàng giờ để kéo tất cả các tin nhắn hiện có từ Pub/Sub topic và thực hiện các phép tổng hợp cần thiết.
D
Create a streaming Dataflow job that reads continually from the Pub/Sub topic and performs the necessary aggregations using tumbling windows.
Tạo một job Dataflow dạng truyền trực tuyến (streaming) để đọc liên tục từ Pub/Sub topic và thực hiện các phép tổng hợp cần thiết bằng cách sử dụng các cửa sổ nhào (tumbling windows).
Giải thích & Tài liệu tham khảo
Để xử lý và tổng hợp dữ liệu sự kiện thời gian thực theo các khoảng thời gian 1 giờ không chồng chéo (disjoint hourly intervals - còn được gọi là tumbling windows) ở quy mô lớn:
- Sử dụng Dataflow streaming job với Tumbling Windows (Lựa chọn D): Dataflow được thiết kế đặc biệt để xử lý dữ liệu truyền trực tuyến dung lượng lớn với khả năng tự động co giãn. Cửa sổ nhào (Tumbling Window) là cửa sổ cố định, không chồng chéo, hoàn hảo để gom dữ liệu theo từng giờ riêng biệt. Dataflow sẽ xử lý và ghi kết quả vào BigQuery một cách đáng tin cậy.
- Lựa chọn A: Cloud Function kích hoạt theo từng tin nhắn sẽ không thể tổng hợp dữ liệu hiệu quả giữa các tin nhắn khác nhau và không phù hợp với khối lượng dữ liệu khổng lồ.
- Lựa chọn B: Cloud Function bị giới hạn về thời gian chạy (tối đa 15 phút) và không thể tự động xử lý khối lượng dữ liệu cực lớn ở dạng kéo một cách đáng tin cậy.
- Lựa chọn C: Chạy batch job hàng giờ sẽ gây ra độ trễ cao và kéo dữ liệu theo lô từ Pub/Sub không tối ưu bằng việc stream liên tục.
(Đáp án được gợi ý bởi AI)