플로팅 어롱
저자는 한 Microsoft 플랫폼에서 다른 플랫폼으로의 데이터 마이그레이션에 대해 설명하며, 예상치 못한 문제가 발생했습니다. 처음에는 SSIS가 데이터 추출 및 로드를 처리했지만, 저자는 더 나은 제어를 위해 PowerShell로 전환했습니다. 목표는 SharePoint 온프레미스에서 SQL Server 데이터베이스로 고객 문서 및 메타데이터를 마이그레이션하는 것이었습니다. 핵심 필드인 고객 번호는 SharePoint에서 Number 유형으로 저장되었습니다. 내부적으로 SharePoint의 Number 필드는 Double로 표현되며, 이는 10자리 숫자를 정확하게 저장하기에 충분합니다. 그러나 SSIS에서 생성된 SQL Server 스키마는 이 필드에 'float' 데이터 유형을 사용했습니다. 저자는 PowerShell 스크립트의 '.Net' 유형 'float'가 SQL Server의 'float' 유형과 완벽하게 일치할 것이라고 잘못 가정했습니다. SQL Server의 'float'는 기본적으로 배정밀도를 사용하지만 저자는 이러한 표현의 차이를 인지하지 못했기 때문에 이 불일치가 발생했습니다. 결과적으로 숫자가 전송되고 변환될 때, 정밀도 손실로 인해 큰 고객 번호의 마지막 몇 자리가 손실되었습니다. 테스터들은 처음에는 오류를 놓쳤지만, 전체 데이터 로드 중에 발견되었습니다. 팀은 마이그레이션 후 손상된 숫자를 식별하고 수동으로 수정해야 했습니다.