本期试验将领导您应用 PolarDB-X+Canal+ClickHouse 搭建实时剖析零碎。
本期收费试验地址
本期教学视频地址
前置筹备
假如曾经依据前一讲内容实现了 PolarDB- X 的搭建部署,能够胜利链接上 PolarDB- X 数据库。
部署 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)接管到投递过去的数据。
原文链接
本文为阿里云原创内容,未经容许不得转载。