일반적인 문제는 데이터 통합 이라는 더 큰 하위 영역의 일부인 데이터 정리 라는 프로그래밍의 전체 하위 영역입니다 . 이러한 종류의 문제를 피하는 것은 Excel 시트에서 마이그레이션하는 이유의 상당 부분이며 수석 개발자가 필드를 nullable로 허용하지 않는 이유 일 수 있습니다. 이것이 데이터 마이그레이션에서 가장 큰 복잡성 소스 중 하나라고 말하는 것은 부당하지 않다고 생각합니다.
더 많은 필드를 널 입력 가능하게 만들기 위해 데이터 모델을 변경하는 것은 물론 가능할 때마다 NULL을 사용하도록 선택하는 것은 잘못된 일입니다. Excel의 무결성 검사 기능이 약하거나 전혀 없기 때문에 이러한 문제가 많이 발생할 수 있습니다. 잘못된 것은 새 데이터베이스에서 무결성 검사를 제거하고 가비지를 덤프하는 것입니다. 이것은 단지 문제를 영속시키고 미래의 통합에 무의미한 데이터를 처리해야하는 복잡한 작업을 추가합니다.
차이점 중 일부는 데이터 모델 불일치 때문일 수 있습니다. 이 문제를 다루는 것은 데이터 모델 모두에 (친밀하게) 친숙하고 기존 모델을 새 모델에 매핑하는 방법을 아는 것입니다. 새로운 것이 오래된 것을 캡처 할 수있는 한. 그렇지 않은 경우 팀에 큰 문제가있을 수 있습니다. 열을 복사하는 것보다 더 많은 작업이 필요할 수 있습니다. Darkwing은 이것에 대한 훌륭한 예를 제공합니다 (그리고 왜 맹목적으로 NULL을 삽입하는 것이 잘못된 일인지). 이전 모델이 있었다면, 그 위에 정성 들여 ReceivedDate
과 InProgress
비트와 새로운 모델은을 가지고 StartDate
와 ProcessingEndTime
, 당신은과를 설정하는 방법을 여부를 결정해야합니다 ProcessingEndTime
. 사용 방법에 따라 합리적인 (임의의) 선택은 다음과 동일하게 설정하는 것일 수 있습니다.StartDate
(또는 문제가 발생할 경우 곧).
그러나 차이점 중 일부는 누락되거나 손상된 데이터가 있어야하기 때문일 수 있습니다. (데이터 입력 오류 또는 데이터 처리 시스템의 과거 마이그레이션 또는 버그 처리가 제대로 이루어지지 않았을 가능성이 큽니다.) 팀원 중 누구도이를 예상하지 못한 경우 프로젝트 전체 시간의 20 %를 " 거의 "완료되었습니다. (이것은 보충 번호 였지만 훨씬 멀었습니다.그것보다 나쁘거나 잘못된 데이터의 양, 중요도, 복잡도, 데이터를 담당하는 담당자의 참여가 얼마나 쉬운 지 및 기타 요인에 따라 다릅니다.) 데이터가 " "하지만 거기에 없습니다. 일반적으로 이전 데이터 소스를 쿼리하여 문제의 범위를 결정하려고 시도합니다. 수십 또는 수백 개의 항목 인 경우 데이터 입력 오류 일 수 있으며 데이터를 담당하는 고객은 수동으로 데이터를 해결해야합니다 (예 : 값이 무엇인지 알려줍니다). 수백만 개의 항목 (또는 데이터의 상당 부분) 인 경우 그런 다음 해당 위치에 "있을 것"인지 올바르게 식별했는지 다시 고려해야합니다. 새 시스템의 모델링 오류를 나타낼 수 있습니다.
예를 들어, 수량 중 일부가 설명 할 수없는 것을 제외하고 수량 및 품목 당 총계 (단가는 아님)가있는 송장을 상상해보십시오. 이러한 송장을 처리하는 사람과 이야기하면 다음 시나리오 중 하나 이상을 생성 할 수 있습니다. 1) "빈 수량은 1의 수량을 의미합니다", 2) "오, 나는 그 품목이 약 $ 1,000 정도되는 것을 알고 있습니다. 분명히 이것은 2 ", 3)"그런 일이 발생하면이 다른 시스템에서 가격을 찾아서 나누고 둥글게됩니다 ", 4)"다른 시스템에서 찾게됩니다 ", 5)"실제 데이터가 아닙니다 ", 6)"이전에 본 적이 없습니다 ".
제안 된대로 상황을 자동으로 해결하는 몇 가지 방법을 나타낼 수 있지만 솔루션이 모든 경우에 적용되도록주의해야합니다. 데이터를 교차 점검 할 수있는 다른 시스템이 관여하는 것이 일반적이며 이는 좋은 일입니다. 그러나 교차 점검을 수행하기 위해 이러한 시스템에 액세스하여 이러한 시스템과 통합하기가 어려울 수있는 경우가 종종 있습니다. 데이터가 누락 된 것만이 아니라 시스템이 서로 충돌하는 경우가 종종 있습니다. 일부 수동 개입이 필요한 경우가 많으며, 규모에 따라 데이터 정리 작업을 위해 특별히 툴링 및 인터페이스를 만들어야 할 수도 있습니다. 종종 수행되는 작업은 데이터를 부분적으로 가져 오지만 누락 된 데이터가있는 행은 별도의 테이블로 전송되어 검토 할 수 있습니다.