Chuỗi: lakehouse-glossary · Phần 7
Năng suất & công cụ dev
Định dạng bảng và quản lý metadata
Định dạng bảng và metadata trong Lakehouse: Delta, Iceberg, Hudi. ACID, time travel, schema evolution, tối ưu metadata.
2026-03-173 phút đọcVI
Chuỗi: lakehouse-glossary
- 1.Delta Lake / Apache Iceberg / Apache Hudi — Định dạng bảng cho Lakehouse
- 2.Data versioning và time travel trong Lakehouse
- 3.Schema evolution và enforcement trong Lakehouse
- 4.Tối ưu định dạng file – Parquet, Delta, Z-Ordering
- 5.Compaction và chiến lược quản lý file
- 6.Tối ưu bảng và chiến lược clustering
- 7.Định dạng bảng và quản lý metadata(bài này)
- 8.Governance — Data catalog, lineage, kiểm soát truy cập
- 9.Security – Mã hóa, masking, tokenization
- 10.Metadata – Metadata store, lineage, discovery
- 11.Change Data Capture (CDC) trong Lakehouse
1. Mục tiêu
- Đảm bảo tính transactional (ACID) trên Lakehouse
- Hỗ trợ schema evolution, time travel, merge
- Tăng tốc truy vấn bằng metadata optimization
- Giảm rủi ro sai lệch dữ liệu khi ghi song song
2. 3 định dạng bảng Lakehouse chính
| Format | Ưu điểm chính | Giới hạn |
|---|---|---|
| Delta Lake | ACID, time travel, schema evolution, Z-order | Tốt nhất với Spark |
| Apache Iceberg | Table-level optimization, hidden partitioning, strong schema evolution | Nặng metadata |
| Apache Hudi | Real-time write/update/delete (upsert), hỗ trợ CDC tốt | Tích hợp kém hơn với Trino |
3. Tính năng cốt lõi của table format hiện đại
| Tính năng | Delta Lake | Iceberg | Hudi |
|---|---|---|---|
| ACID Transaction | Có | Có | Có |
| Time Travel | Có | Có | Một phần |
| Schema Evolution | Có | Có | Có |
| Compaction & Clustering | Có (Z-Order) | Có | Có |
| Upsert / Merge | Có | Có | Có |
| Metadata Table (Queryable) | Có | Có | Một phần |
| Streaming Support | Có | Có | Có |
| Trino/Presto Integration | Có | Có | Một phần |
4. Cách sử dụng Delta Lake (ví dụ cụ thể)
Tạo bảng Delta
CREATE TABLE delta.`/lake/silver/customers` (
id STRING,
name STRING,
age INT
) USING DELTA
PARTITIONED BY (age)Thêm dữ liệu và merge
MERGE INTO customers
USING updates
ON customers.id = updates.id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *Truy vấn theo thời gian
SELECT * FROM customers TIMESTAMP AS OF '2023-12-01'5. Metadata Optimization
- Metadata file (JSON, manifest, snapshot…) cần được compact và làm sạch thường xuyên
- Có thể query metadata bằng SQL:
DESCRIBE HISTORY,SHOW VERSIONS
| Tác vụ | Tool hỗ trợ |
|---|---|
| Optimize metadata | VACUUM, OPTIMIZE, REWRITE MANIFEST |
| Kiểm tra version | DESCRIBE HISTORY |
| Xóa bản cũ | VACUUM RETAIN 7 HOURS |
6. Khi nào dùng định dạng nào?
| Use Case | Đề xuất Table Format |
|---|---|
| Dự án chủ yếu dùng Spark | Delta Lake |
| Dự án đa công cụ (Spark + Trino) | Iceberg |
| Có yêu cầu real-time CDC | Hudi |
| Tập trung truy vấn thời gian | Delta Lake / Iceberg |
7. Gợi ý triển khai thực tế
| Dataset | Table Format | Ghi chú triển khai |
|---|---|---|
| Transactions | Delta Lake | Partition theo month, merge updates |
| Customer Profile | Delta Lake | Lưu lịch sử thay đổi, truy vấn theo thời gian |
| Collection Logs | Hudi | Cập nhật nhiều, tích hợp real-time |
| CDP Event Tracking | Iceberg | Nhiều hệ truy vấn, query tốc độ cao |
8. Quản lý schema & metadata theo chuẩn
- Tạo
schema registryriêng cho từng domain - Gắn
table owner,table version,last modified - Tự động sync với Data Catalog (ví dụ: Amundsen, DataHub)
9. Checklist triển khai
- Chọn định dạng bảng phù hợp với workload
- Áp dụng
ACIDtransaction cho critical data - Tối ưu metadata định kỳ (vacuum, optimize)
- Kết nối table format với layer BI (Trino, Power BI)
- Tạo alert khi schema bị thay đổi đột ngột
Kết luận
Việc lựa chọn và quản lý table format đúng cách giúp bạn biến Lakehouse thành một Data Warehouse thế hệ mới, vừa linh hoạt như Data Lake, vừa ổn định, truy vấn mạnh như DWH truyền thống.
