Chuỗi: lakehouse-layer-spec · Phần 5
Năng suất & công cụ dev
Lakehouse Layer 5 — Metadata & Governance
Metadata & Governance: catalog, lineage, ownership, glossary, phân loại, RBAC/ABAC, audit. DataHub, Amundsen. Tuân thủ quy định bảo vệ dữ liệu cá nhân.
2026-03-173 phút đọcVI
Spec – Layer 5: Metadata & Governance Layer
1. Mục đích
Lớp Metadata & Governance được thiết kế nhằm:
- Tự động thu thập & lưu trữ thông tin mô tả về các bảng dữ liệu (schema, lineage, owner…)
- Tổ chức tài sản dữ liệu theo domain, sensitivity, lifecycle
- Theo dõi lịch sử thay đổi schema
- Phân quyền truy cập theo vai trò & mục đích sử dụng
- Đáp ứng yêu cầu compliance theo quy định bảo vệ dữ liệu cá nhân và chính sách nội bộ
2. Thành phần chính
| Thành phần | Vai trò | Công cụ đề xuất |
|---|---|---|
| Metadata Catalog | Lưu trữ schema, mô tả, column detail, tag | DataHub, Amundsen |
| Lineage Tracking | Hiển thị pipeline: raw → staging → curated → analytics | Kafka + Spark lineage + dbt |
| Data Ownership | Ai chịu trách nhiệm với từng dataset | Gán data_owner, data_steward theo domain |
| Glossary | Từ điển định nghĩa thuật ngữ | DataHub glossary |
| Data Classification | Gắn nhãn: PII, Confidential, Public | Manual + Rule-based |
| Policy Engine | Áp dụng rule RBAC/ABAC | Tích hợp AuthZ, Open Policy Agent (OPA) |
| Audit Trail | Ghi log thao tác, truy cập | Kết hợp với logging (e.g. Loki, ELK) |
3. Metadata bắt buộc cho mỗi bảng
| Trường metadata | Bắt buộc | Ghi chú |
|---|---|---|
table_description | ✅ | Mô tả nghiệp vụ rõ ràng |
columns | ✅ | Tên, kiểu, mô tả từng cột |
owner, steward | ✅ | Gán người chịu trách nhiệm |
domain | ✅ | Ví dụ: lending, crm, risk |
data sensitivity | ✅ | High / Medium / Low |
tags | ✅ | raw/staging/curated/analytics, ML-ready, PII |
refresh_frequency | ✅ | real-time, hourly, daily, monthly |
linked upstream/downstream | ✅ | Hiển thị lineage |
4. Quy trình vận hành metadata
| Giai đoạn | Hoạt động chính | Công cụ |
|---|---|---|
| Ingest | Tự động scan schema từ raw → curated | Airbyte, dbt |
| Build Model | Sync schema & logic từ dbt → DataHub | dbt plugin |
| Update | Khi pipeline thay đổi → cập nhật schema & lineage | Git commit + CI |
| Review | Steward xác nhận mô tả, sensitivity, glossary | UI DataHub |
| Audit | Log hành vi truy cập vào bảng, dashboard | Loki/ELK |
5. Phân quyền & bảo mật (RBAC/ABAC)
| Nhóm vai trò | Quyền metadata | Quyền dữ liệu |
|---|---|---|
data_engineer | ✅ Full | ✅ Full |
data_analyst | ✅ Read | ✅ Read curated/analytics |
business_user | ✅ Read limited | ❌ Không truy cập staging/raw |
data_steward | ✅ Update | ✅ Audit & review |
external_partner | ❌ Không truy cập | ✅ Qua API (filtered, masked) |
6. Giao diện người dùng (Data Discovery)
- Search theo từ khóa (
email,overdue,ltv) - Filter theo
domain,sensitivity,owner,last modified - Lineage graph trực quan: raw → stg → cur → ana
- Tích hợp trực tiếp với Superset, dbt, Spark
7. Ví dụ metadata bảng cur.lending.contract_summary
| Trường | Giá trị |
|---|---|
table_name | cur.lending.contract_summary |
description | Bảng tổng hợp hợp đồng cho vay đã enrich thông tin rủi ro |
owner | loan.analytics@company.com |
steward | data.steward@company.com |
domain | lending |
sensitivity | high |
tags | curated, ml-ready, pii |
refresh_frequency | daily |
upstream | stg.lending.contract_raw, risk.risk_score |
downstream | ana.lending.daily_store_performance |
