精华内容
下载资源
问答
  • 实时计算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?

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

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

     

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

     

    原文链接

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

    展开全文
  • 你好,欢迎来到第 33 课时,本课时我们主要讲解“Flink 计算 PV、UV 代码实现”。 上一课时我们学习了 Flink 消费 Kafka 数据计算 PV 和 UV 的水印和窗口设计,并且定义了窗口计算的触发器,完成了计算 PV 和 UV 前...

    你好,欢迎来到第 33 课时,本课时我们主要讲解“Flink 计算 PV、UV 代码实现”。

    上一课时我们学习了 Flink 消费 Kafka 数据计算 PV 和 UV 的水印和窗口设计,并且定义了窗口计算的触发器,完成了计算 PV 和 UV 前的所有准备工作。

    接下来就需要计算 PV 和 UV 了。在当前业务场景下,根据 userId 进行统计,PV 需要对 userId 进行统计,而 UV 则需要对 userId 进行去重统计。

    下面我们使用不同的方法来统计 PV 和 UV。

    单窗口内存统计

    这种方法需要把一天内所有的数据进行缓存,然后在内存中遍历接收的数据,进行 PV 和 UV 的叠加统计。

    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
    env.setStateBackend(new MemoryStateBackend(true));
    Properties properties = new Properties();
    properties.setProperty("bootstrap.servers", "127.0.0.1:9092");
    properties.setProperty(FlinkKafkaConsumerBase.KEY_PARTITION_DISCOVERY_INTERVAL_MILLIS, "10");
    FlinkKafkaConsumer<String> consumer = new FlinkKafkaConsumer<>("log_user_action", new SimpleStringSche
    展开全文
  • Flink 计算 PV UV

    2020-12-28 14:31:41
    使用 flink 很长一段时间了,突然发现竟然没有计算pv uv,这可是 flink 常见的计算场景了,面试时也是常问题之一。故自己想了一个场景来计算一下。 基于 Flink 1.12 场景 外卖员听单的信息会发到单独一个 topic ...
  • 计算pv和uv时经常出现数据倾斜,比如在场门客流统计时,地铁口场门是其他场门的上百倍。这很容易导致数据倾斜 解决方案 整体思路是把数据打撒,做两阶段聚合。但是在计算pv和uv时,还是略有不同。 计算pv时,在...
  • 按渠道计算 PV 和 UV

    2018-07-10 16:17:00
    按渠道计算 PV 和 UV: ------------------按指定channel_id按月求PV、UV------------ drop table if exists tmp_pvuv; create table tmp_pvuv as select t1.channel_id, --渠道编号 t2...
  • 你好,欢迎来到第 32 课时,本课时我们主要讲解“Flink 计算 PV、UV 中的时间窗口设计”。 我们在第 31 课时中讲过,在计算 PV 和 UV 等指标前,用 Flink 将原始数据进行了清洗,清洗完毕的数据被发送到另外的 Kafka...
  • 实时统计pv、uv是再常见不过的大数据统计需求了,前面出过一篇SparkStreaming实时统计pv,uv的案例,这里用flink实时计算pv,uv。 我们需要统计不同数据类型每天的pv,uv情况,并且有如下要求. 每秒钟要输出最新的统计...
  • 使用Spark计算PV、UV

    万次阅读 2015-01-28 14:06:06
    日志字段格式: id,ip,url,ref,cookie,time_stamp 把日志文件放到HDFS。仅取了1000行。 hadoop fs -put 1000_log hdfs://localhost:9000...计算PV。 scala> val textFile = sc.textFile("hdfs://localhost:9000/user/ro
  • 一般我们经常会计算pv和uv,那么我们计算pv和uv的时候是不是性能最优的呢?   好,我们开始看例子: 首先看一下数据: {"flag":"sendTemplateMessage","actionType":"...
  • hadoop 计算 pv uv

    千次阅读 2015-01-18 10:44:21
    使用hadoop 进行页面的pv uv 计算 不推荐的做法  将访问者的cookie放在hashmap中进行去重计算uv,因为当访问量大时,会将hashmap撑爆,报出 java.lang.OutOfMemoryError: Java heap space 推荐做法: 使用...
  • 【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS: 单个进程每秒请求服务器的成功次数 单台服务器每天PV计算 公式1:每天总PV = QPS *...
  • 在操作系统理论中有一个非常重要的概念叫做P,V原语。在我们研究进程间的互斥 的时候经常会引入这个概念,将P,V操作方法与加锁的方法相比较,来解决进程间的互斥问题。实际上,他的应用范围很广,他不但可以解决进程...
  • Flink计算PV,UV的案例及问题分析

    千次阅读 2019-12-15 12:00:41
    PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00...
  • 背景 阿里的双11销量大屏可以说是每年双十一的一道特殊的风景线。实时大屏(real-time dashboard)正在被越来越多的企业采用,用来及时...本文将结合实际工作经验抽象出简单的模型,并简要叙述计算流程(当然大...
  • PV计算公式

    千次阅读 2014-04-05 01:22:05
    QPS每秒查询率(Query Per Second) 每秒查询率QPS是对... 术语说明: QPS = req/sec = 请求数/秒 【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时...
  • QPS PV计算

    2014-08-29 12:22:33
    【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS: 单个进程每秒请求服务器的成功次数 单台服务器每天PV计算 公式1:每天总PV = QPS *...
  • PV计算带宽算法

    2019-12-09 20:53:58
    PV计算带宽算法 PV计算带宽算法 举个例子: 假设网站的平均日PV:10w 的访问量,页面平均大小0.4 M 。 网站带宽 = 10w / (24 60 * 60) 0.4M * 8 =3.7 Mbps 具体的计算公式是:网站带宽= PV / 统计时间(换算到S)...
  • 【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS: 单个进程每秒请求服务器的成功次数 单台服务器每天PV计算 公式1:每天总PV = QPS * ...
  • pv计算

    2012-12-05 22:56:46
     假如你有一台服务器,如果理论性能能扛起任何负载情况下,判断一下用多少的带宽能撑起多少的访问量或访问用户。...我们按此理论方式计算得到,我们的10M独享带宽日可产生550万的PV值,55万的UV值。
  • PV、TPS、QPS 计算公式

    2020-03-06 10:08:45
    【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS: 单个进程每秒请求服务器的成功次数 单台服务器每天PV计算 公式1:每天总PV = QPS * 3600 * 6...
  • 【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS: 单个进程每秒请求服务器的成功次数 单台服务器每天PV计算 公式1:每天总PV = QPS * ...
  • QPS = req/sec = 请求数/秒【QPS计算PV和机器的方式】QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 / ( 进程总数 * 请求时间 )QPS: 单个进程每秒请求服务器的成功次数单台服务器每天PV计算公式1:每天...
  • 英文解释: ...【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS: 单个进程每秒请求服务器的成功次数 单台服务器每天PV计算 公
  • PV、TPS、QPS计算公式

    千次阅读 2017-11-15 08:58:55
    英文解释: PV=page viewTPS=transactions per secondQPS=queries per secondRPS=requests per second RPS=并发数/平均响应...【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请...
  • PV计算模型 现有的PV计算公式是: 每台服务器每秒平均PV量 =( (总PV*80%)/(24*60*60*40%))/服务器数量  =2*(总PV)/* (24*60*60) /服务器数量 ...通过定积分求整个分布图的面积,...根据这个数据,得出计算pv的公式
  • 【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS: 单个进程每秒请求服务器的成功次数 单台服务器每天PV计算 公式1:每天总PV = QPS * 3600 *...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,930
精华内容 18,772
关键字:

如何计算pv