마이그레이션하려는 데이터가 현재 불량한 경우 마이그레이션 수행 여부에 관계없이 수정해야합니다. 나쁜 데이터 = 쓸모없는 데이터.
마이그레이션은 위험하므로 사실입니다. 그러나 모든 주요 IT 프로젝트도 마찬가지입니다. 위험을 완화 할 수있는 방법이 있으며 마이그레이션에서 미리 계획해야합니다.
첫째, 항상 시스템을 현재 상태로 되돌릴 수있는 방법이 있어야합니다. 두 번째 마이그레이션은 마이그레이션 전용으로 설정된 테스트 서버에서 수행해야합니다. 먼저 테스트하지 않고 마이그레이션을 수행하는 것은 어리석은 일입니다. 셋째, 마이그레이션을위한 모든 코드는 소스 제어에 있어야합니다.
넷째, 마이그레이션을 시작하기 전에 요구 사항 및 테스트 계획이 필요합니다. 이전 시스템에 1,293,687 개의 레코드가있는 경우 새 시스템에서 동일한 레코드를 가지고 있거나 레코드가 어디로 갔는지 (예외 테이블로) 알고 있어야합니다. 비정규 화 된 구성표를 정규화하는 경우 시작하기 전에 끝내야하는 레코드 수를 계산 한 다음 확인해야합니다. 한 시스템에서 다른 시스템으로의 맵핑을 지정하는 문서가 필요합니다. 이를 통해 품질 관리 담당자가 데이터가 올바른 위치로 이동했는지 확인할 수 있습니다.
현재 불량 데이터를 처리하는 방법을 결정해야합니다. 정리할 수있는 것, '알 수 없음'이라고 표시된 필수 필드에 값이 필요한 것, 예외 테이블에 던져야 할 것, 사용자 그룹의 수동 개입이 필요한 것 (이 두 사람이 실제로 dup인지 또는 예를 들어 같은 실습에서 두 명의 의사가 있고 두 레코드가 다를 때 선택할 데이터가 dup 인 경우 등).
성공적인 마이그레이션의 핵심은 계획입니다. 계획 (테스트 사례 및 단위 테스트 작성 포함)은 일반적으로 실제 개발보다 시간이 더 걸린다는 것을 알았습니다.
성공적인 데이터 마이그레이션의 다음 열쇠는 QA입니다. 출시 전날 QA 팀에 던질 프로젝트가 아닙니다. QA에서 문제가 있다고 말하면 시작할 프로젝트가 아닙니다.
성공적인 마이그레이션의 또 다른 열쇠는 원래 시스템이 계속 실행되는 동안 대부분의 데이터를 배포하고 테스트하는 것입니다. 많은 레코드를 이동하는 경우 시간이 오래 걸리고 새로운 변경 사항이 발생합니다. 따라서 마이그레이션이 시작된 후에도 프로세스에서 데이터 변경 사항을 가져올 수 있어야합니다. 예를 들어 SQL Server에는 Change Data Capture라는 것이 있는데이를 도와 줄 수 있습니다. 원래 시스템의 백업을 수행하고 동시에 변경 데이터 캡처를 켤 수 있습니다. 그런 다음 백업을 마이그레이션 서버로 다시 배치하고 마이그레이션을 테스트하고 대부분의 데이터를로드 한 다음 변경된 레코드 만로드하면됩니다. 최종 레코드를 마이그레이션 할 때 마이그레이션이 완료 될 때까지 소스 시스템을 끄십시오. 이것이 대부분의 레코드를 미리 마이그레이션하는 이유 중 하나입니다. 따라서 응용 프로그램의 시간이 가장 짧습니다. 이주 시간을 잘 선택하고 급여를 처리하거나 W2를 발송해야하는 날에 급여 시스템을 종료하지 마십시오. 그리고 낮은 사용 시간 동안 수행하십시오. 클라이언트가 여러 명인 경우 먼저 하나를 마이그레이션하고 다른 클라이언트를 수행하기 전에 모든 것이 올바른지 확인하는 것이 좋습니다. 문제가있는 경우 한 고객의 데이터를 10000보다 롤백하는 것이 훨씬 쉽습니다. 하지만 그렇게하면 신중하게 계획하십시오. 문제점이있는 경우 10000보다 큰 데이터. 하지만 그렇게하면 신중하게 계획하십시오. 문제점이있는 경우 10000보다 큰 데이터. 하지만 그렇게하면 신중하게 계획하십시오.
마이그레이션에 새로운 사용자 인터페이스가 포함 된 경우 실제 사용자가 마이그레이션 테스트의 일부로 사용하도록하십시오. 그런 다음 라이브하기 전에 다른 사용자를 교육하십시오 (그러나 라이브하기 전에 일주일도 채 걸리지 않으면 잊어 버리게됩니다). 테스트에 참여한 사용자가 교육을 설계하는 데 도움을주고, 질문에 대한 질문과 사람들이 어떤 순서로 알아야 하는지를 알고 있습니다. 사용자가 레코드를 입력 할 때 일반적으로 해당 데이터가없는 경우 도움이되지 않아야한다고 생각하므로 필수 입력 필드를 작성하십시오. 그들은 그렇지 않으면 데이터를 얻을 수 없기 때문에 새로 필요한 필드에 정크를 넣을 것입니다.
현재 데이터에 어떤 문제가 있는지 살펴보십시오. 향후에 이것이 나쁜 것을 피하기 위해 외래 키, 제약 조건, 트리거, 응용 프로그램의 비즈니스 규칙, 기본값 등을 추가 할 수 있습니까? 불량 데이터를 정리할 때 향후에도 이와 같이 불량 데이터가 들어오는 것을 방지 할 수있는 방법을 만들어야합니다. 불량 데이터가 할당 된 이유를 분석하고 설계의 허점을 수정하십시오.