</>Học Dev
Bài học

Tuần 6 - Ngày 3: Data Lineage và Observability

Tuần 6 – Ngày 3

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ụ.

RDS.ordersDMSs3://raw/ordersglue_job_cleans3://curated/ordersredshift.fact_salesathenaviewQuickSightdashboard

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 CatalogTechnical 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 WorkflowsCho thấy quan hệ job, không phải lineage mức bảng/cột
SageMaker ML LineageLineage 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ỏiCách làm trên AWS
FreshnessDữ liệu có mới không?DQ DataFreshness, alarm trên thời gian partition mới nhất
VolumeSố dòng có bình thường?DQ RowCount vs avg(last N), metric row count per run
SchemaCấu trúc có đổi?Crawler change policy, Schema Registry compatibility, alert schema drift
QualityGiá trị có hợp lệ?Glue DQ rules (hôm qua)
LineageTừ đâ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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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