Xử lý luồng dữ liệu liên tục khi dữ liệu đến. Thay vì thu thập dữ liệu thành từng lô và xử lý theo khoảng thời gian, bộ xử lý luồng phân tích từng sự kiện khi nó chảy qua hệ thống. Một giao dịch thẻ tín dụng được đánh giá gian lận chỉ trong vài mili giây. Một chỉ số cảm biến sẽ kích hoạt cảnh báo khi nó vượt qua ngưỡng nhất định. Luồng nhấp chuột cập nhật mô hình đề xuất trong thời gian thực. Quá trình xử lý diễn ra trong khi dữ liệu đang chuyển động, chứ không phải ở trạng thái tĩnh.
Kiến trúc xử lý luồng khác với xử lý theo lô. Dữ liệu đến thông qua hàng đợi tin nhắn như Kafka hoặc Kinesis. Các bộ xử lý luồng như Flink, Spark Streaming hoặc Kafka Streams tiêu thụ các sự kiện, áp dụng các phép biến đổi và phát ra kết quả. Hệ thống phải xử lý các sự kiện đến muộn, dữ liệu không theo thứ tự và ngữ nghĩa xử lý chính xác một lần. Đó là những vấn đề khó khăn. Các sự kiện đến muộn yêu cầu mốc thời gian để quyết định khi nào một cửa sổ thời gian hoàn tất. Các sự kiện không theo thứ tự yêu cầu bộ đệm và sắp xếp lại. Xử lý chính xác một lần yêu cầu sự phối hợp giữa nguồn, bộ xử lý và đích. Việc thực hiện đúng những điều này rất phức tạp. Khi chúng sai, kết quả sẽ không nhất quán hoặc bị trùng lặp. Xử lý luồng mạnh mẽ đối với các trường hợp sử dụng cần thông tin tức thời. Nó quá mức cần thiết cho các báo cáo hàng đêm. Sự lựa chọn giữa xử lý theo lô và xử lý luồng phụ thuộc vào yêu cầu về độ trễ. Nếu độ trễ tính bằng phút hoặc giờ là chấp nhận được, xử lý theo lô đơn giản và rẻ hơn. Nếu độ trễ tính bằng giây là quan trọng, xử lý luồng là lựa chọn duy nhất.
Đặc điểm xử lý dòng chảy
- Liên tục — xử lý các sự kiện khi chúng xảy ra
- Độ trễ thấp — từ mili giây đến giây
- Có trạng thái — duy trì trạng thái xuyên suốt các sự kiện
- Phức tạp — xử lý dữ liệu đến muộn và không theo thứ tự
- Có khả năng mở rộng — phân phối trên nhiều nút
Xử lý luồng dữ liệu là xử lý theo lô nhưng được đảo ngược lại. Thay vì chờ dữ liệu tích lũy, nó xử lý từng sự kiện ngay khi chúng xuất hiện.
Comments
No comments yet. Be the first to share a thought.
Leave a comment