本期试验将领导您应用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)接管到投递过去的数据。

原文链接

本文为阿里云原创内容,未经容许不得转载。