Xử lý batch (batch processing)
DDIA Ch10 — biến một khối dữ liệu bất biến khổng lồ thành output phái sinh: triết lý Unix (pipe, uniform interface) làm nền; MapReduce (map → shuffle → reduce) với shuffle chính là external sort phân tán; ba chiến lược join trong batch (sort-merge, broadcast hash, partitioned hash); dataflow engine (DAG) với materialization vs pipelining và fault tolerance bằng tính lại. Recall external-sort và merge-sort đã học ở track thuật toán.
Nội dung
Danh sách bài học
- 01~10 phút
Module 1 — Xử lý batch: tổng quan
Biến khối dữ liệu bất biến khổng lồ thành output phái sinh theo mẻ: triết lý Unix, MapReduce, join trong batch, và dataflow engine — nền của mọi ETL.
- 02~12 phút
Tư duy batch processing — input bất biến, output phái sinh
Batch xử lý một khối dữ liệu cố định thành output mới mà không đụng dữ liệu gốc — mẫu pipe của Unix gieo mầm cho kỷ luật bất biến của batch phân tán.
- 03~13 phút
MapReduce — map, shuffle, reduce trên hàng nghìn máy
Ba pha map → shuffle → reduce chia một job khổng lồ ra nghìn máy. Điểm khoá: shuffle chính là external sort phân tán chạy trên cả cluster.
- 04~13 phút
Join trong batch — sort-merge, broadcast, partitioned
Ba cách join hai tập dữ liệu lớn trong batch — sort-merge, broadcast hash, partitioned hash. Chọn theo kích thước bảng và mức độ skew của join key.
- 05~12 phút
Dataflow engine & fault tolerance — Spark vượt MapReduce
Engine DAG (Spark, Tez) pipeline dữ liệu giữa các bước, chỉ ghi đĩa ở ranh giới shuffle — ít disk I/O hơn MapReduce; chịu lỗi bằng lineage, không replicate.
- 06~14 phút
Lab — thiết kế batch pipeline top-sản-phẩm nhiều bước
Tự thiết kế batch pipeline nhiều bước cho bài toán thật: chọn chiến lược join, ước lượng số pass I/O, lập luận fault tolerance. Không có lời giải sẵn.
- 07~9 phút
Module 1 — Tổng kết & cheat sheet
Recap batch: triết lý Unix, MapReduce (shuffle = sort phân tán), ba kiểu join, dataflow DAG. Cheat sheet, glossary, self-assessment trước khi vào Module Stream.