体验PolarDB-X与Flink搭建实时数据大屏
PolarDB-X是一款面向超高并发、海量存储、复杂查询场景设计的云原生分布式数据库系统。其采用Shared-nothing与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,具备企业级、云原生、高可用、高度兼容MySQL系统及生态等特点。
一、安装PolarDB-X
- 安装Docker
curl-fsSL https://get.docker.com | bash-s docker --mirror Aliyun
- 启动Docker
systemctl start docker
- 安装PolarDB-X
docker run -d--name some-polardb-x -p8527:8527 polardbx/polardb-x:2.1.0
二、 配置订单数据表
连接PolarDB-X数据库,并创建测试库、测试表和测试数据
- 安装MySQL
yum install mysql -y
- 登录PolarDB-X数据库
mysql -h127.0.0.1 -P8527-upolardbx_root-p123456
- 创建测试库mydb
create database mydb;
- 使用测试库mydb
use mydb;
- 创建订单表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;
- 给订单表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);
三、运行Flink
- 使用yum安装JDK 1.8
yum -y install java-1.8.0-openjdk*
- 下载Flink和Flink CDC MySQL Connector
wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/PolarDB-X/flink-1.13.6-bin-scala_2.11.tgz
wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/PolarDB-X/flink-sql-connector-mysql-cdc-2.2.1.jar
- 启动并连接Flink
./bin/start-cluster.sh ./bin/sql-client.sh
- 在Flink中创建与PolarDB-X关联的订单表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');
- 订单表orders
select * from orders;
总结
PolarDB-X采用Shared-nothing与存储计算分离架构进行设计,系统由计算节点、存储节点、元数据服务和日志节点四个核心组件组成。总体体验下来感觉PolarDB-X 的兼容性还是很厉害的兼容的内容包括MySQL协议、MySQL大部分语法、Collation、事务隔离级别、Binlog等,上手很简单,同时过原生MPP能力实现对分析型查询的支持,通过CPU quota约束、内存池化、存储资源分离等实现了OLTP与OLAP流量的强隔离,另外支持通过K8s Operator管理集群资源,支持公有云、混合云、专有云等多种形态进行部署,并支持国产化操作系统和芯片。