数据装载之数据校验

本文介绍两种数据迁移后的验证方法:校验和法和查询覆盖法。校验和法通过生成并对比源表与目标表的校验和来验证数据一致性;查询覆盖法则通过预设的SQL集合在源表和目标表上运行并对比结果,以此来检查数据的完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在数据迁移或数据装载中,如何判断数据的正确性?有些数据可能没有被迁移,已经迁移成功的数据可能某些字段不一致。在大数据量的情况下,数据的校验还是很有必要的。


现在说一下对单表验证的一些简单想法:

1. 校验和法

这种做法简单直接。在源表上通过自定义的函数生成一个校验和,然后数据导出后,在目标表生成一个校验和。两个检验和进行一一对比即可。这里一一对比要配合主键,另外要考虑到源库和目的库可能是不能的数据库。

校验和法基本能确保每条数据的正确性。


2. 查询覆盖法

假设已经有一个查询SQL集合,我们可以定义查询结果输出的统一格式。在源表上跑这个SQL集合得到一个标准输出,再在目的表上跑这个SQL集合得到一个输出。两相比较来进行验证。

校验的强度取决于SQL集合的覆盖,一般这些SQL集合由人来编写。不过最好能自动生成,定义一些规则,结合表的定义来生成。比如count(*)得到总条数,另外针对不同类型来max,min,sum等,还有distinct,group by。尽可能做到较全的覆盖!


这种情况也适合多表验证,各种约束引用,可以制定较复杂的规则来生成SQL覆盖。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值