在实际的数据开发中,我们经常会涉及到比如users表有某个字段age,然后经过处理,users1表也有一个age字段,总体的流程是users表经过某种逻辑处理之后,把数据写入了users1字段,由于用户的年龄字段是不会变得,那么我们的期望值是id为1的用户在users表的年龄和users1表的年龄是一样的。这就涉及到在两个表里面进行值比对的场景,下面我们来介绍下datavines如何实现。
一、准备表
前面我们在mysql表有一张users表,如下图:
然后我们创建一张users1表,假装模拟下数据,示例如下:
create table users1 select id,username,age from users;
二、定义需求
此时我们的需求是验证users表中id为3的用户在users表和users1表中的年龄是否是一样的。
三、定义规则
接下来进入到datavines的dashboard中,进入到mysql数据源,点击作业管理:
然后把table 切换到数据对比作业:
创建一个数据对比规则作业,填写的内容如下:
注意注意注意注意注意注意注意注意
1、这里需要把比较的值做成as actual_value,不然的话没法比对结果。
2、这里需要把比较的值做成as actual_value,不然的话没法比对结果。
3、这里需要把比较的值做成as actual_value,不然的话没法比对结果。
然后点击保存并运行即可
可以看到失败数是0,其他全是成功的,说明两张表的值是相等的。如果我们把users1表中id为3的用户年龄修改为30呢?
再看看执行规则效果:
可以看到规则校对失败了,说明两张表的值不是一样的。
说明:
1、这里比对两张表的值,不仅可以指定某一列的某一个值,也可以编写统计语句,例如:
select count(1) as actual_value from ${table}
2、还可以把其他的值进行聚合或者转换等进行比对,非常的方便,根据实际情况操作即可。
还没有评论,来说两句吧...