Khi một đường ống Dataflow xử lý chậm do việc sử dụng SideInputs để liên kết dữ liệu:
- Sử dụng CoGroupByKey thay vì SideInput (Lựa chọn D): SideInputs trong Apache Beam yêu cầu truyền toàn bộ dữ liệu phụ (side input data) vào bộ nhớ của từng worker, điều này cực kỳ kém hiệu quả và làm chậm luồng xử lý nếu kích thước của tập dữ liệu tham chiếu lớn hơn bộ nhớ cache.
CoGroupByKey thực hiện liên kết dữ liệu theo khóa bằng cách gom nhóm dữ liệu có cùng khóa từ nhiều PCollection, hoạt động hiệu quả hơn ở quy mô lớn vì nó phân tán tải qua các worker nhờ cơ chế shuffle.
- Lựa chọn A: Mặc dù Avro nén hiệu quả hơn nhưng nguyên nhân chính gây thắt cổ chai ở đây là phép liên kết dữ liệu (join) qua SideInput.
- Lựa chọn B & C: Không giải quyết được tận gốc vấn đề hiệu năng của phép liên kết dữ liệu.
(Đáp án được gợi ý bởi AI)