Data catalog là nơi tra cứu dữ liệu đang có: bảng nào, cột gì, ai sở hữu, mô tả, mức độ nhạy cảm. Data lineage là đồ thị cho biết dữ liệu đi từ đâu tới đâu: bảng gold.revenue_daily được tính từ những bảng nào, qua job nào, và dashboard nào đang đọc nó.
Lineage cần khi:
- Đánh giá ảnh hưởng: định đổi kiểu cột orders.amount, biết ngay những bảng và dashboard nào bị ảnh hưởng.
- Truy nguyên số sai: dashboard lệch số, đi ngược lineage tới job hoặc nguồn gây lỗi.
- Tuân thủ: chứng minh cột chứa dữ liệu cá nhân chảy tới đâu và ai được đọc.
Lineage có hai mức: table-level (bảng A sinh ra bảng B) và column-level (cột revenue tính từ price * quantity). Nên thu tự động từ engine chạy job thay vì vẽ tay: Unity Catalog, OpenLineage (có tích hợp Airflow, Spark, dbt) kết hợp Marquez hoặc DataHub, hay đồ thị có sẵn của dbt.
| Hive Metastore | Unity Catalog | |
|---|---|---|
| Lưu gì | Metadata: schema, vị trí file, partition | Metadata + phân quyền, audit log, lineage |
| Phạm vi | Theo từng workspace/cluster | Dùng chung cho mọi workspace của tổ chức |
| Namespace | database.table | catalog.schema.table |
| Phân quyền | Hạn chế, thường dựa vào quyền trên storage | GRANT theo bảng, column mask, row filter |
| Lineage | Không có | Tự thu ở mức bảng và cột |
Lưu ý: catalog chỉ có giá trị khi được cập nhật. Mô tả và owner nên khai trong code (dbt YAML, comment trên bảng) để đi qua code review, thay vì trông vào việc có người điền tay trên giao diện.