MySQL2HashData不能正常转换数据格式测试

本文概要:

在从 MYSQL 到 HashData 数据迁移的过程中,使用 db_convert.py 进行导出文件的格式转换,在转换过程中遇到的不能正常转换的数据格式。此处仅仅针对项目过程中遇到的一些问题做了归纳整理,所以不尽完善。仅供参考记录。

MySQL 相关特殊数据格式

create table test(id int not null, 
YDLC float(10,2) NOT NULL DEFAULT '0.00',
RK double(10,0) DEFAULT NULL,
dir varbinary(5) DEFAULT NULL,
login_num double(8,0) DEFAULT NULL,
status int4  zerofill DEFAULT '1');

在 HashData 1.4 中不存在与上述数据格式完全对应的数据格式。

表结构如下:

表结构

进行数据插入

insert into test values(1,9.99,9.99,9,9.99,null);
insert into test values(2,9.19,9.19,9,9.19,default);

MySQL 中的数据展示

插入结果展示

从上面的插入结果可知:

float(10,2) ,插入结果显示两位小数,当整数位超过8位,会存在整数位最后一位四舍五入,或者小数位超过3位,则小数位从第三位开始会四舍五入。HashData (decimal)
double(10,0),同 float(10,2)。HashData (decimal)
varbinary(5),存储二进制。HashData(bytea)
int4 zerofill DEFAULT ‘1’,10位数左边补0。HashData 中没有映射关系,特殊处理,直接存储为 int 型变量。

补充

ENUM,在 HashData 1.4 的版本中,由于是基于 postgres 8.2.X 的版本,因此并没有对 enum 类型的支持。考虑到 HashData 在业务系统中的地位,大部分情况下是基于现有业务系统,也就是说 HashData 中的数据大部分都是从业务系统中生成,然后同步到 HashData 系统中的,因此,我们在做数据同步的过程中需要特别注意的是需要数据在传输过程中不会出现问题,即 HashData 中定义的数据类型,可以包含 数据源定义的数据类型即可。

猜你喜欢

转载自blog.csdn.net/zhang50303/article/details/81708917