实时计算pv/uv Demo演示
简介:本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景。
作者 | 邓小勇(静行),阿里巴巴高级技术专家
本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景。内容将从以下几部分进行:
- App 计算 pv/uv 场景
- 实现方案(From Flink-1.11)
- DDL
- DML
- 实操
首先为大家展示一个比较简单的pv/uv场景。以下图所示的APP为例,整个业务构架需要几个入口,包括用户访问入口、作者入口和运营人员入口。在运营人员入口进去可以查看系统的一些指标,比如app 的pv/uv。
在开始介绍如何计算实时pv/uv之前,可以先了解下上图的10个字段和它们对应的含义。通过这些字段可以了解到,用户在APP上的任何一次操作都会在数据库中留下一条对应的记录,所有记录就是该用户在APP上的操作流水。
那么如何实时计算pv/uv呢?
有两种方案。
方案一,MySQL的变更数据同步到Kafka后进行实时计算。由于 Flink在设计之初是具有流表二象性的,所以在 Flink 1.1版本之后,就可以实现 Flink 对 Kafka变更数据的处理了,包括处理一些修改、删除等操作。处理后的结果会放到阿里云Hologress里,方便用户进行大数据查询和分析。
方案二,从上图可以看到方案一比方案二只多了一个Kafka,在 Flink 1.11 版本之后,可以直接通过Debezium连接MySQL,然后经过Flink 实时计算,也可以完成同样功能。
两个方案都可以实现,那么如何选择呢?主要取决于业务。如果数据只是暂存,日志需要展示或是需要多个下游使用,需要保存到Kafka;如果日志不需要回溯,或是没有下游使用,那么方案二更适合。
实战演示
如下图所示,我们选择方案二(MySQL-CDC源表方式)来演示。
首先打开实时计算 Flink平台,点击左侧SQL编辑器,然后通过Create Table方式设定上文提到的10个字段。这样就定义了数据的源头。
定义源头之后,接下来要构建目标表。如下图所示,在构建目标表时,定义了blackhole_pv_uv表,构造了一个无实际存储的目标端,充当调试作用,先把逻辑跑通,然后再去往目标端去写代码。Blackhole 会吸收掉输出结果数据,先处理掉源端和计算的问题。
以上的表会落到 Flink Catalog里,对于实时计算pv/uv上下游表格的准备就完成了。如果需要调整表,也可以通过DDL SQL语句完成。
做好建表准备后,如何实时计算想要达到的目标呢?以最简单的方式来演示。
先把数据写到Blackhole里,然后把4个字段值计算出来,比如cuurenttime,event_hour等。
通过上图所示的代码可以计算出,数据是什么时候输入的,数据的pv/uv值等等。
运行刚刚写入的作业:
然后点击创建SQL作业,
创建完成后,点击启动。
启动后可以点击 Flink UI 来查看运行状态。查看时候可以看到下端有显示记录了8条数据:
回到数据库也能看到对应的8条数据:
如何把实际的结果写到holo里呢?
核心逻辑与上文实时计算的逻辑是一样的,唯一不一样的是,要把计算的结果既输出到holo_pv_uv里去,同时也输出到backhole里去,也就是要把同样的结果输出两份,这是在流计算里经常会遇到的情况。甚至还有在同一作业里不同的业务逻辑或计算结果,也要输出到不同的目标端的情况。
打开实时计算 Flink 页面的SQL编辑器,在输入框中创建 temporary view,把数据记录到blackhole 里和holo里。
为了实现这个目标,需要增加一个叫begin statement set和end的语法,这其实是定义了一个计算逻辑,使得在它们中间的逻辑任务就会同时运行。
然后完成部署、创建作业和启动后,就能看到这个计算逻辑已经成功了。
原文链接:https://developer.aliyun.com/article/781195?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算pv/uv Demo演示相关推荐
- 实时计算pv/uv Demo
简介: 本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景. 本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演 ...
- SparkStreaming实时计算pv和uv,注意事项以及生产问题
SparkStreaming实时计算pv和uv,注意事项以及生产问题 1.项目流程 2.具体过程 1)pv的计算 2)uv的计算 3)结果保存到数据库 4)数据容错 5)保存offset到mysql ...
- Flink SQL 实时计算UV指标
用一个接地气的案例来介绍如何实时计算 UV 数据.大家都知道,在 ToC 的互联网公司,UV 是一个很重要的指标,对于老板.商务.运营的及时决策会产生很大的影响,笔者在电商公司,目前主要的工作就是计算 ...
- Flink计算pv和uv的通用方法
关注公众号:大数据技术派,回复"资料",领取`1024G`资料. Flink系列教程 PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次. UV ...
- 用户行为分析大数据系统(实时统计每个分类被点击的次数,实时计算商品销售额,统计网站PV、UV )
Spark Streaming实战对论坛网站动态行为pv,uv,注册人数,跳出率的多维度分析_小强签名设计 的博客-CSDN博客_spark streaming uv 实时统计每天pv,uv的spar ...
- FLINK 基于1.15.2的Java开发-使用AggregateFunction解决以天为单位诸如PV、UV等统计的实时计算
什么样的业务场景适合AggregateFunction 对于这一类的: 统计的数据的窗口为一天内(24小时),然后每X秒刷新一下相关数据的实时变化,每次变化的值是在之前的值上有一个累计,然后每天归0后 ...
- 基于实时计算Flink版的场景解决方案demo
简介:通过两个demo分享技术实时计算flink版的解决方案 本文整理自阿里云智能行业解决方案专家GIN的直播分享 直播链接:https://developer.aliyun.com/learning ...
- 大数据(9f)Flink窗口函数练习:计算PV和UV
文章目录 概述 需求 数据样本(页面ID,用户ID,时间戳) 环境和依赖 PV计算代码 UV计算代码 概述 需求 计算每小时每个页面的 PV 和 UV 数据样本(页面ID,用户ID,时间戳) {&qu ...
- flink实战教程-使用set实时计算当天网站uv
文章目录 背景 案例讲解 模拟source 定义窗口 自定义聚合算子 处理输出结果 背景 对于web网站,我们一般会有这样的需求,实时的计算出来当天网站的uv,尽可能快的展示出来.今天我们就讲一下基于 ...
最新文章
- BZOJ 1208 宠物饲养所 Splay
- 修改mysql数据库服务器时间格式,修改本地mysql数据库时间格式
- hdu 2191 多重背包入门
- Apache Thrift的使用
- open_cursors参数设置调优
- 博文视点大讲堂第24期“PPT演示之道”专题讲座成功落幕
- 【51单片机】STC-ISP软件保姆级烧录教程(以普中A2开发板为例)
- 【教程】Win10安装SQLServer2005出现服务启动失败的问题解决
- PC Hunter V1.4
- 网站建设需做的工作,你知道吗?
- 四大因素使二三线城市楼市泡沫难救?
- Linux上搭建ElasticSearch-8.x集群以及安装Kibana(保姆级安装教程)
- RS-485总线布线规则及方法
- ssm整合开发配置文件
- Maximum Noise Fraction (MNF) 中文翻译
- 基于Python pyqt5的随机抽号机源代码 ,可设置抽号器的人数及刷新间隔
- 华为设备Telnet配置命令及注释
- 自动控制原理复习——第一章绪论
- android 模拟器 xposd,xposed开发入门向之入门前准备工作 模拟器安装xposed框架
- Spring Boot中的application.properties配置简介(二)
热门文章
- mysql explain中的type列含义和extra列的含义
- 还在对Matplotlib繁琐的图层设置感到烦恼!?快来看看这个Python绘图工具包吧
- 为进大厂刷爆算法题,最后却倒在了基础题上?太苦了!
- 那么多MarkDown编辑器,最专业的还是这一款!
- 反转!奥斯卡般演技的果小云水果店耍了全世界!
- php 数组重新打乱_PHP 将数组打乱 shuffle函数的用法及简单实例
- html div box,html – 为转换后的div添加box-shadow
- android 首页6个碎片,Android 单帧碎片
- mysql5.7学习nosql_如何学习NoSQL?
- 初学者不建议月python吗_9.python入门