一致性校验有哪些情况

一致性校验有哪些情况
最新回答
杀尽天下负心人

2026-07-18 12:03:48

一致性校验主要包括数据质量一致性校验、ETL过程一致性校验和多数据源一致性校验三种情况,具体内容如下:

数据质量一致性校验
  • 值域检验:检查数据是否在指定的取值范围内。例如,性别字段的值域应为男、女或其他,若出现其他取值,则需进行一致性检验。
  • 格式检验:验证数据格式是否符合规定要求。例如,电话号码应为11位数字,邮箱地址需符合电子邮箱格式。
  • 依赖关系检验:检查数据间的依赖关系是否满足。例如,订单表中的商品编号需存在于商品表中,否则数据存在不一致。
  • 逻辑检验:确保数据逻辑关系一致。例如,时间字段中开始时间应早于结束时间,若逻辑关系不符,则数据不一致。
  • 冗余数据检验:检查数据中是否存在冗余或重复内容。若存在,则需进行一致性检验。
ETL过程一致性校验
  • 数据抽取阶段:校验字段完整性,确保关键主键和外键无遗漏;比对数据量,记录总行数需与源系统日志匹配;验证时间戳一致性,确保抽取批次时间窗口内无遗漏记录。
  • 数据转换阶段:匹配数据类型,避免类型转换导致精度丢失;验证业务逻辑,如“订单状态=已支付”时,“支付时间”字段必须非空;使用自动化单元测试,通过SQL断言或数据质量框架提前发现异常。
  • 数据加载阶段:检查加载后行数一致性,确保抽取与加载两端行数相符;通过MD5或SHA算法比对源数据与目标数据的哈希值或校验和。
多数据源一致性校验
  • 写数据不一致场景:例如,请求数据更新接口仅更新了MySQL,但未更新Redis缓存数据,导致从Redis读取的数据与MySQL不一致。
  • 读数据不一致场景:业务提供读取数据接口时,无论从Redis还是MySQL获取数据,结果应一致。若出现缓存击穿、穿透、雪崩,或数据源实例扩容/下线,可能导致数据不一致。