漂浮

作者描述了一次从 Microsoft 平台迁移到另一 Microsoft 平台的数据迁移任务,期间遇到了一个意外问题。最初,数据提取和加载由 SSIS 处理,但作者转而使用 PowerShell 以获得更精细的控制。目标是将从本地 SharePoint 迁移客户文档及其元数据至 SQL Server 数据库。其中,客户编号字段在 SharePoint 中存储为 Number 类型。在底层实现上,SharePoint 的 Number 字段以 Double 表示,足以准确存储十位数字。然而,SSIS 生成的 SQL Server 架构将该字段定义为'float'数据类型。作者在 PowerShell 脚本中错误地假设.NET 中的'float'类型会与 SQL Server 的'float'类型完全对齐。出现该不匹配的原因是:SQL Server 的'float'默认采用双精度表示,而作者未意识到这一表示差异。因此,在数据传输和转换过程中,较大的客户编号因精度损失而丢失了末尾几位数字。测试人员起初未能发现该错误,直到全量数据加载阶段才暴露问题。团队不得不识别出受损的编号,并在迁移后手动进行修正。
CdXz5zHNQW_ElgNsoYbYY.jpeg