关于数据库:实践教程之使用-PolarDBX-与-Flink-搭建实时数据大屏

41次阅读

共计 3600 个字符,预计需要花费 9 分钟才能阅读完成。

PolarDB-X 为了不便用户体验,提供了收费的试验环境,您能够在试验环境里体验 PolarDB-X 的装置部署和各种内核个性。除了收费的试验,PolarDB-X 也提供收费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。

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

本期收费试验地址

本期教学视频地址

前置筹备

假如曾经依据前一讲内容实现了 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。

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 数据库。

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 退出数据库。

运行 Flink

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

1. 装置 JDK。

a. 执行如下命令,应用 yum 装置 JDK 1.8。

yum -y install java-1.8.0-openjdk*

b. 执行如下命令,查看是否装置胜利。

java -version

返回后果如下,示意您已胜利装置 JDK 1.8。

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 中。

c. 按 q 键退出。

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

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

1. 筹备压测脚本。

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

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 列)。

3. 启动压测脚本。

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

./buy.sh

返回后果如下,您可看到压测脚本启动后,一直有订单被创立进去。

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

原文链接

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

正文完
 0