Mục tiêu học tập
- Hiểu data lineage là gì và giải quyết bài toán nào
- Biết các công cụ lineage/catalog trên AWS: SageMaker Catalog (DataZone), Glue, OpenLineage
- Nắm khung data observability: freshness, volume, schema, quality, lineage
- Thiết kế versioning/audit cho dataset
1. Data lineage
Lineage = dấu vết nguồn gốc và biến đổi của dữ liệu: bảng này sinh từ nguồn nào, qua job nào, ai tiêu thụ.
Trả lời các câu hỏi:
- Impact analysis: đổi schema bảng nguồn thì downstream nào vỡ?
- Root cause: dashboard sai — dữ liệu hỏng từ bước nào?
- Compliance: dữ liệu PII này đã chảy đến đâu?
2. Công cụ trên AWS
| Công cụ | Vai trò lineage |
|---|---|
| Amazon DataZone / SageMaker Catalog (thế hệ mới, DataZone đang hợp nhất vào Amazon SageMaker) | Business data catalog: tổ chức data domain, publish/subscribe dataset giữa các team, tự động thu lineage (tích hợp chuẩn OpenLineage), search + governance |
| Glue Data Catalog | Technical metadata (schema/location) — không phải lineage đầy đủ |
| OpenLineage (chuẩn mở, tích hợp Spark/Airflow) | Emit lineage event từ job — MWAA/Glue tích hợp được |
| Step Functions/Glue Workflows | Cho thấy quan hệ job, không phải lineage mức bảng/cột |
| SageMaker ML Lineage | Lineage cho ML artifacts |
Exam-level: cần biết DataZone/SageMaker Catalog = catalog + governance + lineage cho tổ chức nhiều team; Glue Catalog = metadata kỹ thuật. Câu "business users tìm và hiểu dataset, theo dõi nguồn gốc" → DataZone/SageMaker Catalog.
3. Data observability — 5 trụ
| Trụ | Câu hỏi | Cách làm trên AWS |
|---|---|---|
| Freshness | Dữ liệu có mới không? | DQ DataFreshness, alarm trên thời gian partition mới nhất |
| Volume | Số dòng có bình thường? | DQ RowCount vs avg(last N), metric row count per run |
| Schema | Cấu trúc có đổi? | Crawler change policy, Schema Registry compatibility, alert schema drift |
| Quality | Giá trị có hợp lệ? | Glue DQ rules (hôm qua) |
| Lineage | Từ đâu đến đâu? | DataZone/OpenLineage |
Kết hợp bài Day 1: metrics/alarm là hạ tầng; 5 trụ này là "cái gì cần đo" riêng cho data.
4. Versioning và audit dataset
- S3 Versioning: giữ version object — khôi phục ghi đè/xóa nhầm (kèm MFA delete cho bucket quan trọng)
- Iceberg time travel + snapshots: query "dữ liệu tại thời điểm T", rollback bảng về snapshot — audit thay đổi mức bảng
- Raw zone immutable (chỉ append) chính là dạng versioning tự nhiên của lake
- Glue schema version history trong catalog; Schema Registry giữ version schema streaming
Câu hỏi ôn tập
-
Trước khi đổi kiểu một cột ở bảng nguồn, cần biết mọi bảng/dashboard bị ảnh hưởng. Năng lực nào và công cụ gì?
Xem đáp án
Data lineage — impact analysis. Trên AWS: Amazon DataZone / SageMaker Catalog (thu lineage tự động qua OpenLineage từ Glue/Spark/Airflow) cho phép truy đồ thị downstream từ bảng nguồn tới dashboard. Glue Catalog đơn thuần chỉ có schema/location, không có đồ thị phụ thuộc.
-
Dashboard sáng nay hiển thị doanh thu bằng 0. Trình tự điều tra theo khung observability?
Xem đáp án
(1) Freshness — partition/dữ liệu mới nhất có về không (job có chạy?); (2) Volume — row count run gần nhất so với bình thường; (3) Quality/Schema — DQ result, schema drift làm parse sai; (4) Lineage — lần ngược từ dashboard → bảng → job → nguồn để tìm mắt xích hỏng. Có sẵn alarm freshness/volume thì đã biết trước khi business phát hiện.
-
Nhiều team cần "chợ dữ liệu" nội bộ: tìm dataset, hiểu ý nghĩa, xin quyền dùng theo quy trình. Dịch vụ nào?
Xem đáp án
Amazon DataZone (SageMaker Catalog) — business catalog: producer publish dataset kèm metadata nghiệp vụ, consumer search và subscribe (workflow phê duyệt), quyền cấp tự động qua Lake Formation phía dưới. Glue Catalog là metadata kỹ thuật cho engine, không có trải nghiệm search/subscribe cho business user.
-
Job ghi đè nhầm dữ liệu curated hôm qua. Hai cơ chế cho phép khôi phục nhanh?
Xem đáp án
(1) S3 Versioning — object bị ghi đè còn version trước, khôi phục bằng cách xóa version mới/copy version cũ; (2) nếu là bảng Iceberg: time travel/rollback về snapshot trước (
FOR TIMESTAMP AS OF, rollback snapshot) — một lệnh, mức bảng. Đây là lý do curated quan trọng nên bật versioning hoặc dùng table format. -
Làm sao phát hiện schema drift từ nguồn trước khi nó phá pipeline?
Xem đáp án
Batch: crawler với schema change policy (log/update) + so sánh schema version trong catalog, alert qua EventBridge khi thay đổi; hoặc DQ rule ColumnCount/ColumnExists. Streaming: Glue Schema Registry với compatibility mode — schema mới không tương thích bị từ chối ngay tại producer, không cho vào stream. Phòng ở cổng luôn rẻ hơn sửa ở downstream.
Bài tập thực hành
- Vẽ lineage diagram cho pipeline lab của bạn từ nguồn tới Athena
- Bật S3 Versioning trên bucket curated, thử ghi đè + khôi phục một object
- Với bảng Iceberg tuần 5: query time travel và xem danh sách snapshots
- Đọc Amazon DataZone
Tài liệu tham khảo chính thức
Tiếp theo: Tối ưu chi phí Data Pipeline