数据迁移时,源端数据库与目的端数据库中的Double、Float等浮点类型数据为什么存在精度差异?
问题描述
数据集成离线作业中,进行数据迁移时,源端数据库与目的端数据库中的Double、Float等浮点类型数据存在精度差异。
原因分析
该问题源于不同数据库系统对浮点类型底层实现机制及精度定义的差异,并非数据集成服务本身存在数据丢失或错误。
具体原因如下:
解决方案
如高精度科学计算数据、金融测算数据等数据要求严格的场景下,推荐使用Decimal等能够指定精度的数据类型进行数据迁移,避免存在精度差异。
案例说明
MYSQL Double类型迁移到DataArts Fabric数据源,在数据极端的情况下,精度可能存在误差。