我用dataX和mysql插件将一些Oracle和MySQL数据库迁移到DolphinDB,我想检查迁移的数据是否与源一致。我试过以下两种方法:1.比较源数据库和目标数据库的记录数,问题是MySQL中的count效率很低,需要一天以上的时间,而且这种方法只验证记录量,不验证数据一致性。1.成批检索数据并检查值。大量数据仍然会影响性能。有没有有效的方法来检查源数据库和目标数据库之间的数据一致性?
count
iszxjhcz1#
我的解决方案验证了数据迁移的数据一致性,其中数据量最大的表包含9亿条记录和30多个字段。为了验证数据的一致性,需要一个主键对数据进行排序,并计算每条记录的MD5值。此方法计算源数据库和目标数据库的最终MD5值并比较数据:1.将每一行的字段组合成一个字符串,计算MD5值;1.将每一行的MD5值拆分为4个32位二进制数,将所有行的值相加得到4个和值;1.将4个值连接成一个字符串。比较字符串以验证数据完整性。1.如果不一致,请将数据库之间每行的MD5值与主键进行比较。提示:计算可以在SQL中完成,为了提高性能,可以对数据进行排序和分组,并使用Python并发地检查数据一致性。
1条答案
按热度按时间iszxjhcz1#
我的解决方案验证了数据迁移的数据一致性,其中数据量最大的表包含9亿条记录和30多个字段。
为了验证数据的一致性,需要一个主键对数据进行排序,并计算每条记录的MD5值。
此方法计算源数据库和目标数据库的最终MD5值并比较数据:
1.将每一行的字段组合成一个字符串,计算MD5值;
1.将每一行的MD5值拆分为4个32位二进制数,将所有行的值相加得到4个和值;
1.将4个值连接成一个字符串。比较字符串以验证数据完整性。
1.如果不一致,请将数据库之间每行的MD5值与主键进行比较。
提示:计算可以在SQL中完成,为了提高性能,可以对数据进行排序和分组,并使用Python并发地检查数据一致性。