Bước đầu tiên trong tiến trình làm sạch dữ liệu là phát hiện discrepancy (không nhất quán). Không nhất quán có thể xảy ra do nhiều yếu tố bao gồm việc thiết kế form nhập liệu tệ (có nhiều trường chọn lựa), lỗi do con người trong quá trình nhập liệu, lỗi do cố ý (ví dụ không muốn tiết lộ thông tin cá nhân), dữ liệu lỗi thời. Không nhất quán có thể sinh ra từ việc biểu diễn dữ liệu không thống nhất hoặc không thống nhất trong việc dùng mã. Lỗi trong thiết bị lưu trữ dữ liệu, lỗi hệ thống là những nguyên nhân khác gây ra vấn đề không nhất quán. Lỗi cũng có thể
xảy ra khi dữ liệu được dùng cho mục đích khác với dự định ban đầu.
Phát hiện không nhất quán: tại lúc bắt đầu, dùng bất cứ kiến thức nào mà bạn có để xem xét những thuộc tính của dữ liệu. Ví dụ, miền giá trị và loại dữ liệu cho mỗi thuộc tính là gì? Những giá trị nào có thể được chấp nhận cho mỗi thuộc tính? Tất cả giá trị có nằm ngoài vùng mong đợi hay không? Mô tả dữ liệu tổng quát trong phần 2.2 được dùng để xác định xu hướng chính của dữ liệu và phát hiện những phần tử cá biệt. Ví dụ, những giá trị mà lớn hơn độ lệch chuẩn hai lần có thể bị đánh dấu là những phần tử cá biệt. Trong bước này, bạn có thể dùng kịch bản của mình hoặc sử dụng vài công cụ sẽ thảo luận sau. Từ đó, bạn có thể tìm thấy những giá trị nhiễu, những giá trị cá biệt, những giá trị không bình thường cần phải kiểm tra.
Khi phân tích dữ liệu, nên cảnh giác sự không nhất quán trong cách dùng mã hay bất cứ biểu diễn dữ liệu nào (như là “2004/12/25” và 25/12/2004” đối với thuộc tính có kiểu ngày tháng). Field overloading là một nguyên nhân khác gây ra lỗi khi người thiết kế cố ép một thuộc tình mới dùng những phần (bit) không được sử dụng của các thuộc tính khác đã định nghĩa trước (ví dụ, dùng một bit không được sử dụng của một thuộc tính mà vùng giá trị chỉ sử dụng 31 trên 32 bit).
Dữ liệu nên được xem xét unique rule (qui luật duy nhất), consecutive rule (quy luật liên tiếp), và null rule (qui luật cho các giá trị null). Qui luật duy nhất phát biểu rằng mỗi gía trị của một thuộc tính phải khác với tất cả giá trị khác của thuộc tính đó. Quy luật liên tiếp phát biểu là không thiếu giá trị nào nằm giữa giá trị nhỏ nhất và giá trị lớn nhất của thuộc tính, và tất cả giá trị cũng phải duy nhất. Null rule xác định sử dụng trường trống, dấu ?, ký tự đặc biệt hay chuỗi khác để biểu thị cho giá trị null và những giá trị này sẽ được xử lý như thế nào. Như đã đề cập trong phần 2.3.1, nguyên nhân làm thiếu dữ liệu có thể bao gồm (1) do con người được yêu cầu cung cấp giá trị thuộc tính không thể hoặc không có (ví dụ, thuộc tính mã số bằng lái xe bị trống bởi vì người này không có bằng lái); (2) người nhập liệu không biết giá trị chính xác; (3) giá trị được cung cấp trong bước tiếp theo của quá
trình. Null rule cần phải xác định cách thức lưu trữ tình trạng null. Ví dụ, lưu 0 cho thuộc tính số, khoảng trống cho thuộc tính ký tự, hoặc bất cứ quy ước nào có thể dùng được ( chẳng hạn những entry như “don’y know” or “?” nên được chuyển thành khoảng trống).
Có một số công cụ thương mại khác có thể giúp đỡ trong bước phát hiện sự không nhất quán. Data scrubbing tools đơn giản sử dụng kiến thức về miền gía trị ( kiến thức về địa chỉ bưu điện và kiểm tra chính tả) để phát hiện lỗi và sửa lỗi. Những công cụ này dựa trên việc phân tích cú pháp và kỹ thuật tập mờ khi làm sạch dữ liệu từ nhiều nguồn. Data auditing tools tìm sự không nhất quán bằng cách phân tích dữ liệu để tìm sự tương quan và gom nhóm để phát hiện phần tử cá biệt. Những công cụ này cũng có thể dùng kỹ thuật tóm tắt dữ liệu mô tả trong phần 2.2.
Vài dữ liệu không nhất quán có thể được sửa bằng tay. Ví dụ, những lỗi xảy ra trong lúc nhập liệu có thể được sửa bằng cách lần theo dấu vết trang. Tuy nhiên, hầu hết lỗi sẽ cần đến data transformation (chuyển hóa dữ liệu). Đó là bước hai trong tiến trình làm sạch dữ liệu. Khi chúng ta tìm thấy sự không nhất quán, chúng ta cần xác định và thực hiện việc biến đổi để sửa chúng.
Nhiều công cụ thương mại có thể giúp đỡ trong bước chuyển hoá dữ liệu.
Data migration tools cho phép những biển đổi được cụ thể, như là thay thế chuỗi “gender” bằng “sex”. ETL (extraction/transformation/loading) tools cho phép người dùng xác định những biến đổi thông qua giao diện đồ họa (GUI). Những công cụ này chỉ hỗ trợ tập hợp những biến đổi có giới hạn, vì vậy chúng ta thường chọn cách viết kịch bản theo ý khác hàng cho bước này.
Hai bước phát hiện sự không nhất quán và chuyển hoá dữ liệu được lặp đi lặp lại. Tuy nhiên trong quá trình này có thể xảy ra lỗi và tốn nhiều thời gian. Vài sự biến đổi có thể phát sinh ra lỗi không nhất quán. Một vài lỗi không nhất quán ẩn nắp có thể chỉ được phát hiện sau khi một cái khác đã được sửa. Ví dụ, lỗi in ấn “2004” trong trường year có thể xuất hiện khi tất cả giá trị ngày đã được chuyển sang dạng chuẩn. Những biến đổi thường được làm như là xử lý theo khối khi người dùng đợi
mà không có thông tin phản hồi. Chỉ sau khi việc chuyển đổi hoàn tất thì người dùng mới có thể quay lại và kiểm tra không có giá trị khác thường nào được tạo ra. Việc lặp đi lặp lại nhiều lần được yêu cầu trước khi người dùng thoả mãn. Bất cứ bộ nào không thể được giải quyết một cách tự động bằng cách biến đổi sẽ được in ra file mà không có bất cứ sự giải thích nào xem như là nguyên nhân gây ra lỗi. Kết quả là, quá trình làm sạch dữ liệu cũng mất chất lượng từ việc thiếu sự tương tác.
Những cách tiếp cận mới để làm sạch dữ liệu nhấn mạnh việc làm tăng sự tương tác. Ví dụ, Potter’s Wheel là một công cụ làm sạch dữ liệu public (xem
http://control.cs.berkeley.edu/abc) mà kết hợp cả phát hiện sự không nhất quán và chuyển hóa dữ liệu. Người dùng dần dần xây dựng một dãy biến đổi bằng cách soạn và sửa lỗi từng biến đổi, một bước tại một thời điểm, trên giao diện nhiều sheet trải dài. Những biến đổi có thể được xác định bằng đồ hoạ hoặc bằng cách cung cấp ví dụ. Kết quả được hiển thị ngay lập tức trên màn hình. Người dùng có thể hủy bỏ một thao tác biến đổi trước đó, vì vậy những lỗi thêm vào có thể được xoá. Công cụ này thực hiện việc kiểm tra sự không nhất quán một cách tự động trên dữ liệu được biến đổi trong lần gần nhất. Người dùng có thể dần dần phát triển và cải tiến những biến đổi khi mà sự không nhất quán được tìm thấy, dẫn đến hiệu quả cao hơn và quá trình làm sạch dữ liệu hiệu quả hơn.
Một cách tiếp cận khác để tăng sự tương tác trong quá trình làm sạch dữ liệu là việc phát triển ngôn ngữ cho việc xác định những toán tử chuyển đổi dữ liệu. Việc này tập trung vào việc định nghĩa những mở rộng mạnh mẽ hơn cho SQL và những thuật toán mà cho phép người dùng diễn tả quá trình làm sạch dữ liệu hiệu quả hơn.
Việc cập nhật siêu dữ liệu là quan trọng để phản ánh tri thức. Điều đó sẽ giúp tăng tốc quá trình làm sạch dữ liệu trong những phiên bản lưu trữ dữ liệu tương lai.
Phần 2.4. Tích hợp và chuyển đổi dữ liệu
từ nhiều nguồn lại với nhau. Dữ liệu cũng cần phải được chuyển đổi sang những dạng thích hợp cho việc khai thác. Phần này sẽ mô tả cả 2 quá trình: tích hợp và chuyển đổi dữ liệu.