Vấn đề chung là toàn bộ một chương trình được gọi là làm sạch dữ liệu , là một phần của một tiểu vùng lớn hơn được gọi là tích hợp dữ liệu . Tránh các loại vấn đề này có thể là một phần lớn lý do cho việc di chuyển từ các trang tính Excel và tại sao nhà phát triển cấp cao không muốn cho phép một trường trở nên vô hiệu. Tôi không nghĩ rằng thật vô lý khi nói rằng đây là một trong những nguồn phức tạp lớn hơn trong việc di chuyển dữ liệu.
Chỉ cần chọn sử dụng NULL bất cứ khi nào bạn có thể rất có thể làm sai , hãy để một mình thay đổi mô hình dữ liệu để làm cho nhiều trường trở nên vô hiệu hơn. Excel có kiểm tra tính toàn vẹn yếu hoặc không có khả năng là nguyên nhân của nhiều vấn đề này. Điều sai lầm cần làm là loại bỏ kiểm tra tính toàn vẹn trong cơ sở dữ liệu mới và đổ rác vào đó. Điều này chỉ khắc phục được vấn đề và tăng thêm độ phức tạp đáng kể cho các tích hợp trong tương lai mà phải bằng cách nào đó xử lý dữ liệu vô nghĩa.
Một số khác biệt có thể là do mô hình dữ liệu không khớp. Đối phó với điều này phần lớn là vấn đề (thân mật) quen thuộc với cả hai mô hình dữ liệu và biết cách ánh xạ mô hình cũ sang mô hình mới. Chừng nào những cái mới là khả năng chụp cũ. (Nếu không, nhóm của bạn có thể có một vấn đề rất lớn.) Điều này có thể dễ dàng yêu cầu thực hiện nhiều công việc hơn là chỉ sao chép các cột. Darkwing đưa ra một ví dụ tuyệt vời về điều này (cũng như lý do tại sao chèn NULL một cách mù quáng là điều sai trái). Xây dựng dựa trên nó, nếu mô hình cũ có một ReceivedDate
và một InProgress
chút và mô hình mới có một StartDate
và ProcessingEndTime
, bạn sẽ cần phải quyết định xem và làm thế nào để thiết lập ProcessingEndTime
. Tùy thuộc vào cách sử dụng, một lựa chọn hợp lý (nhưng tùy ý) có thể là đặt nó giống nhưStartDate
(hoặc ngay sau đó nếu điều đó sẽ gây ra vấn đề).
Tuy nhiên, một số khác biệt có thể là do dữ liệu "nên" ở đó bị thiếu hoặc bị hỏng. (Rất có thể là do lỗi nhập dữ liệu hoặc xử lý kém trong quá trình di chuyển hoặc lỗi trong hệ thống xử lý dữ liệu.) Nếu không có ai trong nhóm của bạn lường trước điều này, thì bạn (gọi chung) đã tự đặt ra 20% thời gian của dự án " sắp xong. (Đó là một số trang điểm, nhưng nó có thể xatệ hơn thế, hoặc tốt hơn. Nó phụ thuộc vào lượng dữ liệu không chính xác, mức độ quan trọng của nó, mức độ phức tạp, mức độ dễ dàng có được sự tham gia của những người chịu trách nhiệm về dữ liệu và các yếu tố khác.) Một khi bạn đã xác định rằng dữ liệu "được cho là "có nhưng mất tích. Thông thường, bạn sẽ cố gắng xác định mức độ của vấn đề bằng cách truy vấn các nguồn dữ liệu cũ. Nếu đó là hàng chục hoặc hàng trăm mục nhập, thì có lẽ đó là lỗi nhập dữ liệu và khách hàng chịu trách nhiệm về dữ liệu sẽ tự giải quyết nó (nghĩa là cho bạn biết các giá trị sẽ là gì.) Nếu đó là hàng triệu mục (hoặc một phần đáng kể của dữ liệu) , sau đó bạn có thể cần xem xét lại xem bạn có xác định chính xác rằng nó "nên" ở đó không. Điều này có thể chỉ ra lỗi mô hình hóa trong hệ thống mới.
Ví dụ: hãy tưởng tượng một hóa đơn có số lượng và tổng số mặt hàng (nhưng không phải đơn giá), ngoại trừ một số lượng bị thiếu không thể giải thích được. Nói chuyện với người xử lý các hóa đơn đó có thể tạo ra một (hoặc nhiều) các tình huống sau: 1) "oh, số lượng trống có nghĩa là số lượng 1", 2) "oh, tôi biết những mặt hàng đó có giá khoảng 1.000 đô la, vì vậy, rõ ràng đây là một đơn đặt hàng cho 2 ", 3)" khi điều đó xảy ra, tôi tra cứu giá trong hệ thống khác này và chia và làm tròn ", 4)" Tôi tìm kiếm nó trong một hệ thống khác ", 5)" đó không phải là dữ liệu thực ", 6)" chưa từng thấy điều đó trước đây ".
Theo đề xuất, điều này có thể chỉ ra một số cách tự động giải quyết tình huống, nhưng bạn phải cẩn thận rằng giải pháp áp dụng cho tất cả các trường hợp. Thông thường các hệ thống khác có liên quan có thể kiểm tra chéo dữ liệu và đây là một điều tốt. Tuy nhiên, đó thường là một điều tồi tệ khi khó có thể truy cập và tích hợp với các hệ thống này để thực hiện kiểm tra chéo và thường thấy rằng các hệ thống xung đột với nhau không chỉ thiếu một số dữ liệu. Một số can thiệp thủ công thường được yêu cầu, và tùy thuộc vào quy mô, cũng có thể yêu cầu công cụ và giao diện được tạo riêng cho nhiệm vụ làm sạch dữ liệu. Thông thường những gì được thực hiện là dữ liệu được nhập một phần nhưng các hàng có dữ liệu bị thiếu được gửi đến một bảng riêng biệt nơi chúng có thể được xem xét.