大数据实时计算中的watermark你理解了吗?
·
在大数据的实时计算场景中,为了确保业务结果的实时展现,我们都希望数据源从生成开始就能第一时间到达流式计算引擎的过程中,但是现实存在诸多不稳因素,例如网络环境异常、数据源端系统故障等等,导致数据到达流式计算引擎时就已经比生成这条数据的业务时间晚了一些。
Event time 叫事件时间,Process time叫数据的处理时间。比如你在一个网页中点击了一个按钮产生了一条上网行为日志,这条日志数据生成的时间就叫event time,而这条数据通过网络传输到你的大数据系统开始被你的流式计算引擎计算的时间就是这条数据的process time;这两个时间在现实场景中一般都会有一定的时间差,process time 大于等于 event time;为了保证数据处理的及时性同时兼顾数据价值的有效性,业务一般会要求对在一定时间范围内迟到的数据给予一定的宽容度,允许数据从生成到进入计算引擎这个过程中可以有5分钟的迟到时间,超出该时间晚到的数据计算引擎会将其抛弃,这种根据数据的event time和数据的process time时间差来判断当前数据是否被纳入计算的方案就叫watermark。watermark使用起来也非常的简单,在代码开发过程中我们只需要通过将业务数据中能够体现event time的字段设置为watermark字段,然后再增加一个允许迟到的时间阈值参数,那么这个watermark功能就算设置成功。
更多推荐
所有评论(0)