使用Flink怎么实时计算网站Pv和Uv


使用Flink怎么实时计算网站Pv和Uv,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Flink数据流上的类型和操作
DataStream是flink流处理最核心的数据结构,其它的各种流都可以直接或者间接通过DataStream来完成相互转换,一些常用的流直接的转换关系如图:可以看出,DataStream可以与KeyedStream相免费云主机域名互转换,KeyedStream可以转换为WindowedStream,DataStream不能直接转换为WindowedStream,WindowedStream可以直接转换为DataStream。各种流之间虽然不能相互直接转换,但是都可以通过先转换为DataStream,再转换为其它流的方法来实现。在这个计算pv,uv的需求中就主要用到DataStream、KeyedStream以及WindowedStream这些数据结构。这里需要用到window和watermark,使用窗口把数据按天分割,使用watermark可以通过“水位”来定期清理窗口外的迟到数据,起到清理内存的作用。我们的数据是json类型的,含有date,version,guid这3个字段,在实时统计pv,uv这个功能中,其它字段可以直接丢掉,当然了在离线数据仓库中,所有有含义的业务字段都是要保留到hive当中的。其它相关概念就不说了,会专门介绍,这里直接上代码吧。主要代码,主要使用scala开发:使用List集合的size保存pv,使用Set集合的size保存uv,从而达到实时统计pv,uv的目的。这里用了几个关键的函数:applyWith:里面需要的参数,初始状态变量,和foldFunction ,windowFunction ;显然,当数据量很大的时候,这个List集合和Set集合会很大,并且这里的pv是否可以不用List来存储,而是通过一个状态变量,不断做累加,对应操作就是更新状态来完成。使用了一个计数器来存储pv的值。

相关推荐: CSS3选择器怎么运用

这篇“CSS3选择器怎么运用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CSS3选择器怎么运用”文章吧。 首先我们来看一下displaynon…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/14 10:44
下一篇 01/14 10:44

相关推荐