关于数据库:阿里云体验有奖使用PolarDBX与Flink搭建实时数据大屏

体验简介

场景将提供一台配置了CentOS 8.5操作系统的ECS实例(云服务器)。通过本教程的操作带您体验如何应用PolarDB-X与Flink搭建一个实时数据链路,模仿阿里巴巴双十一GMV大屏。

试验筹备

1. 创立试验资源

开始试验之前,您须要先创立ECS实例资源。

  1. 在实验室页面,单击创立资源
  2. (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次试验资源相干信息(例如IP地址、用户信息等)。

阐明:资源创立过程须要1~3分钟。

2. 装置PolarDB-X

本步骤将领导您如何装置PolarDB-X。

  1. 装置并启动Docker。

    1. 执行如下命令,装置Docker。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

  1. 执行如下命令,启动Docker。
systemctl start docker

  1. 执行如下命令,装置PolarDB-X。
docker run -d --name some-polardb-x -p 8527:8527 polardbx/polardb-x:2.1.0

3. 在PolarDB-X中筹备订单表

PolarDB-X反对通过MySQL Client命令行、第三方客户端以及合乎MySQL交互协定的第三方程序代码进行连贯。本试验应用MySQL Client命令行连贯到PolarDB-X数据库。

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

  1. 执行如下命令,装置MySQL。
yum install mysql -y

  1. 执行如下命令,查看MySQL版本号。
mysql -V

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

  1. 执行如下命令,登录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数据库。

  1. 执行如下SQL语句,创立测试库mydb。
create database mydb;

  1. 执行如下SQL语句,应用测试库mydb。
use mydb;

  1. 执行如下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;

  1. 执行如下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);

  1. 输出exit退出数据库。

4. 运行Flink

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

  1. 装置JDK。

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

yum -y install java-1.8.0-openjdk*

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

java -version

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

  1. 下载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 ..

  1. 启动Flink。

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

./bin/start-cluster.sh

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

./bin/sql-client.sh

  1. 在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键退出。

5. 启动压测脚本并实时获取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
  1. 启动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列)。

  1. 启动压测脚本。

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

./buy.sh

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

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

祝贺实现

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据