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列)。
原文链接
本文为阿里云原创内容,未经容许不得转载。