Profiling: 'soi' dữ liệu trước khi quản
Trước khi đặt ra bất kỳ quy tắc nào để “chấm điểm” dữ liệu, bạn cần biết dữ liệu thực sự chứa gì. Đó chính là việc của profiling (lập hồ sơ dữ liệu). Trang này giải thích cho người mới: profiling là gì, nó cho bạn biết những thông tin gì, vì sao nó luôn là bước đầu tiên, và Ataccama ONE chạy nó như thế nào — bằng ngôn ngữ đời thường, có ví dụ quen thuộc ở doanh nghiệp Việt Nam.
Profiling là gì?
Phần tiêu đề “Profiling là gì?”Hãy tưởng tượng bạn vừa nhận một bảng dữ liệu mới mà chưa từng mở ra: bảng KHACH_HANG có 200.000 dòng và 30 cột. Bạn chưa biết cột nào sạch, cột nào đầy lỗ hổng, cột nào lẫn lộn đủ kiểu giá trị. Profiling là bước máy tự động “đọc lướt” toàn bộ bảng đó và lập một bản tóm tắt thống kê về từng cột — giống như một bản khám sức khỏe tổng quát cho dữ liệu của bạn.
Điểm mấu chốt: profiling không sửa và không phán xét dữ liệu. Nó chỉ mô tả hiện trạng một cách khách quan. Từ bản mô tả đó, bạn mới đủ cơ sở để quyết định: cột nào cần đặt quy tắc, cột nào cần làm sạch, cột nào đang ổn.
Profiling cho biết những gì?
Phần tiêu đề “Profiling cho biết những gì?”Kết quả profiling thường gồm ba nhóm thông tin. Hiểu ba nhóm này là hiểu được 80 phần trăm giá trị của profiling.
1. Thống kê từng cột
Phần tiêu đề “1. Thống kê từng cột”Đây là những con số “đo nhanh” cho mỗi cột:
- Số bản ghi (record count): cột này có bao nhiêu giá trị, trên tổng bao nhiêu dòng.
- Tỷ lệ rỗng (null / empty): bao nhiêu phần trăm dòng bị bỏ trống. Ví dụ cột
So_dien_thoairỗng 35 phần trăm là dấu hiệu cần chú ý ngay. - Số giá trị phân biệt (distinct count): có bao nhiêu giá trị khác nhau. Cột
Tinh_thanhmà có tới 412 giá trị phân biệt (trong khi Việt Nam chỉ có vài chục tỉnh thành) gần như chắc chắn đang lẫn lỗi chính tả và viết tắt. - Giá trị nhỏ nhất / lớn nhất (min / max): với số và ngày tháng, đây là cách nhanh nhất phát hiện giá trị vô lý. Ví dụ cột
Ngay_sinhcó max là năm 2099, hoặc cộtTuoicó min là số âm.
2. Mẫu và phân bố giá trị
Phần tiêu đề “2. Mẫu và phân bố giá trị”Ngoài các con số, profiling còn cho bạn thấy dữ liệu trông như thế nào:
- Phân bố giá trị (value distribution): giá trị nào xuất hiện nhiều nhất, nhiều ít ra sao. Ví dụ cột
Gioi_tinhlẽ ra chỉ có “Nam / Nữ”, nhưng phân bố lại lòi ra “M”, “F”, “1”, “0”, “Khac” — bạn thấy ngay sự thiếu chuẩn hóa. - Mẫu định dạng (pattern): profiling nhóm các giá trị theo “khuôn” của chúng. Ví dụ cột số điện thoại có khuôn
09xxxxxxxx,+849xxxxxxxx,9xx.xxx.xxx… cùng tồn tại — báo hiệu cần thống nhất định dạng. - Ngoại lệ (outlier): những giá trị nằm lệch hẳn so với phần còn lại. Ví dụ phần lớn đơn hàng có giá trị vài trăm nghìn tới vài triệu, nhưng có vài dòng ghi 9.999.999.999 đồng — gần như chắc là lỗi nhập liệu.
3. Gợi ý kiểu và định dạng
Phần tiêu đề “3. Gợi ý kiểu và định dạng”Dựa trên mẫu và phân bố, Ataccama có thể đoán ý nghĩa của cột dù tên cột không nói rõ. Nó nhận ra một cột “trông giống email”, “trông giống số điện thoại Việt Nam”, “trông giống mã số thuế”, “trông giống mã bưu chính”… Điều này cực kỳ hữu ích: ngay cả khi cột được đặt tên mơ hồ như Field_07, profiling vẫn giúp bạn biết bên trong nó thực chất là dữ liệu gì để gắn đúng thuật ngữ và đặt đúng quy tắc.
Vì sao profiling là bước đầu tiên?
Phần tiêu đề “Vì sao profiling là bước đầu tiên?”Có một nguyên tắc rất đơn giản nhưng hay bị bỏ qua: bạn không thể đặt quy tắc đúng nếu chưa hiểu dữ liệu.
Người mới thường muốn lao thẳng vào việc “đặt quy tắc chất lượng” cho oai. Nhưng nếu chưa profiling, bạn sẽ đặt quy tắc trong mù mờ — ví dụ ép cột số điện thoại phải đúng khuôn 09xxxxxxxx, rồi mới phát hiện ra 40 phần trăm khách hàng nhập theo dạng +84.... Quy tắc lập tức báo “không hợp lệ” hàng loạt, dù dữ liệu thật ra không sai đến mức đó — chỉ là bạn chưa biết thực tế trông ra sao.
Vì vậy thứ tự đúng luôn là: profiling trước (hiểu) → rồi mới đặt quy tắc (đo). Profiling biến câu hỏi mơ hồ “dữ liệu này tốt hay xấu?” thành những con số cụ thể để bạn ra quyết định có cơ sở. Đây cũng là lý do profiling là nền móng của cả chương trình data governance: muốn dữ liệu trở thành tài sản đáng tin, trước hết phải biết mình đang có gì trong tay.
Ataccama ONE chạy profiling như thế nào?
Phần tiêu đề “Ataccama ONE chạy profiling như thế nào?”Một điểm đáng chú ý về mặt kiến trúc: Ataccama không kéo toàn bộ dữ liệu thô của bạn về trung tâm rồi mới phân tích. Thay vào đó, profiling chạy ở DPE (Data Processing Engine) — bộ xử lý đặt gần nguồn dữ liệu. Nghĩa là việc “soi” diễn ra ngay cạnh nơi dữ liệu nằm, còn thứ được gửi về trung tâm chỉ là metadata (các con số thống kê, mẫu, phân bố) — không phải dữ liệu nhạy cảm. Cách này vừa nhanh, vừa an toàn cho dữ liệu của doanh nghiệp.
Sau khi profiling xong, kết quả không nằm im một chỗ. Ataccama có các documentation flows — những luồng tự động làm giàu metadata: dựa trên kết quả profiling, hệ thống tự đề xuất mô tả cho cột, tự phân loại, tự gợi ý gắn thuật ngữ nghiệp vụ. Khi danh mục dữ liệu (catalog) ngày càng lớn, các luồng này giúp giảm mạnh công sức làm tay thay vì phải mô tả thủ công từng cột một.
Và đây là phần “thông minh” nhất: profiling chính là cơ sở cho các gợi ý bằng AI của Ataccama. Vì hệ thống đã hiểu hình hài dữ liệu, nó có thể:
- Gợi ý quy tắc chất lượng (rule suggestions): ví dụ thấy một cột toàn dạng email thì đề xuất luôn quy tắc kiểm tra định dạng email.
- Gợi ý gắn thuật ngữ (term assignment): tự đề xuất cột này nên gắn với thuật ngữ “Email khách hàng”, cột kia là “Mã số thuế”.
Bạn vẫn là người duyệt và quyết định, nhưng điểm xuất phát đã được dọn sẵn — nhanh hơn rất nhiều so với bắt đầu từ con số không.
Ví dụ Việt Nam: profiling một bảng khách hàng
Phần tiêu đề “Ví dụ Việt Nam: profiling một bảng khách hàng”Giả sử BSD profiling bảng KHACH_HANG của một doanh nghiệp bán lẻ và nhận về:
- Cột
Email: rỗng 22 phần trăm; trong phần có dữ liệu, 8 phần trăm không khớp khuôn email (thiếu@, sai miền). → Ứng viên rõ ràng cho một quy tắc kiểm tra định dạng. - Cột
MST(mã số thuế): có khuôn 10 số và khuôn 13 số lẫn lộn, vài dòng còn lẫn cả chữ. → Cần chuẩn hóa và đặt quy tắc. - Cột
Tinh_thanh: 380 giá trị phân biệt cho thứ lẽ ra chỉ vài chục. → Lẫn “TP.HCM”, “Hồ Chí Minh”, “HCM”, “tphcm”… cần một danh mục giá trị chuẩn (lookup). - Cột
Ngay_sinh: min năm 1900, max năm 2090. → Có giá trị vô lý, cần quy tắc kiểm tra khoảng hợp lệ.
Chỉ sau vài phút profiling, bạn đã có một danh sách việc cần làm rất cụ thể — thay vì ngồi đoán. Đó chính là sức mạnh của bước đầu tiên này.
Tiếp theo
Phần tiêu đề “Tiếp theo”- Quy tắc chất lượng (DQ rules): cách Ataccama “đo” dữ liệu tốt hay xấu — sau khi đã hiểu dữ liệu, đây là cách định nghĩa “thế nào là tốt”.
- Tạo và áp dụng DQ rule trong thực tế — bắt tay vào dựng quy tắc, thường khởi đầu từ chính gợi ý mà profiling sinh ra.