实时流计算结果如何验证结果准确性?

实时数仓模型,常应用在实时营销;实时风控等领域,实时数仓的分层方式一般也遵守传统数据仓库模型,也分为了 ODS 操作数据集、DWD 明细层和 DWS 汇总层以及应用层。但实时数仓模型的处理的方式却和传统数仓有所差别,如明细层和汇总层的数据一般会放在 Kafka 上,维度数据一般考虑...显示全部

实时数仓模型,常应用在实时营销;实时风控等领域,实时数仓的分层方式一般也遵守传统数据仓库模型,也分为了 ODS 操作数据集、DWD 明细层和 DWS 汇总层以及应用层。但实时数仓模型的处理的方式却和传统数仓有所差别,如明细层和汇总层的数据一般会放在 Kafka 上,维度数据一般考虑到性能问题则会放在 HBase 或者 Tair 等 KV 存储上,即席查询则可以使用 Flink 完成。
由于流式计算是无界无序的;如何验证处理结果一致性和准确性相对于有边界的批式处理的数据流结果验证更为麻烦,大家在这块实践中有没有什么好的经验,分享一下?
我们目前主要是从构建多种校验补偿机制,确保数据完整性和准确性。 为了进一步提升实时数据处理的完整性和准确性,引入多种数据补偿机制。一是基于乐观锁版本号,确保高吞吐下的数据准确性。在消息写入分布式数据库时,通过按照版本号进行消息的写入及更新,使得乱序消息的到达不影响数据入库的准确性。二是使用Flink的Checkpoint和两段事务提交机制确保集群异常时数据的准确性。当消息处理出错时,将消息放置到补偿队列或死信队列中,确保出错的消息不丢失、不重复,并可以继续重试处理。三是离线结果数据和实时结果数据相互校验,确保数据完整性。Flink实时数据处理当天T日数据,离线数据处理T-1日数据,每天晚上离线结果数据和实时结果数据进行相互核对,对于差异数据,以离线结果数据为准。

收起
参与9

查看其它 1 个回答lzj7618937的回答

lzj7618937lzj7618937质控经理cib

实时流计算是指处理的数据源是一些不断产生新数据的连续流,并通过实时分析技术,将这些实时数据变为业务价值。流计算往往应用于大数据领域的数据分析,日志处理等场景。

验证实时流计算结果准确性是非常重要且有挑战的。下面是一些验证实时流计算结果准确性的方法:

1.使用样本对流数据进行采样。该样本必须包含一些想要检查的特征(例如,平均值、中位数和方差)。您可以使用这些特征来计算错误率并评估数据的准确性。

  1. 验证窗口操作。在流计算中,通常会对数据流应用窗口操作,从而将数据流分成固定大小的部分(如滑动窗口、固定窗口或会话窗口)。您可以验证某个窗口上的操作结果是否正确,以确保整个系统在处理大量数据集时正确。
  2. 使用辅助数据源。这些数据源可以用作参考点,以验证所有操作的输出是否与预期一致。有多种数据源可供选择,例如文件、数据库或第三方API。
  3. 观察关键指标(KPIs) 。监视KPI能让您跟踪计算的功能是否按需运行。如果KPI超出特定界限,则可能存在问题。
  4. 与其他数据存储进行比较。最后,您可以创建一个独立的验证管道,并将其与所有其他来源进行比较,以确保实时计算的结果是正确的。

需要注意的是,在实时流处理中,突发事件的出现会影响计算结果的准确性,因此需要及时进行调整和维护。

银行 · 2023-03-09
浏览1018

回答者

lzj7618937
质控经理cib
擅长领域: 云计算容器容器云

lzj7618937 最近回答过的问题

回答状态

  • 发布时间:2023-03-09
  • 关注会员:2 人
  • 回答浏览:1018
  • X社区推广