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 中定义的数据类型,可以包含 数据源定义的数据类型即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值