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.
TL;DR: Module 1 dựng nền tư duy batch: xử lý một khối dữ liệu bất biến thành output phái sinh theo mẻ. Bạn đi từ kỷ luật gốc (input bất biến → tính lại được), qua MapReduce (map → shuffle → reduce, với shuffle là external sort phân tán), tới ba chiến lược join trong batch và dataflow engine (DAG, materialization vs pipelining, fault tolerance bằng tính lại). Khép bằng một lab tự thiết kế pipeline. Đây là nửa "theo mẻ" của track; Module 2 là nửa "theo dòng" (stream).
Vì sao module này tồn tại
Trước khi có dữ liệu thời gian thực, mọi hệ phân tích đều là batch: mỗi đêm dựng lại báo cáo, mỗi giờ làm mới chỉ mục. Batch vẫn là xương sống của data engineering vì nó đổi độ trễ lấy hai thứ vô giá — throughput khổng lồ (nuốt được TB–PB) và tính đơn giản (input bất biến → chạy lại an toàn). Hiểu batch trước cho bạn một khung tư duy sạch để sau đó thấy stream chỉ là "cùng ý tưởng, trên dòng vô tận".
Sau module này bạn sẽ
- Explain vì sao input bất biến sinh output phái sinh khiến batch job idempotent và tính lại được.
- Explain mô hình MapReduce (map → shuffle → reduce) và nhận ra shuffle chính là external sort phân tán.
- Compare sort-merge join, broadcast hash join, partitioned hash join theo kích thước dữ liệu và skew.
- Design một batch pipeline nhiều bước và lập luận materialization vs pipelining cùng fault tolerance bằng tính lại.
Lộ trình module
flowchart LR L1["01 Tu duy batch<br/>input bat bien"] --> L2["02 MapReduce<br/>map-shuffle-reduce"] L2 --> L3["03 Join trong batch<br/>sort-merge/hash"] L3 --> L4["04 Dataflow & FT<br/>DAG, lineage"] L4 --> L5["05 Lab<br/>tu thiet ke pipeline"]
Bắt đầu ở bài 01 — Tư duy batch: kỷ luật input bất biến → output phái sinh, và triết lý Unix pipe làm nền. Bài 02 — MapReduce phóng to pipe Unix ra nghìn máy; điểm khoá là shuffle = external sort phân tán. Bài 03 — Join trong batch so ba chiến lược join theo kích thước và skew. Bài 04 — Dataflow & fault tolerance giải thích vì sao Spark nhanh hơn Hadoop (pipelining, không phải RAM) và fault tolerance bằng lineage. Bài 05 — Lab tổng hợp: bạn tự thiết kế một pipeline nhiều bước cho bài toán thật.
Yêu cầu trước khi bắt đầu
- Nắm external merge sort và merge sort (track thuật toán) — Module này recall trực tiếp: external-sort, merge-sort.
- Quen khái niệm HDFS/block, key-value, hash ở mức cơ bản.
Time budget
- Module: ~1.2 giờ đọc + lab.
- 01–04 mỗi bài 11–13 phút; 05 (lab) ~14 phút; recap ~9 phút.
Cách học module này hiệu quả
- Với mỗi bài "đoán output", dừng lại dự đoán trước khi đọc tiếp — đó là nơi học thật sự diễn ra.
- Giữ một câu hỏi xuyên suốt: "input ở bước này có bất biến không, và nếu job chết giữa chừng thì chạy lại từ đâu?"
- Làm lab (bài 05) tự điền trước khi xem gợi ý — đường fade độc lập chỉ có giá trị khi bạn tự vật lộn trước.
Bài tiếp theo: Tư duy batch — input bất biến, output phái sinh
Bài này có giúp bạn hiểu bản chất không?
Hỏi đáp về bài này
Chưa có câu hỏi
Có gì chưa rõ trong bài? Đặt câu hỏi đầu tiên — câu trả lời từ cộng đồng giúp bạn (và người sau).
Đặt câu hỏi đầu tiên