用 PolarDB - X + Flink 搭建实时数据大屏|学习笔记(三)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 快速学习用 PolarDB - X + Flink 搭建实时数据大屏

开发者学堂课程【用 PolarDB-X+Flink 搭建实时数据大屏用 PolarDB - X + Flink 搭建实时数据大屏】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/988/detail/14931


用 PolarDB - X + Flink 搭建实时数据大屏

可以看到gmv这张表有ID,gmv是交易总额,用decimalI表答案,还有一个订单叫做orders,PolarDB - X这边已经建立好了,在flink这边有个概念就think,就是将计算结果存储到什么地方?,下面建立一下,会将结果存到PolarDB - X建的gmv库里面,刚才db忘了写,所以稍微改一下,可以看到在flink建的表connect用的是jdbc,库叫做gmv表也叫作gmv

image.png

这样就建好了,首先看链路是否是正常打通的

image.png

可以的,现在还是空的还没有数据,这样链路就打通了,最后首先看一下交易的大屏是怎么样的

image.png

这就是刚才做的交易大屏,比较寒酸,但是会把最关键的信息,一个是总交易额,一个是总订单量这两个数据会展示出来,首先将交易大屏这个应用启动,它分成两个部分,第一部分是后端,也就是用spring boot开发的访问PolarDB - X去获取gmv那张表里面的数据这样的应用,先将它启动起来,然后需要做一下端口转化,连接大家可以忽略,先把前端应用启动起来

image.png

现在vue已经将前端的应用起来了,前端应用是在网上找的阿里比较有名的展示数字大屏的应用,有的是用vue做的类似的框架,现在直接把别人的demo拿过来做了一个修改,改完之后就是上面的一个效果

image.png

现在前端部分已经启动好了,接下来将后端的也就是数据的部分进行启动。

image.png

后端部分已经启动好了,在将后端的端口进行转发,后端监听的是8888端口

image.png

这样就转发过来了,首新疆前端的页面加载过来,之后前端页面也会做一个周期性的HTTP查询,这个查询查的是8888端口,也就是用spring boot写的后台提供数据的接口,Spring boot写的应用会去PolarDB - X里面将gmv那张表的数据获取过来,现在刷新一下交易大屏的页面,目前还是空的,接下来做个最关键的部分,也就是在flink里面让流计算跑起来,跑起来的意思是将orders那张表所有数据给查下来,然后计算里面的数据给sum,然后将结果写到gmv这张表里面,这样交易的大屏就可以看到了,可以来看一下c口

image.png

用了一个insert into select语句,select是从orders这张表里面你把所有的数据查出来,然后count一下order,然后sum一下price,把这条数据的主件定为一,然后再把这条数据insert回gmv,如果这条语句执行正常的话,PolarDB - X里面的gmv这张表执行完以后是空的,所以现在来看一下回到PolarDB - X这边

image.png

可以看到它里面已经有一条数据了,当前总交易额是90.75,订单有三条,说明云计算已经正式的在跑了,再来看一下交易大屏,并没有出来查看一下是什么原因,是spring boot的库表写的不太对,这里稍微改一下,Spring boot连接的库的名字是不对的,这边应该连接的是叫GMV的库,里面会有对应的GMV的表

image.png

改完之后重启客户端,再来看一下交易大屏的数据是否能够正确的出来

image.png

可以看到交易额已经变成了90元,订单数量是三个,这时交易大屏已经正常了,现在的业务交易库是PolarDB - X里面有订单这张表,通过flink将订单里面数据拉过来后,做了一个计算,计算得到了两个值,一个是总的订单量,一个是总的交易额,然后将这个结果写到PolarDB - X另一个库里,就一大瓶这个应用就会将里面的计算结果拿出来进行展示,这是目前已经做好的工作,接下来是最关键的一步,模拟双十一0点大量的订单进来了,这个交易大屏数据实时的有一个增加的过程,来看一下今天的效果能不能出来,为了演示简单的写了一个去买东西的产品的脚本,其实就是向订单表里面无脑的插入一些订单数据,现在启动另一个终端连接上ECS

image.png

可以看到里面有个脚本叫做buy.sh,他是一个shell脚本,简单的打开看一下

#!/ bin / bash

echo “ start buying .….“

ySqL -0eTgULtS- etrg -1LLe mySqL -Cont1g◇ Crt Dmydb e1nsertLnt OrderSVgLuesCdefout , noNO ◇fee6om1024,10Z0)

f !( C count %10); then

Let “ batCh

Count /10

echo Sbatch ": got 10 products , gave 1024¥'

sleep 0.05

这个脚本做的事情特别简单,每循环一次都连接上原端的PolarDB - X往里面insert了一条订单,现在来启动脚本,启动的一瞬间可以想象是0点双十一,按下回车键之后理论上交易大屏会在不停的滚动

image.png

可以看到这边每隔一段时间都会打印出现在已经买了十个东西,产生了十个订单,花了1024的钱,交易大屏的数字也在进行一个实时的滚动,交易额在增加,总的订单量也在增加,这个就是完成了,双十一0点时优衣库的交易额,现在因为知道原端比较小,所以交一个饭馆起来不如双十一交易额,不过,有效果,现在这个链路已经完全打通了,最源端是一个交易的系统,里面是用PolarDB - X创建的数据库做数据的存储,其中最关键的一张表就做订单表,用flink去拉取这张表增量的数据并进行实时计算,将总的订单数量,总交易额进行了计算,之后再写回PolarDB - X的另外一个库里面,之后交易大屏这个应用去PolarDB - X的库里面去获取实时的交易额以及订单量,呈现在了网页上面,这就是今天主要所讲内容。

所要讲解的重点是flink cdc里面用了他的mySQL cdc这样一个ID,也就是把原端的PolarDB - X当成一个mySQL去调用,这样也能够获取原端总量的数据,这样就证明了PolarDB - X全局Binlog以及mySQL Binlog一些参数上面的兼容性,这就是今天做的第二个demo,今天的demo大家可以看到其实依赖的重要特性是全局Binlog。

在即将结束的时候做一个预告,PolarDB - X是从去年开源的也就是10月20号,之后在1月份的时候做了一个小版本的更新,现在有三个月过去了,按照更新迭代的速度是时候应该再发布一个版本,只不过这次发布的版本会比较重量级,首先有了一个统一的产品的版本号叫做PolarDB - X2.1.0,里面会包含非常多,非常多的特性,其中有一项就是大家特别关心的三副本能力,还有其他n多的能力,这个发布会在近期非常短的时间。

相关实践学习
跟我学:如何一键安装部署 PolarDB-X
《PolarDB-X 动手实践》系列第一期,体验如何一键安装部署 PolarDB-X。
相关文章
|
4月前
|
关系型数据库 Linux PostgreSQL
这个错误是因为Flink CDC在尝试访问PostgreSQL的"decoderbufs"文件时,发现该文件不存在
【1月更文挑战第23天】【1月更文挑战第111篇】这个错误是因为Flink CDC在尝试访问PostgreSQL的"decoderbufs"文件时,发现该文件不存在
47 11
|
16天前
|
传感器 存储 缓存
[尚硅谷flink学习笔记] 实战案例TopN 问题
这段内容是关于如何使用Apache Flink解决实时统计水位传感器数据中,在一定时间窗口内出现次数最多的水位问题,即"Top N"问题。首先,介绍了一个使用滑动窗口的简单实现,通过收集传感器数据,按照水位计数,然后排序并输出前两名。接着,提出了全窗口和优化方案,其中优化包括按键分区(按水位vc分组)、开窗操作(增量聚合计算count)和过程函数处理(聚合并排序输出Top N结果)。最后,给出了一个使用`KeyedProcessFunction`进行优化的示例代码,通过按键by窗口结束时间,确保每个窗口的所有数据到达后再进行处理,提高了效率。
|
2月前
|
存储 弹性计算 数据可视化
使用PolarDB-X与Flink搭建实时数据大屏
使用PolarDB-X与Flink搭建实时数据大屏
|
5月前
|
分布式计算 资源调度 Hadoop
Hadoop学习笔记(HDP)-Part.18 安装Flink
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
121 2
Hadoop学习笔记(HDP)-Part.18 安装Flink
|
5月前
|
关系型数据库 数据库 PostgreSQL
flink postgresql cdc实时同步(含pg安装配置等)
flink postgresql cdc实时同步(含pg安装配置等)
165 0
|
8月前
|
SQL 数据可视化 关系型数据库
使用PolarDB-X与Flink搭建实时数据大屏
《PolarDB-X 动手实践》系列第七期,本场景带您体验如何使用PolarDB-X与Flink搭建一个实时数据大屏。
90 0
|
10月前
|
SQL 关系型数据库 数据库
flink postgresql cdc实时同步(含pg安装配置等)
flink postgresql cdc实时同步(含pg安装配置等)
1859 2
|
11月前
|
SQL Oracle NoSQL
Flink CDC 2.4 正式发布,新增 Vitess 数据源,PostgreSQL 和 SQL Server CDC 连接器支持增量快照,升级 Debezium 版本
Flink CDC 2.4 正式发布,新增 Vitess 数据源,PostgreSQL 和 SQL Server CDC 连接器支持增量快照,升级 Debezium 版本
1080 1
Flink CDC 2.4 正式发布,新增 Vitess 数据源,PostgreSQL 和 SQL Server CDC 连接器支持增量快照,升级 Debezium 版本
|
12月前
|
存储 SQL 安全
【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(二)
【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(二)
10313 0
|
12月前
|
存储 SQL Oracle
【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(一)
【MySQL学习笔记】系列一:数据库概述、初识关系型数据库MySQL(一)