Hệ thống Dữ liệu Phái sinh/Module 1 — Xử lý batch: tổng quan
1/21
Bài 1 / 21~10 phútXử lý batch (batch processing)Miễn phí lượt xem

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 batchdataflow 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 sortmerge 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

Đặt 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