精华内容
下载资源
问答
  • 实时计算 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的场景。内容将从以下几部分进行:

    1. App 计算 pv/uv 场景
    2. 实现方案(From Flink-1.11)
    3. DDL
    4. DML
    5. 实操

    首先为大家展示一个比较简单的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的场景。内容将从以下几部分进行:

    1. App 计算 pv/uv 场景
    2. 实现方案(From Flink-1.11)
    3. DDL
    4. DML
    5. 实操

    首先为大家展示一个比较简单的pv/uv场景。以下图所示的APP为例,整个业务构架需要几个入口,包括用户访问入口、作者入口和运营人员入口。在运营人员入口进去可以查看系统的一些指标,比如app 的pv/uv。

    幻灯片3.png

    在开始介绍如何计算实时pv/uv之前,可以先了解下上图的10个字段和它们对应的含义。通过这些字段可以了解到,用户在APP上的任何一次操作都会在数据库中留下一条对应的记录,所有记录就是该用户在APP上的操作流水。

    那么如何实时计算pv/uv呢?

    有两种方案。

    幻灯片4.png

    方案一,MySQL的变更数据同步到Kafka后进行实时计算。由于 Flink在设计之初是具有流表二象性的,所以在 Flink 1.1版本之后,就可以实现 Flink 对 Kafka变更数据的处理了,包括处理一些修改、删除等操作。处理后的结果会放到阿里云Hologress里,方便用户进行大数据查询和分析。

    方案二,从上图可以看到方案一比方案二只多了一个Kafka,在 Flink 1.11 版本之后,可以直接通过Debezium连接MySQL,然后经过Flink 实时计算,也可以完成同样功能。

    两个方案都可以实现,那么如何选择呢?主要取决于业务。如果数据只是暂存,日志需要展示或是需要多个下游使用,需要保存到Kafka;如果日志不需要回溯,或是没有下游使用,那么方案二更适合。

    实战演示

    如下图所示,我们选择方案二(MySQL-CDC源表方式)来演示。

    幻灯片5.png

    首先打开实时计算 Flink平台,点击左侧SQL编辑器,然后通过Create Table方式设定上文提到的10个字段。这样就定义了数据的源头。

    image.png

    定义源头之后,接下来要构建目标表。如下图所示,在构建目标表时,定义了blackhole_pv_uv表,构造了一个无实际存储的目标端,充当调试作用,先把逻辑跑通,然后再去往目标端去写代码。Blackhole 会吸收掉输出结果数据,先处理掉源端和计算的问题。

    image.png

    以上的表会落到 Flink Catalog里,对于实时计算pv/uv上下游表格的准备就完成了。如果需要调整表,也可以通过DDL SQL语句完成。

    做好建表准备后,如何实时计算想要达到的目标呢?以最简单的方式来演示。

    先把数据写到Blackhole里,然后把4个字段值计算出来,比如cuurenttime,event_hour等。

    image.png

    通过上图所示的代码可以计算出,数据是什么时候输入的,数据的pv/uv值等等。

    运行刚刚写入的作业:

    image.png

    然后点击创建SQL作业,

    image.png

    创建完成后,点击启动。

    image.png

    启动后可以点击 Flink UI 来查看运行状态。查看时候可以看到下端有显示记录了8条数据:

    image.png

    回到数据库也能看到对应的8条数据:

    image.png

    如何把实际的结果写到holo里呢?

    核心逻辑与上文实时计算的逻辑是一样的,唯一不一样的是,要把计算的结果既输出到holo_pv_uv里去,同时也输出到backhole里去,也就是要把同样的结果输出两份,这是在流计算里经常会遇到的情况。甚至还有在同一作业里不同的业务逻辑或计算结果,也要输出到不同的目标端的情况。

    打开实时计算 Flink 页面的SQL编辑器,在输入框中创建 temporary view,把数据记录到blackhole 里和holo里。

    为了实现这个目标,需要增加一个叫begin statement set和end的语法,这其实是定义了一个计算逻辑,使得在它们中间的逻辑任务就会同时运行。

    image.png

    然后完成部署、创建作业和启动后,就能看到这个计算逻辑已经成功了。

    image.png

     

     

    作者:邓小勇(静行)

    原文链接 

    本文为阿里云原创内容,未经允许不得转载

     

    展开全文
  • 实时计算pv/uv Demo演示

    千次阅读 2021-02-09 11:08:17
    简介:本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景。作者 | 邓小勇(静行),阿里巴巴高级技术专家本文由阿里巴巴高级技术专家邓小勇(静行)分享...
    简介:本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景。

    作者 | 邓小勇(静行),阿里巴巴高级技术专家

    本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景。内容将从以下几部分进行:

    1. App 计算 pv/uv 场景
    2. 实现方案(From Flink-1.11)
    3. DDL
    4. DML
    5. 实操

    首先为大家展示一个比较简单的pv/uv场景。以下图所示的APP为例,整个业务构架需要几个入口,包括用户访问入口、作者入口和运营人员入口。在运营人员入口进去可以查看系统的一些指标,比如app 的pv/uv。

    幻灯片3.png

    在开始介绍如何计算实时pv/uv之前,可以先了解下上图的10个字段和它们对应的含义。通过这些字段可以了解到,用户在APP上的任何一次操作都会在数据库中留下一条对应的记录,所有记录就是该用户在APP上的操作流水。

    那么如何实时计算pv/uv呢?

    有两种方案。

    幻灯片4.png

    方案一,MySQL的变更数据同步到Kafka后进行实时计算。由于 Flink在设计之初是具有流表二象性的,所以在 Flink 1.1版本之后,就可以实现 Flink 对 Kafka变更数据的处理了,包括处理一些修改、删除等操作。处理后的结果会放到阿里云Hologress里,方便用户进行大数据查询和分析。

    方案二,从上图可以看到方案一比方案二只多了一个Kafka,在 Flink 1.11 版本之后,可以直接通过Debezium连接MySQL,然后经过Flink 实时计算,也可以完成同样功能。

    两个方案都可以实现,那么如何选择呢?主要取决于业务。如果数据只是暂存,日志需要展示或是需要多个下游使用,需要保存到Kafka;如果日志不需要回溯,或是没有下游使用,那么方案二更适合。

    实战演示

    如下图所示,我们选择方案二(MySQL-CDC源表方式)来演示。

    幻灯片5.png

    首先打开实时计算 Flink平台,点击左侧SQL编辑器,然后通过Create Table方式设定上文提到的10个字段。这样就定义了数据的源头。

    image.png

    定义源头之后,接下来要构建目标表。如下图所示,在构建目标表时,定义了blackhole_pv_uv表,构造了一个无实际存储的目标端,充当调试作用,先把逻辑跑通,然后再去往目标端去写代码。Blackhole 会吸收掉输出结果数据,先处理掉源端和计算的问题。

    image.png

    以上的表会落到 Flink Catalog里,对于实时计算pv/uv上下游表格的准备就完成了。如果需要调整表,也可以通过DDL SQL语句完成。

    做好建表准备后,如何实时计算想要达到的目标呢?以最简单的方式来演示。

    先把数据写到Blackhole里,然后把4个字段值计算出来,比如cuurenttime,event_hour等。

    image.png

    通过上图所示的代码可以计算出,数据是什么时候输入的,数据的pv/uv值等等。

    运行刚刚写入的作业:

    image.png

    然后点击创建SQL作业,

    image.png

    创建完成后,点击启动。

    image.png

    启动后可以点击 Flink UI 来查看运行状态。查看时候可以看到下端有显示记录了8条数据:

    image.png

    回到数据库也能看到对应的8条数据:

    image.png

    如何把实际的结果写到holo里呢?

    核心逻辑与上文实时计算的逻辑是一样的,唯一不一样的是,要把计算的结果既输出到holo_pv_uv里去,同时也输出到backhole里去,也就是要把同样的结果输出两份,这是在流计算里经常会遇到的情况。甚至还有在同一作业里不同的业务逻辑或计算结果,也要输出到不同的目标端的情况。

    打开实时计算 Flink 页面的SQL编辑器,在输入框中创建 temporary view,把数据记录到blackhole 里和holo里。

    为了实现这个目标,需要增加一个叫begin statement set和end的语法,这其实是定义了一个计算逻辑,使得在它们中间的逻辑任务就会同时运行。

    image.png

    然后完成部署、创建作业和启动后,就能看到这个计算逻辑已经成功了。

    image.png

    原文链接:https://developer.aliyun.com/article/781195?

    版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
    展开全文
  • 你想建设一个能承受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

    展开全文
  • 你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢?PV是什么: PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。...
  • PV(page view):即页面浏览量,或点击量,PV 是网站分析的一个术语,用以衡量网站用户 访问的网页的...一:IP、PV、UV 的计算 对 IP 计算 1.分析网站的访问日志,去除相同的 IP 地址 2.使用第三方统计工具 3...
  • 为了更好的分析得到的PV量, 使自己由日志文件得到的PV量更接近Google由日志中统计出的PV量要排除掉如下一些: 1. 搜索引擎爬虫过来的 搜索引擎,爬虫这些访问不是用户行为,应该排除处理方法: 一般有异常IP...
  • 你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?...计算模型:每台服务器每秒处理请求的数量=((80%总PV量)/(24小时60分60秒40%)) / 服务器数量 。其中关键的参数是80%、40%。表示一天中有80%...
  • 一般我们经常会计算pv和uv,那么我们计算pv和uv的时候是不是性能最优的呢?   好,我们开始看例子: 首先看一下数据: {"flag":"sendTemplateMessage","actionType":"...
  • PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv计算模型: 每台服务器每秒处理请求的数量=((80% 总PV量)/(24小时 60分 60秒 40%)) / 服务器数量 。 其中关键的参数是80%、40%。表示一天中有80%的...
  • pv(PageView)是指页面访问量,比如你打开一网页,那么这个网站的pv就算加了一次; tps(TransactionsPerSecond)是每秒内的事务数,比如执行了dml操作,那么相应的tps会增加; qps(QsPerSecond)是指每秒内查询...
  • 作者:赵磊 ...   ...你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?...PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。  计算模型:  每台服务器每秒处理请求的数量=((80%
  • google了下,没有找到如何通过apache日志计算PV数和UV数,在知乎上提问了个,等待高人解答吧。 —– 等了一下午,知乎上也木有人能给出合理的算法,chinaunix上也木有,stackoverflow.com上也木有,自己找时间看...
  • 如何计算服务器能够承受多大的pv? 你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢?PV是什么: PV是page view的简写。PV是指页面的访问...
  • 今天我们主要来讲一个很简单但是很常见的需求,实时计算出网站当天的pv值,然后将结果实时更新到mysql数据库,以供前端查询显示。接下来我们看看如何用flink sql来实现这个简单的功能。首先我们还是使用datagen生成...
  • 今天我们主要来讲一个很简单但是很常见的需求,实时计算出网站当天的pv值,然后将结果实时更新到mysql数据库,以供前端查询显示。 接下来我们看看如何用flink sql来实现这个简单的功能。 首先我们还是使用datagen...
  • 如何估算网站日承受最大访问PV ...每个老板或客户都会问架构师这个... 这里就介绍如何计算网站能承受的最高日访问数.   一. 我们得先做测试确认基本数据. 多数情况只计算网站日最大访问pv数,而不是ip或
  • pv:用用户请求的ip地址来计算用户访问的网站的页面的次数 该需求的统计具有真实性,是衡量网站流量的重要指标 uv:可以理解为访问某网站的电脑的数量 网站判断来访电脑的身份是通过来访电脑的cookies实现的,往往是...
  • QPS如何计算

    千次阅读 2019-02-12 09:30:59
    公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS) 。 机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器 。 每天300w PV 的在单台机器上,这台机器需要多少QPS? ( 3000000 * 0.8 ) / ...
  • 今天我们主要来讲一个很简单但是很常见的需求,实时计算出网站当天的pv值,然后将结果实时更新到mysql数据库,以供前端查询显示。接下来我们看看如何用flink sql来实现这个简单的功能。首先我们还是使用datagen生成...
  • 大数据开发最常统计的需求可能就是 ...UV 全拼为 UniqueVisitor,即独立访问用户数,访问该页面的一台电脑客户端为一个访客,假如用户对同一页面访问了 5 次,那么该页面的 UV 只应该加 1,因为 UV 计算的是去重后的...
  • Nginx: PV、UV、独立IP ...一天之内相同cookie的访问只被计算1次 PV(Page View):访问量,即页面浏览量或者点击量,用户每次对网站的访问均被记录1次。用户对同一页面的多次访问,访问量值累计 统计独立IP:00:00
  • 每个老板或客户都会问... 这里就介绍如何计算网站能承受的最高日访问数.   一. 我们得先做测试确认基本数据. 多数情况只计算网站日最大访问pv数,而不是ip或uv(用户访问次数).因为对大多数网站来说,相同pv

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 236
精华内容 94
关键字:

如何计算pv