如何校验从其他数据库(oracle, mysql)导入dolphindb的数据与源库表数据是否一致

需要校验从其他数据库(oracle, mysql)导入dolphindb的数据与源库表数据是否一致,目前有两个方案:

1. 比较count数。存在的问题是我们的mysql源有的表count特别慢,1天都count不出来。而且count是一个比较简陋的判断,我们想要更准确的更完善的规则。
2. 批量取数据,然后逐行比较字段值。数据量大时会有性能问题。

想问下大家有没有什么好的校验导入数据的方法?其中oracle数据通过datax导入,mysql数据通过mysql插件导入。

请先 登录 后评论

1 个回答

wale

一点数据比对经验分享如下:

异构数据库迁移数据比对,
这个比对方法的数据数据量最大的表是9亿条,30多个字段吧。
数据比对必须要有主键
追求的是数据一点不能差,对于比对耗时要求不是太高。


计算逻辑
1 两个不同数据库都要计算这张表的最终md5 值,然后比对,全表对比
   1.1 首先把每一行的字段拼成一个长字符串,然后计算md5值
   1.2 把每一行的md5值,拆成4个32位2进制,然后全表做sum ,出4个数值
   1.3 4个数值合并成串,两边进行比对,如果一致,则认为两表数据值是相等的。
   1.4 提速,可以将表数据按指定条件排序,然后分割计算,比对。
   1.1~1.3环节都是sql实现,1.4是通过python来进行并发的
   
2 对于比对不一致的情况则要计算出每一行的md5值,配合主键,存储下来进行比对。

请先 登录 后评论