-
实时计算 pv/uv Demo
2021-01-22 13:19:00本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景。内容将从以下几部分进行: App 计算 pv/uv 场景 实现方案(From Flink-1.11) DDL DML 实操 ...本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 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的语法,这其实是定义了一个计算逻辑,使得在它们中间的逻辑任务就会同时运行。
然后完成部署、创建作业和启动后,就能看到这个计算逻辑已经成功了。
作者:邓小勇(静行),阿里巴巴高级技术专家
本文为阿里云原创内容,未经允许不得转载。
-
实时计算pv/uv Demo
2021-01-22 14:17:20简介: 本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景。 本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink...简介: 本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 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的语法,这其实是定义了一个计算逻辑,使得在它们中间的逻辑任务就会同时运行。
然后完成部署、创建作业和启动后,就能看到这个计算逻辑已经成功了。
作者:邓小勇(静行)
本文为阿里云原创内容,未经允许不得转载
-
实时计算pv/uv Demo演示
2021-02-09 11:08:17简介:本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景。作者 | 邓小勇(静行),阿里巴巴高级技术专家本文由阿里巴巴高级技术专家邓小勇(静行)分享...简介:本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 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?
2019-07-11 14:29:06你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢? PV是什么: PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。 计算...你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢?
PV是什么:
PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。
计算模型:每台服务器每秒处理请求的数量=((80%总PV量)/(24小时60分60秒40%)) / 服务器数量 。
其中关键的参数是80%、40%。表示一天中有80%的请求发生在一天的40%的时间内。24小时的40%是9.6小时,有80%的请求发生一天的9.6个小时当中(很适合互联网的应用,白天请求多,晚上请求少)。简单计算的结果:
((80%500万)/(24小时60分60秒40%))/1 = 115.7个请求/秒
((80%100万)/(24小时60分60秒40%))/1 = 23.1个请求/秒
初步结论:
现在我们在做压力测试时,就有了标准,如果你的服务器一秒能处理115.7个请求,就可以承受500万PV/每天。如果你的服务器一秒能处理23.1个请求,就可以承受100万PV/每天。
留足余量:
以上请求数量是均匀的分布在白天的9.6个小时中,但实际情况并不会这么均匀的分布,会有高峰有低谷。为了应对高峰时段,应该留一些余地,最少也要x2倍,x3倍也不为过。
115.7个请求/秒 *2倍=231.4个请求/秒
115.7个请求/秒 *3倍=347.1个请求/秒
23.1个请求/秒 *2倍=46.2个请求/秒
23.1个请求/秒 3倍=69.3个请求/秒
最终结论:
如果你的服务器一秒能处理231.4–347.1个请求/秒,就可以应对平均500万PV/每天。
说明:这里说明每秒N个请求,就是QPS。因为我关心的是应用程序处理业务的能力。
实际经验:
1、根据实际经验,采用两台常规配置的机架式服务器,配置是很常见的配置,例如一个4核CPU+4G内存+服务器SAS硬盘。
2、硬盘的性能很重要,由其是数据库服务器。一般的服务器都配1.5万转的SAS硬盘,高级一点的可以配SSD固态硬盘,性能会更好。最最最最重要的指标是“随机读写性能”而不是“顺序读写性能”。(本例还是配置最常见的1.5万转的SAS硬盘吧)
3、一台服务器跑Tomcat运行j2ee程序,一台服务器跑MySql数据库,程序写的中等水平(这个真的不好量化),是论坛类型的应用(总有回帖,不太容易做缓存,也无法静态化)。
4、以上软硬件情况下,是可以承受100万PV/每天的。(已留有余量应对突然的访问高峰)
注意机房的网络带宽:
有人说以上条件我都满足了,但实际性能还是达不到目标。这时请注意你对外的网络的带宽,在国内服务器便宜但带宽很贵,很可能你在机房是与大家共享一条100M的光纤,实际每个人可分到2M左右带宽。再好一点5M,再好一点双线机房10M独享,这已经很贵了(浙江价格)。
一天总流量:每个页面20k字节100万个页面/1024=19531M字节=19G字节,19531M/9.6小时=2034M/小时=578K字节/s 如果请求是均匀分布的,需要5M(640K字节)带宽(5Mb=640KB 注意大小写,b是位,B是字节,差了8倍),但所有请求不可能是均匀分布的,当有高峰时5M带宽一定不够,X2倍就是10M带宽。10M带宽基本可以满足要求。
以上是假设每个页面20k字节,基本不包含图片,要是包含图片就更大了,10M带宽也不能满足要求了。你自已计算吧。
群联高防服务器,更高品质追求首选 。采用上层云清洗加绿盟黑洞防火墙,双重毫秒清洗攻击流量,专业的运维团队提供7*24小时的专业技术解答和秒级服务响应。
企业q:28851-690- 11 -
如何计算服务器能够承受多大的pv?
2019-05-05 09:25:28你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢?PV是什么: PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。... -
什么是pv?如何计算公司每天的浏览量?
2019-10-31 20:18:45PV(page view):即页面浏览量,或点击量,PV 是网站分析的一个术语,用以衡量网站用户 访问的网页的...一:IP、PV、UV 的计算 对 IP 计算 1.分析网站的访问日志,去除相同的 IP 地址 2.使用第三方统计工具 3... -
如何计算网站访问的有效PV量
2011-04-29 11:16:00为了更好的分析得到的PV量, 使自己由日志文件得到的PV量更接近Google由日志中统计出的PV量要排除掉如下一些: 1. 搜索引擎爬虫过来的 搜索引擎,爬虫这些访问不是用户行为,应该排除处理方法: 一般有异常IP... -
服务器每秒钟执行命令数量是什么_如何计算服务器能够承受多大的pv?
2020-12-26 08:29:47你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?...计算模型:每台服务器每秒处理请求的数量=((80%总PV量)/(24小时60分60秒40%)) / 服务器数量 。其中关键的参数是80%、40%。表示一天中有80%... -
spark1.6学习(四)——计算pv和uv的例子
2018-11-29 01:56:39一般我们经常会计算pv和uv,那么我们计算pv和uv的时候是不是性能最优的呢? 好,我们开始看例子: 首先看一下数据: {"flag":"sendTemplateMessage","actionType":"... -
(转载)如何计算服务器能够承受多大的pv
2019-01-04 08:25:00PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。 计算模型: 每台服务器每秒处理请求的数量=((80% 总PV量)/(24小时 60分 60秒 40%)) / 服务器数量 。 其中关键的参数是80%、40%。表示一天中有80%的... -
一段话系列-QPS、TPS、PV是很么如何计算
2018-09-21 16:39:00pv(PageView)是指页面访问量,比如你打开一网页,那么这个网站的pv就算加了一次; tps(TransactionsPerSecond)是每秒内的事务数,比如执行了dml操作,那么相应的tps会增加; qps(QsPerSecond)是指每秒内查询... -
你想建设一个能承受500万PV/每天的网站吗?如何计算呢?
2015-05-16 01:43:58作者:赵磊 ... ...你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?...PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。 计算模型: 每台服务器每秒处理请求的数量=((80% -
apache日志分析处理;如何通过apache日志计算出PV数和UV数?
2015-01-16 10:28:01google了下,没有找到如何通过apache日志计算出PV数和UV数,在知乎上提问了个,等待高人解答吧。 —– 等了一下午,知乎上也木有人能给出合理的算法,chinaunix上也木有,stackoverflow.com上也木有,自己找时间看... -
计算服务器的pv量算法
2018-04-10 10:03:00如何计算服务器能够承受多大的pv? 你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢?PV是什么: PV是page view的简写。PV是指页面的访问... -
pv原语模拟实现_flink sql实时计算当天pv写入mysql
2020-12-09 18:02:48今天我们主要来讲一个很简单但是很常见的需求,实时计算出网站当天的pv值,然后将结果实时更新到mysql数据库,以供前端查询显示。接下来我们看看如何用flink sql来实现这个简单的功能。首先我们还是使用datagen生成... -
flink sql实时计算当天pv写入mysql
2020-09-23 09:26:03今天我们主要来讲一个很简单但是很常见的需求,实时计算出网站当天的pv值,然后将结果实时更新到mysql数据库,以供前端查询显示。 接下来我们看看如何用flink sql来实现这个简单的功能。 首先我们还是使用datagen... -
如何估算网站日承受最大访问PV ,你想建设一个能承受500万PV/每天的网站吗?如果计算呢?
2017-01-03 20:11:53如何估算网站日承受最大访问PV ...每个老板或客户都会问架构师这个... 这里就介绍如何计算网站能承受的最高日访问数. 一. 我们得先做测试确认基本数据. 多数情况只计算网站日最大访问pv数,而不是ip或 -
Spark中如何统计pv,uv的数量?
2020-03-16 23:32:07pv:用用户请求的ip地址来计算用户访问的网站的页面的次数 该需求的统计具有真实性,是衡量网站流量的重要指标 uv:可以理解为访问某网站的电脑的数量 网站判断来访电脑的身份是通过来访电脑的cookies实现的,往往是... -
QPS如何计算
2019-02-12 09:30:59公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS) 。 机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器 。 每天300w PV 的在单台机器上,这台机器需要多少QPS? ( 3000000 * 0.8 ) / ... -
flink写入 mysql_flink sql实时计算当天pv写入mysql
2020-12-27 22:54:30今天我们主要来讲一个很简单但是很常见的需求,实时计算出网站当天的pv值,然后将结果实时更新到mysql数据库,以供前端查询显示。接下来我们看看如何用flink sql来实现这个简单的功能。首先我们还是使用datagen生成... -
如何统计网站各页面一天内的 PV 和 UV?
2020-09-22 11:59:18大数据开发最常统计的需求可能就是 ...UV 全拼为 UniqueVisitor,即独立访问用户数,访问该页面的一台电脑客户端为一个访客,假如用户对同一页面访问了 5 次,那么该页面的 UV 只应该加 1,因为 UV 计算的是去重后的... -
详解NGINX如何统计网站的PV、UV、独立IP
2021-01-20 15:09:55Nginx: PV、UV、独立IP ...一天之内相同cookie的访问只被计算1次 PV(Page View):访问量,即页面浏览量或者点击量,用户每次对网站的访问均被记录1次。用户对同一页面的多次访问,访问量值累计 统计独立IP:00:00 -
如何估算网站日承受最大访问PV
2017-01-12 08:33:45每个老板或客户都会问... 这里就介绍如何计算网站能承受的最高日访问数. 一. 我们得先做测试确认基本数据. 多数情况只计算网站日最大访问pv数,而不是ip或uv(用户访问次数).因为对大多数网站来说,相同pv下
-
五个非常重要的移动Web内容适应设计理念
-
Docker从入门到精通
-
C#抓取网络上的数据 WebClient
-
totaltimer.github.io-源码
-
C语言的特点
-
加权超像素分割
-
深究字符编码的奥秘,与乱码说再见
-
【硬核】一线Python程序员实战经验分享(1)
-
MySQL 数据库权限管理(用户高级管理和精确访问控制)
-
天气API-源码
-
基于深圳证券交易所指标数据的可视化展示及建模分析
-
画图软件 draw.io
-
2021年高压电工答案解析及高压电工作业模拟考试
-
简单工厂的详解与实现(终章)
-
docker-compose更新单独某个服务镜像
-
基于用户点击数据的细粒度图像识别方法概述
-
EventBus源码解析下(较详细)
-
MySQL 存储过程(创建海量数据实验环境)
-
被阿里面试官征服了!连续四年百度Android岗必问面试题!复习指南
-
自动化测试Python3+Selenium3+Unittest