Bỏ qua

Cấu trúc Delta Table – Metadata & Transaction Log

🟠 Quan trọng · Data Platform


Cấu trúc thư mục Delta

my_table/
  ├── _delta_log/                  ← Transaction Log
  │   ├── 00000000000000000000.json
  │   ├── 00000000000000000001.json
  │   └── 00000000000000000010.checkpoint.parquet
  ├── part-00000-xxx.parquet       ← Data files
  └── part-00001-xxx.parquet

Transaction Log (_delta_log)

Mỗi file JSON = 1 commit (1 thay đổi). Trong đó chứa:

Thành phần Ý nghĩa
add File Parquet mới được thêm vào
remove File Parquet bị loại bỏ (không xóa vật lý ngay)
metaData Thông tin schema, partition columns, format
commitInfo Ai thay đổi, lúc nào, thao tác gì (INSERT, UPDATE, MERGE...)

Cơ chế quản lý thay đổi

Khi bạn thực hiện UPDATE một dòng trong Delta:

  1. Delta KHÔNG sửa file cũ (Parquet là immutable)
  2. Tạo file Parquet MỚI chứa dữ liệu đã cập nhật
  3. Ghi vào transaction log: remove file cũ + add file mới
  4. File cũ vẫn tồn tại (dùng cho Time Travel) cho đến khi chạy VACUUM

Checkpoint

Mỗi 10 commit, Delta tạo 1 file checkpoint (.parquet) tổng hợp trạng thái → đọc nhanh hơn thay vì replay tất cả JSON.

Comments