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

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 《PolarDB-X 动手实践》系列第七期,本场景带您体验如何使用PolarDB-X与Flink搭建一个实时数据大屏。

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

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

实验链接:https://developer.aliyun.com/adc/scenario/24751dd17ba84807a9201264e3ec16c3

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
6月前
|
存储 弹性计算 数据可视化
使用PolarDB-X与Flink搭建实时数据大屏
使用PolarDB-X与Flink搭建实时数据大屏
|
SQL 数据可视化 关系型数据库
实践教程之使用PolarDB-X与Flink搭建实时数据大屏
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。 本期实验将指导您使用 PolarDB-X 与Flink搭建实时数据大屏。
实践教程之使用PolarDB-X与Flink搭建实时数据大屏
|
2月前
|
运维 数据处理 数据安全/隐私保护
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
|
4月前
|
存储 监控 大数据
阿里云实时计算Flink在多行业的应用和实践
本文整理自 Flink Forward Asia 2023 中闭门会的分享。主要分享实时计算在各行业的应用实践,对回归实时计算的重点场景进行介绍以及企业如何使用实时计算技术,并且提供一些在技术架构上的参考建议。
821 7
阿里云实时计算Flink在多行业的应用和实践
|
17天前
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
696 10
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
|
3月前
|
SQL 消息中间件 Kafka
实时计算 Flink版产品使用问题之如何在EMR-Flink的Flink SOL中针对source表单独设置并行度
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
14天前
|
SQL 运维 数据可视化
阿里云实时计算Flink版产品体验测评
阿里云实时计算Flink基于Apache Flink构建,提供一站式实时大数据分析平台,支持端到端亚秒级实时数据分析,适用于实时大屏、实时报表、实时ETL和风控监测等场景,具备高性价比、开发效率、运维管理和企业安全等优势。
zdl
|
5天前
|
消息中间件 运维 大数据
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
24 0
|
30天前
|
运维 搜索推荐 数据安全/隐私保护
阿里云实时计算Flink版测评报告
阿里云实时计算Flink版在用户行为分析与标签画像场景中表现出色,通过实时处理电商平台用户行为数据,生成用户兴趣偏好和标签,提升推荐系统效率。该服务具备高稳定性、低延迟、高吞吐量,支持按需计费,显著降低运维成本,提高开发效率。
66 1
|
1月前
|
运维 数据处理 Apache
数据实时计算产品对比测评报告:阿里云实时计算Flink版
数据实时计算产品对比测评报告:阿里云实时计算Flink版

相关产品

  • 云原生分布式数据库 PolarDB-X
  • 云原生数据库 PolarDB