乐趣区

关于数据库:阿里云体验有奖如何将-PolarDBX-与大数据等系统互通

体验简介

场景将提供一台配置了 CentOS 8.5 操作系统的 ECS 实例(云服务器)。通过本教程的操作带您体验如何将 PolarDB- X 通过 Canal 与 ClickHouse 进行互通,搭建一个实时剖析零碎。点击返回

试验筹备

1. 创立试验资源

开始试验之前,您须要先创立 ECS 实例资源。

  1. 在实验室页面,单击 创立资源
  2. (可选)在实验室页面左侧导航栏中,单击 云产品资源 列表,可查看本次试验资源相干信息(例如 IP 地址、用户信息等)。

阐明:资源创立过程须要 1~3 分钟。

2. 装置 PolarDB-X

本步骤将领导您如何装置 PolarDB-X。

  1. 装置并启动 Docekr。

(1) 执行如下命令,装置 Docker。

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

(2) 执行如下命令,启动 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 数据库。

PolarDB- X 反对通过 MySQL Client 命令行、第三方客户端以及合乎 MySQL 交互协定的第三方程序代码进行连贯。本试验场景次要介绍如何通过 MySQL Client 命令行连贯到 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. 输出 exit 退出数据库。

4. 搭建实时剖析零碎

本步骤将领导您如何应用 PolarDB-X+Canal+ClickHouse 搭建实时剖析零碎。

  1. 部署 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
  1. 部署 ClickHouse。

ClickHouse 是一款剖析零碎,详情请参见 ClickHouse 官网文档。ClickHouse 提供了 Docker 镜像,详情请参见 ClickHouseDocker 镜像文档。

执行如下命令,部署 ClickHouse。

docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -p 8123:8123 yandex/clickhouse-server
  1. 在 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 退出数据库。

  1. 运行 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。

祝贺实现

退出移动版