Dữ liệu sai tệ hơn không có dữ liệu
Không có dữ liệu thì người ta biết mình đang đoán. Có dữ liệu sai thì người ta quyết sai với sự tự tin cao. Đây là lý do chất lượng dữ liệu là điều kiện, không phải một cải tiến để làm sau.
Sáu chiều của chất lượng
- Đầy đủ — có mất bản ghi không?
- Đúng đắn — giá trị có phản ánh thực tế không?
- Nhất quán — cùng một thứ có giống nhau giữa các hệ thống không?
- Kịp thời — dữ liệu tới đủ sớm để dùng không?
- Duy nhất — có bản ghi trùng không?
- Hợp lệ — có đúng định dạng và nằm trong khoảng hợp lý không?
Kiểm tra tự động, không kiểm tra thủ công
Kiểm tra thủ công không mở rộng được và người ta sẽ bỏ khi bận. Bốn loại kiểm tra tự động rẻ và bắt được phần lớn vấn đề:
- Kiểm tra khối lượng: số sự kiện hôm nay lệch quá 30 phần trăm so với trung bình bảy ngày thì cảnh báo. Bắt được lỗi mất dữ liệu, vốn là lỗi phổ biến nhất.
- Kiểm tra giá trị rỗng: tỷ lệ trường bắt buộc bị rỗng vượt ngưỡng.
- Kiểm tra khoảng: giá trị nằm ngoài khoảng hợp lý, ví dụ tuổi âm hoặc đơn hàng gấp 100 lần trung bình.
- Kiểm tra đối chiếu: tổng doanh thu trong hệ thống phân tích so với hệ thống kế toán, chênh quá ngưỡng thì cảnh báo.
Ai chịu trách nhiệm
Chất lượng dữ liệu hỏng khi nó là "việc của đội dữ liệu". Đội dữ liệu không kiểm soát được nơi dữ liệu sinh ra.
Mô hình hiệu quả hơn: đội tạo ra dữ liệu chịu trách nhiệm về chất lượng của nó, giống như đội viết code chịu trách nhiệm về lỗi của mình. Đội dữ liệu cung cấp công cụ, tiêu chuẩn và cảnh báo.
Khi phát hiện dữ liệu sai
Bốn bước: dừng dùng nó ngay và nói cho người đang dùng, đánh giá phạm vi ảnh hưởng, sửa nguồn trước rồi mới tính lại lịch sử, và ghi lại nguyên nhân cùng một kiểm tra mới để không lặp lại.
Bước đầu hay bị chậm vì ngại. Nhưng để người khác tiếp tục quyết định dựa trên số sai tốn kém hơn nhiều so với một tin nhắn khó chịu.
Sai lầm thường gặp
- Coi chất lượng dữ liệu là việc làm sau.
- Kiểm tra thủ công thay vì tự động.
- Giao toàn bộ trách nhiệm cho đội dữ liệu.
- Chậm thông báo khi phát hiện sai.
Checklist kết bài
- [ ] Tôi có kiểm tra tự động về khối lượng, giá trị rỗng, khoảng và đối chiếu.
- [ ] Đội tạo ra dữ liệu chịu trách nhiệm về chất lượng của nó.
- [ ] Có quy trình rõ khi phát hiện dữ liệu sai.
- [ ] Mỗi sự cố dữ liệu để lại một kiểm tra mới.
Kiểm tự động — bốn loại đáng có
Chất lượng dữ liệu không giữ được bằng cách xem thủ công. Cần kiểm tự động chạy mỗi lần dữ liệu cập nhật:
| Loại kiểm | Ví dụ | Bắt được gì |
|---|---|---|
| Khối lượng | Số bản ghi hôm nay so với trung bình 7 ngày | Đường ống hỏng, mất dữ liệu |
| Tính mới | Bản ghi mới nhất cách đây bao lâu | Đường ống dừng mà không báo |
| Phân bố | Tỉ lệ giá trị null, khoảng giá trị | Đổi cấu trúc nguồn |
| Quan hệ | Tổng theo phòng = tổng chung | Trùng lặp hoặc mất mát |
Ngưỡng cảnh báo và sự mệt mỏi
Cảnh báo quá nhạy thì đội tắt nó đi — và lúc đó bạn tệ hơn lúc chưa có.
Nguyên tắc đặt ngưỡng:
- Bắt đầu rộng, siết dần theo dữ liệu thật
- Phân mức: cảnh báo (xem khi rảnh) và sự cố (xử lý ngay)
- Mỗi cảnh báo phải có người nhận cụ thể, không gửi vào kênh chung
- Cảnh báo nào kêu mà không ai làm gì trong 3 lần liên tiếp thì sửa ngưỡng hoặc bỏ
Ai sở hữu chất lượng
Câu trả lời phổ biến — "đội dữ liệu" — thường sai. Đội dữ liệu không kiểm soát nguồn.
| Loại vấn đề | Ai sửa được |
|---|---|
| Sự kiện không bắn | Đội sản phẩm đã cài nó |
| Nguồn ngoài đổi cấu trúc | Đội tích hợp |
| Đường ống lỗi | Đội dữ liệu |
| Định nghĩa sai | Người làm sản phẩm sở hữu chỉ số |
Làm ngay
Đặt một kiểm tính mới cho ba bảng dữ liệu quan trọng nhất: nếu dữ liệu không cập nhật trong 24 giờ thì cảnh báo, gửi cho một người cụ thể. Đây là việc nửa ngày và nó bắt được loại sự cố im lặng nhất. <!--/les-append-->
<!--case-append-->
Áp dụng vào Căng tin số
Căng tin số có hai loại dữ liệu rất khác nhau chạy song song: sổ tay của Cô Hạnh và sự kiện của app. Mỗi bên hỏng theo một cách riêng, và bài học ở đây là không bên nào tự động đáng tin hơn bên kia.
Sổ của Cô Hạnh mạnh ở chiều đúng đắn: cô là người đổ bỏ thật, 14 năm nghề, con số 40 suất mỗi ngày là thứ cô nhìn tận mắt. Nhưng nó yếu ở chiều kịp thời và đầy đủ: ghi cuối buổi, nằm trong bếp, và ngày nào cô bận hay nghỉ thì có thể trống. Sự kiện của app thì ngược lại: tới tức thì, không bao giờ quên ghi giờ, nhưng chỉ đúng khi người ở quầy làm đúng. Tuần 1 nhân viên quầy quên bấm "hết" 5 lần. Năm lần đó bảng "còn món" nói rằng món vẫn còn, và có người đặt hoặc đi bộ tới quầy cơm vì tin nó. Dữ liệu sai tệ hơn không có dữ liệu, đúng như bài học nói.
Bốn kiểm tra tự động, viết cho đúng tình huống này:
| Loại kiểm | Áp dụng ở căng tin | Bắt được gì |
|---|---|---|
| Khối lượng | Số đơn đã thanh toán hôm nay so với trung bình 7 ngày học | App lỗi thanh toán, hoặc một ngày nghỉ bị tính như ngày thường |
| Tính mới | 12:15 mà chưa có sự kiện dish_sold_out nào, trong khi 6 trên 10 ngày cơ sở hết món mặn trước 12:30 | Nhân viên quên bấm "hết" |
| Quan hệ | Mỗi đơn đã thanh toán kết thúc ở đúng một trạng thái: đã nhận, không tới lấy, hoặc hoàn tiền | Đơn treo, đơn đếm hai lần |
| Đối chiếu | Tiền đặt trước trong app so với sao kê chuyển khoản Anh Tuấn đối soát cuối ngày | Sai lệch hệ thống giữa app và kế toán |
Kiểm đối chiếu thì giá trị nhất, vì nó chạm vào nỗi đau P7: Anh Tuấn hiện mất cả tiếng đối soát mỗi tối. Nếu tổng tiền trong app và sao kê khớp nhau mỗi ngày, ông có lý do tin app. Nếu lệch mà không ai biết, ông sẽ quay lại sổ tay "cho chắc", và chuỗi giá trị đứt ở bước tin được.
Ai sở hữu chất lượng? Không phải nhóm làm app cho mọi thứ. Việc bấm "hết" thuộc về nhân viên quầy, tức là về Anh Tuấn, người quản lý họ; số lần quên giảm từ 5 xuống 1 vào tuần 4 là nhờ ông nhắc, không nhờ code. Sổ suất bỏ đi thuộc về Cô Hạnh. Nhóm làm app sở hữu đường đi của sự kiện và cảnh báo.
Một vấn đề chất lượng nữa không nằm ở dữ liệu mà ở bối cảnh: tuần 3 là tuần thi giữa kỳ, nhiều sinh viên về sớm, nên 15 phút xếp hàng và 27 suất bỏ đi đẹp hơn thực tế. Số không sai, nhưng dùng nó mà không ghi chú thì kết luận sẽ sai. Hãy gắn nhãn tuần thi ngay vào dữ liệu, như một thuộc tính của ngày.
Thử ngay: viết nội dung cảnh báo cho kiểm tính mới ở trên, gồm ngưỡng, người nhận và câu gợi ý hành động. Nhớ rằng Cô Hạnh không xem được điện thoại giờ cao điểm, vậy người nhận nên là ai? <!--/case-append-->