Data quality check là các khẳng định tự động về dữ liệu, chạy như một bước của pipeline: đạt thì đi tiếp, không đạt thì cảnh báo hoặc dừng trước khi số sai lên dashboard.
Các nhóm kiểm tra, theo câu hỏi mà mỗi nhóm trả lời:
- Completeness — có đủ không: cột bắt buộc không NULL, số dòng hôm nay không tụt 80% so với trung bình 7 ngày.
- Uniqueness — có trùng không: order_id là duy nhất.
- Validity — có hợp lệ không: status thuộc danh sách cho phép, amount >= 0, ngày không nằm ở tương lai.
- Consistency — có khớp không: mọi user_id trong bảng fact đều có trong bảng dim; tổng tiền trong warehouse khớp tổng ở DB nguồn.
- Freshness — có mới không: bản ghi mới nhất không cũ quá 6 giờ.
Ví dụ với dbt:
models:
- name: fct_orders
columns:
- name: order_id
data_tests: [unique, not_null]
- name: user_id
data_tests:
- relationships:
arguments:
to: ref('dim_users')
field: user_idĐặt ở đâu: khi ingest (schema, số dòng, freshness của nguồn) để chặn sớm; sau transform (khoá, quan hệ, luật nghiệp vụ); và trước khi publish sang bảng mà dashboard đọc.
Lưu ý: mỗi check cần một hành động đi kèm: lỗi nghiêm trọng như trùng khoá hay thiếu dữ liệu thì dừng pipeline, lỗi nhẹ thì cảnh báo. Check chỉ ghi log mà không ai đọc thì coi như không có.