由于实时数仓的数据是无边界的流,相比于离线数仓固定不变的数据更难验收。基于不同的场景,还有的做法提供了 2 种验证方式,分别是:抽样验证与全量验证。
1)抽样验证方案:
该方案主要应用在数据准确性验证上,实时汇总结果是基于存储在 Kafka 的实时明细中间层计算而来,但 Kafka 本身不支持按照特定条件检索,不支持写查询语句,再加上消息的无边界性,统计结果是在不断变化的,很难寻找参照物进行比对。鉴于此,采用了持久化消息的方法,将消息落盘到 TiDB 等存储,基于 TiDB 的能力对落盘的消息进行检索、查询、汇总。编写固定时间边界的测试用例与相同时间边界的业务库数据或者离线数仓数据进行比对。通过以上方式,抽样数据进行指标准确性验证,确保测试用例全部通过。
2)全量验证方案
该方案主要应用在数据完整性和一致性验证上,在实时维度表验证的场景使用最多。大体思路:将存储实时维度表的在线 HBase 集群中的数据同步到离线 HBase 集群中,再将离线 HBase 集群中的数据导入到 Hive 中,在限定实时维度表的时间边界后,通过数据平台提供的数据校验功能,比对实时维度表与离线维度表是否存在差异,最终确保两张表的数据完全一致