Xử lý stream (stream processing)
DDIA Ch11 — xử lý dòng sự kiện vô tận thay vì khối cố định: event & log-based broker (Kafka giữ offset cho nhiều consumer đọc độc lập); message broker truyền thống (xoá sau đọc) vs log-based (giữ log); windowing (tumbling/hopping/sliding/session) với event-time và watermark cho event trễ; stream join và đảm bảo exactly-once qua idempotent + atomic commit. Recall Kafka log và sliding-window đã học ở track thuật toán.
Nội dung
Danh sách bài học
- 01~10 phút
Module 2 — Xử lý stream: tổng quan
Xử lý dòng sự kiện vô tận thay vì khối cố định: log-based broker (Kafka), windowing, stream join và exactly-once. Mặt còn lại của batch ở Module 1.
- 02~11 phút
Tư duy stream — event, input vô tận, xử lý liên tục
Stream xử lý một dòng sự kiện không bao giờ dứt (unbounded): job chạy mãi, phản hồi từng event khi tới. Vì sao input vô tận đổi hẳn cách thiết kế so với batch.
- 03~13 phút
Log-based broker — Kafka, offset, và log chỉ append
Kafka lưu mỗi sự kiện vào log chỉ-append có offset cố định, không xoá sau khi đọc — nhiều consumer đọc độc lập ở tốc độ riêng. Khác broker truyền thống.
- 04~13 phút
Windowing — cắt dòng vô tận thành cửa sổ hữu hạn để tổng hợp
Cắt dòng vô tận thành cửa sổ để tổng hợp: tumbling, hopping, sliding, session. Event-time vs processing-time, và watermark để xử lý event trễ.
- 05~13 phút
Stream join & exactly-once — ghép dòng, đảm bảo không trùng
Ghép hai stream hoặc stream với bảng, và vì sao 'xử lý đúng một lần' khó: đảm bảo exactly-once qua idempotent + atomic commit, cùng fault tolerance của stream.
- 06~14 phút
Lab — thiết kế một stream pipeline thật
Tự thiết kế stream pipeline cho một bài toán thời gian thực: chọn window, xử lý event trễ, lập luận đảm bảo exactly-once. Không có lời giải sẵn.
- 07~9 phút
Module 2 — Tổng kết & cheat sheet
Recap stream: log-based broker (Kafka offset), windowing (event-time, watermark), stream join, exactly-once. Cheat sheet, glossary, self-assessment trước Module 3.