实践教程之使用PolarDB-X与Flink搭建实时数据大屏

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。本期实验将指导您使用 PolarDB-X 与Flink搭建实时数据大屏。

PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库

本期实验将指导您使用 PolarDB-X 与Flink搭建实时数据大屏。

PolarDB-X 分布式数据库免费试用地址

本期免费实验地址

本期教学视频地址

前置准备

假设已经根据前一讲内容完成了PolarDB-X的搭建部署,可以成功链接上PolarDB-X数据库。

在PolarDB-X中准备订单表

PolarDB-X支持通过MySQL Client命令行、第三方客户端以及符合MySQL交互协议的第三方程序代码进行连接。本实验使用MySQL Client命令行连接到PolarDB-X数据库。

本步骤将指导您如何连接PolarDB-X数据库,并创建测试库、测试表和测试数据。

1.执行如下命令,安装MySQL。

yum install mysql -y

2.执行如下命令,查看MySQL版本号。

mysql -V
返回结果如下,表示您已成功安装MySQL。
c1.jpg

3.执行如下命令,登录PolarDB-X数据库。

说明:

本实验场景中的PolarDB-X数据库用户名和密码已预设,请您使用下方命令登录即可。
如遇到mysql: [Warning] Using a password on the command line interface can be insecure.ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0报错,请您稍等一分钟,重新执行登录命令即可。
mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456
返回结果如下,表示您已成功登录PolarDB-X数据库。

c4.jpg
4.执行如下SQL语句,创建测试库mydb。

create database mydb;

5.执行如下SQL语句,使用测试库mydb。

use mydb;

6.执行如下SQL语句,创建订单表orders。

CREATE TABLE `orders` (  `order_id` int(11) NOT NULL AUTO_INCREMENT,  `order_date` datetime NOT NULL,  `customer_name` varchar(255) NOT NULL,  `price` decimal(10, 5) NOT NULL,  `product_id` int(11) NOT NULL,  `order_status` tinyint(1) NOT NULL,  PRIMARY KEY (`order_id`) )AUTO_INCREMENT = 10001;

7.执行如下SQL语句,给订单表orders中插入数据。

INSERT INTO orders VALUES (default, '2020-07-30 10:08:22', 'Jark', 50.50, 102, false),        (default, '2020-07-30 10:11:09', 'Sally', 15.00, 105, false),        (default, '2020-07-30 12:00:30', 'Edward', 25.25, 106, false);

8.输入exit退出数据库。
c5.jpg

运行Flink

本步骤将指导您如何下载并运行Flink。

1.安装JDK。

a.执行如下命令,使用yum安装JDK 1.8。

yum -y install java-1.8.0-openjdk*

b.执行如下命令,查看是否安装成功。

java -version

返回结果如下,表示您已成功安装JDK 1.8。

c7.jpg

2.下载Flink和Flink CDC MySQL Connector。

a.执行如下命令,下载Flink。

wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/PolarDB-X/flink-1.13.6-bin-scala_2.11.tgz

b.执行如下命令,解压Flink。

tar xzvf flink-1.13.6-bin-scala_2.11.tgz

c.执行如下命令,进入lib目录。

cd flink-1.13.6/lib/

d.执行如下命令,下载flink-sql-connector-mysql-cdc。

wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/PolarDB-X/flink-sql-connector-mysql-cdc-2.2.1.jar

e.执行如下命令,返回Flink目录。

cd ..

3.启动Flink。

a.执行如下命令,启动Flink。

./bin/start-cluster.sh

b.执行如下命令,连接Flink。

./bin/sql-client.sh

4.在Flink中创建与PolarDB-X关联的订单表orders。

a.执行如下SQL语句,创建订单表orders。

CREATE TABLE orders (  order_id INT,  order_date TIMESTAMP(0),  customer_name STRING,  price DECIMAL(10, 5),  product_id INT,  order_status BOOLEAN,  PRIMARY KEY (order_id) NOT ENFORCED ) WITH ( 'connector' = 'mysql-cdc', 'hostname' = 'localhost', 'port' = '8527', 'username' = 'polardbx_root', 'password' = '123456', 'database-name' = 'mydb', 'table-name' = 'orders' );

b.执行如下SQL语句,查看订单表orders。

select * from orders;

返回结果如下,您可以查看到PolarDB-X的订单表orders的数据已经同步到Flink的订单表orders中。
c6.jpg

c.按q键退出。

启动压测脚本并实时获取GMV

经过前面几步操作后,我们在PolarDB-X中准备好了原始订单表,在Flink中准备好了对应的订单表,并通过 PolarDB-X Global Binlog与Flink CDC MySQL Connector打通了两者之间的实时同步链路。 本步骤将指导您如何创建压测脚本,模拟双十一零点大量订单涌入的场景。

1.准备压测脚本。

a.在实验页面,单击右上角的+图标,创建新的终端二。

c8.jpg

b.执行如下命令,创建配置文件mysql-config.cnf。

vim mysql-config.cnf

c.将如下代码添加到配置文件mysql-config.cnf中。

[client] user = "polardbx_root" password = "123456" host = 127.0.0.1 port = 8527

d.添加完成后的文件内容如下所示。按下Esc键后,输入:wq后按下Enter键保存并退出。

e.执行如下命令,创建脚本buy.sh。

vim buy.sh

f.将如下代码添加到脚本buy.sh中。

#!/bin/bash  echo "start buying..."  count=0 while : do  mysql --defaults-extra-file=./mysql-config.cnf -Dmydb -e "insert into orders values(default, now(), 'free6om', 1024, 102, 0)"  let count++  if ! (( count % 10 )); then   let "batch = count/10"   echo $batch": got 10 products, gave 1024¥"  fi  sleep 0.05 done

g.添加完成后的文件内容如下所示。按下Esc键后,输入:wq后按下Enter键保存并退出。

h.执行如下命令,为脚本buy.sh增加执行权限。

chmod +x buy.sh

2.启动Flink实时计算。

本实验场景通过Flink SQL实时呈现GMV计算结果。

切换至终端一,在Flink中执行如下SQL语句,查询GMV(gmv列)和订单数(orders列)。

select 1, sum(price) as gmv, count(order_id) as orders from orders;
返回结果如下,您可在Flink的实时计算结果中查看到实时的GMV(gmv列)和订单数(orders列)。

c9.jpg

3.启动压测脚本。

a.切换至终端二,执行如下命令,启动压测脚本,开始创建订单。

./buy.sh
返回结果如下,您可看到压测脚本启动后,不断有订单被创建出来。

c10.jpg
b.切换至终端一,在Flink的实时计算结果中,可查看到实时的GMV(gmv列)和订单数(orders列)。
c11.jpg

本文来源:PolarDB-X知乎机构号

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
4月前
|
流计算
JD Flink教程
JD Flink教程
38 0
|
1月前
|
资源调度 关系型数据库 MySQL
【Flink on YARN + CDC 3.0】神操作!看完这篇教程,你也能成为数据流处理高手!从零开始,一步步教会你在Flink on YARN模式下如何配置Debezium CDC 3.0,让你的数据库变更数据瞬间飞起来!
【8月更文挑战第15天】随着Apache Flink的普及,企业广泛采用Flink on YARN部署流处理应用,高效利用集群资源。变更数据捕获(CDC)工具在现代数据栈中至关重要,能实时捕捉数据库变化并转发给下游系统处理。本文以Flink on YARN为例,介绍如何在Debezium CDC 3.0中配置MySQL连接器,实现数据流处理。首先确保YARN上已部署Flink集群,接着安装Debezium MySQL连接器并配置Kafka Connect。最后,创建Flink任务消费变更事件并提交任务到Flink集群。通过这些步骤,可以构建出从数据库变更到实时处理的无缝数据管道。
112 2
|
4月前
|
存储 弹性计算 数据可视化
使用PolarDB-X与Flink搭建实时数据大屏
使用PolarDB-X与Flink搭建实时数据大屏
|
4月前
|
SQL 关系型数据库 测试技术
实践教程之在PolarDB-X中进行Online DDL
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。
109 0
实践教程之在PolarDB-X中进行Online DDL
|
4月前
|
SQL canal 大数据
实践教程之将PolarDB-X与大数据等系统互通
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。
100 0
实践教程之将PolarDB-X与大数据等系统互通
|
4月前
|
SQL Kubernetes 关系型数据库
实践教程之快速安装部署PolarDB-X
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。
1100 0
实践教程之快速安装部署PolarDB-X
|
4月前
|
Java 数据库 数据安全/隐私保护
实践教程之快速使用PolarDB-X
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。
148 0
实践教程之快速使用PolarDB-X
|
4月前
|
SQL 弹性计算 测试技术
实践教程之如何在PolarDB-X中优化慢SQL
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。本期实验将指导您使用对 PolarDB-X 进行慢SQL优化。...
94 0
实践教程之如何在PolarDB-X中优化慢SQL
|
4月前
|
SQL 弹性计算 分布式数据库
实践教程之如何对PolarDB-X集群做动态扩缩容
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。本期实验将指导您使用对 PolarDB-X 进行动态扩缩容。本...
107 0
实践教程之如何对PolarDB-X集群做动态扩缩容
|
4月前
|
关系型数据库 分布式数据库 数据库
【PolarDB开源】PolarDB-X源码解读:分布式事务处理机制揭秘
【5月更文挑战第20天】PolarDB-X,PolarDB家族的一员,专注于大规模分布式事务处理,采用2PC协议保证ACID特性。源码解析揭示其通过预提交、一致性快照隔离和乐观锁优化事务性能,以及利用事务日志进行故障恢复。深入理解其事务处理机制对开发者掌握分布式数据库核心技术至关重要。随着开源社区的发展,更多优化方案将涌现,助力构建更强大的分布式数据库系统。
197 6

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB