体验简介
场景将提供一台配置了CentOS 8.5操作系统的ECS实例(云服务器)。通过本教程的操作带您体验如何将PolarDB-X通过Canal与ClickHouse进行互通,搭建一个实时剖析零碎。点击返回
试验筹备
1. 创立试验资源
开始试验之前,您须要先创立ECS实例资源。
- 在实验室页面,单击创立资源。
- (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次试验资源相干信息(例如IP地址、用户信息等)。
阐明 :资源创立过程须要1~3分钟。
2. 装置PolarDB-X
本步骤将领导您如何装置PolarDB-X。
- 装置并启动Docekr。
(1) 执行如下命令,装置Docker。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
(2) 执行如下命令,启动Docker。
systemctl start docker
- 执行如下命令,装置PolarDB-X。
docker run -d --name some-polardb-x -p 8527:8527 polardbx/polardb-x:2.1.0
3. 登录PolarDB-X数据库
本步骤将领导您如何登录PolarDB-X数据库。
PolarDB-X反对通过MySQL Client命令行、第三方客户端以及合乎MySQL交互协定的第三方程序代码进行连贯。本试验场景次要介绍如何通过MySQL Client命令行连贯到PolarDB-X数据库。
- 执行如下命令,装置MySQL。
yum install mysql -y
- 执行如下命令,查看MySQL版本号。
mysql -V
返回后果如下,示意您已胜利装置MySQL。
- 执行如下命令,登录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数据库。
- 输出exit退出数据库。
4. 搭建实时剖析零碎
本步骤将领导您如何应用PolarDB-X+Canal+ClickHouse搭建实时剖析零碎。
- 部署Canal。
Canal是一款风行的MySQL Binlog增量订阅工具,详情请参见Canal阐明文档。Canal提供了Docker镜像,详情请参见Canal Docker镜像文档。
(1) 执行如下命令,下载脚本。
wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run.sh
(2) 执行如下命令,构建一个destination name为test的队列。
留神 :您须要将none\_loopback\_host_ip批改为云产品资源列表中的ECS的弹性IP,请勿应用localhost或127.0.0.1。
sh run.sh -e canal.auto.scan=false \-e canal.destinations=test \-e canal.instance.master.address=none_loopback_host_ip:8527 \-e canal.instance.dbUsername=polardbx_root \-e canal.instance.dbPassword=123456 \-e canal.instance.connectionCharset=UTF-8 \-e canal.instance.tsdb.enable=true \-e canal.instance.gtidon=false
- 部署ClickHouse。
ClickHouse是一款剖析零碎,详情请参见ClickHouse官网文档。ClickHouse提供了Docker镜像,详情请参见ClickHouseDocker镜像文档。
执行如下命令,部署ClickHouse。
docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -p 8123:8123 yandex/clickhouse-server
- 在PolarDB-X和ClickHouse中创立测试库和表。
(1) 执行如下命令,登录PolarDB-X数据库。
mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456
(2) 执行如下SQL语句,创立数据库testdb。
CREATE DATABASE testdb;
(3) 执行如下SQL语句,应用数据库testdb。
USE testdb;
(4) 执行如下SQL语句,创立test表。
CREATE TABLE test(id INT(11) AUTO_INCREMENT PRIMARY KEY,name CHAR(20) not null );
(5) 输出exit退出数据库。
(6) 执行如下命令,登录ClickHouse数据库。
docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server
(7) 执行如下SQL语句,创立数据库testdb。
CREATE DATABASE testdb;
(8) 执行如下SQL语句,应用数据库testdb。
USE testdb;
(9) 执行如下SQL语句,创立test表。
Create Table test(id INT(32),name CHAR(20)) Engine = MergeTree() Order By id;
(10) 输出exit退出数据库。
- 运行Canal Client生产并投递增量变更。
通过以上步骤,您曾经筹备好了PolarDB-X、Canal Server和ClickHouse三个容器,并且在源端(PolarDB-X)和指标端(ClickHouse)建好了测试用的数据库和表。接下来咱们通过Canal Client生产Canal Server获取的增量数据,并将源端DML中的Insert事件投递到ClickHouse中。
(1) 执行如下命令,应用yum装置JDK 1.8。
yum -y install java-1.8.0-openjdk*
(2) 执行如下命令,下载polardb-x-to-clickhouse-canal-client.jar投递代码文件。
wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/polardb-x-to-clickhouse-canal-client.jar
(3) 执行如下命令,运行polardb-x-to-clickhouse-canal-client.jar代码文件。
java -jar polardb-x-to-clickhouse-canal-client.jar
留神:请勿中断投递代码文件,否则会造成投递失败。
(4) 投递链路已胜利买通,接下来您能够在源端(PolarDB-X)执行INSERT语句,并察看指标端(ClickHouse)中的数据变动。
在试验页面,单击右上角的图标,创立新的终端窗口。
(5) 在新的终端窗口中,执行如下命令,登录PolarDB-X数据库。
mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456
(6) 执行如下SQL语句,应用数据库testdb。
USE testdb;
(7) 执行如下SQL语句,插入一条数据。
INSERT INTO test(name) values("polardb-x"), ("is"), ("awsome");
(8) 输出exit退出数据库。
(9) 执行如下命令,登录ClickHouse数据库。
docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server
(10) 执行如下SQL语句,应用数据库testdb。
USE testdb;
(11) 执行如下SQL语句,查问test表
SELECT * FROM test;
返回后果如下,您能够看到指标端(ClickHouse)接管到投递过去的数据。
5. 理解更多
- 如果您想理解更多无关PolarDB-X分布式事务实现原理,详情请参见PolarDB-X分布式事务实现原理(一)。
- 如果您想理解更多无关PolarDB-X全局Binlog解读,详情请参见PolarDB-X全局Binlog解读。
- 如果您想理解更多无关PolarDB-X全局Binlog解读之DDL,详情请参见PolarDB-X全局 Binlog解读之DDL。
祝贺实现