欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

流式计算中为什么需要时间戳和WaterMark

发布时间:2023/12/31 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 流式计算中为什么需要时间戳和WaterMark 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

可能很多从机器学习/深度学习转向实时计算的人会有这样一种困惑?

我们为啥需要时间戳/WaterMark

首先,EventTime来自时间戳,以及最终构成了WaterMark,这个就不展开说了,属于基本概念。

 

我们回顾下:

我们对数据进行分布式集群分析的时候,很多时候,都是一股脑儿丢入训练框架,我们常常不care这个数据发生的时间点。

 

但是因为在集群的多个节点中,slave和master之间的延时我们是不可控制的,并且我们在数仓的终端有出报表的需要。

如果因为节点之间某些网络IO的物理延迟,导致先发生的数据,最后才到,显然对我们最终的报表是有影响的。

因为报表是很看重时间段的。

报表如果要求前面三分钟的数据做个aggregate,但是有条数据在集群节点传输时由于网路物理延迟,迟到了,还不带时间戳,那么显然这个时候报表内容就会由于这条迟到且因为不带时间戳导致无法检测的数据,报表的展示出现了错误。

 

所以水位线其实是为了实时性和准确性之间做一个折中,

如果没有水位线会咋样呢?

来晚的数据,如果为了准确性等明天再展示,就失去“实时”的意义了。

所以基于水印设置一个容忍值,迟到的数据去侧边流输出到log中,是比较好的一种折中方式。

 

 

 

总结

以上是生活随笔为你收集整理的流式计算中为什么需要时间戳和WaterMark的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。