### **体验简介**

场景将提供一台配置了CentOS 8.5操作系统的ECS实例(云服务器)。通过本教程的操作带您体验如何将PolarDB-X通过Canal与ClickHouse进行互通,搭建一个实时分析系统。[点击前往](https://developer.aliyun.com/adc/scenario/a734d982339845f18baa71d3cd5a4387)

![](https://oscimg.oschina.net/oscnet/up-ae9e45c2030bc818ca6e2c26ad66cc1a9fd.jpg)

### 实验准备

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
```

2.  执行如下命令,安装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
```

2.  执行如下命令,查看MySQL版本号。

```
mysql -V
```

返回结果如下,表示您已成功安装MySQL。

![](https://oscimg.oschina.net/oscnet/up-f7f27b4edd3976106da2a78d916ed9ac417.png)

3.  执行如下命令,登录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数据库。

![](https://oscimg.oschina.net/oscnet/up-e63b927d1acc67b695d6f55b2cfc6bddee3.png)

4.  输入exit退出数据库。

![](https://oscimg.oschina.net/oscnet/up-ffbd9f207bd97161be8cf4800a66e2972af.png)

4\. 搭建实时分析系统

本步骤将指导您如何使用PolarDB-X+Canal+ClickHouse搭建实时分析系统。

1.  部署Canal。

Canal是一款流行的MySQL Binlog增量订阅工具,详情请参见[Canal说明文档](https://github.com/alibaba/canal)。Canal提供了Docker镜像,详情请参见[Canal Docker镜像文档](https://github.com/alibaba/canal/wiki/Docker-QuickStart)。

(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
```

2.  部署ClickHouse。

ClickHouse是一款分析系统,详情请参见[ClickHouse官方文档](https://clickhouse.com/)。ClickHouse提供了Docker镜像,详情请参见[ClickHouseDocker镜像文档](https://hub.docker.com/r/clickhouse/clickhouse-server)。

执行如下命令,部署ClickHouse。

```
docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -p 8123:8123 yandex/clickhouse-server
```

3.  在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退出数据库。

![](https://oscimg.oschina.net/oscnet/up-8229ae5125d6f1e983521185ac1f69c8c20.png)

(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退出数据库。

4.  运行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)中的数据变化。

在实验页面,单击右上角的![](https://oscimg.oschina.net/oscnet/up-bdb6278beff58068d7ac390be2bf7ff5aeb.png)图标,创建新的终端窗口。

![](https://oscimg.oschina.net/oscnet/up-18f49a82a581ec65c9489be6cbcb9b19040.png)

(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)接收到投递过来的数据。

![](https://oscimg.oschina.net/oscnet/up-f482428699bbd6ebc140bbcefe6d54d3c9c.png)

5\. 了解更多

-   如果您想了解更多有关PolarDB-X分布式事务实现原理,详情请参见[PolarDB-X分布式事务实现原理(一)](https://zhuanlan.zhihu.com/p/338535541)。

-   如果您想了解更多有关PolarDB-X全局Binlog解读,详情请参见[PolarDB-X全局Binlog解读](https://zhuanlan.zhihu.com/p/369115822)。
    
-   如果您想了解更多有关PolarDB-X全局Binlog解读之DDL,详情请参见[PolarDB-X全局 Binlog解读之DDL](https://zhuanlan.zhihu.com/p/377854011)。

恭喜完成

阿里云体验有奖:如何将 PolarDB-X 与大数据等系统互通相关推荐

  1. 阿里云智能视觉首席研究员华先胜:视觉大数据智能分析、识别和搜索

    What's Happening 从智能交通到教室监控再到视频直播等等场景,生活中每天都在产生海量的图像/视频数据.在这些场景中,对图像/视频数据进行智能分析.挖掘其中的内容以及对其中的事件进行实时的 ...

  2. 阿里云EMR 2.0:重新定义新一代开源大数据平台

    摘要:本文整理自阿里云高级产品专家何源(荆杭)在 阿里云EMR2.0线上发布会 的分享.本篇内容主要分为三个部分: 开源大数据的痛点及EMR产品历程 EMR2.0 新特征 总结 一.开源大数据的痛点及 ...

  3. 阿里云与气象局达成合作 深挖气象大数据商业价值

    阿里云宣布与国家气象局达成合作,向公众开放气象服务数据,并共同深挖气象大数据的商业价值. 中国气象局公共气象服务中心主任.中国天气网CEO刘汉博介绍,此次公开的气象服务数据为国内县级以上站点实况,包含 ...

  4. Leanote使用mysql_《搭建个人Leanote云笔记本》阿里云体验实验室 教程

    体验实验室简介 阿里云开发者实验室,提供免费阿里云资源,丰富的云计算应用场景, Step by Step 完成云产品的体验 教程介绍 本教程将介绍如何搭建个人Leanote云笔记本. 场景体验 阿里云 ...

  5. 【阿里云盘资源分享:FPGA工具及相关数据资源高速下载】

    阿里云盘资源分享:FPGA工具及相关数据资源高速下载 FPGA工具及相关数据资源高速下载 第一步:下载阿里云盘 第二步:使用方法 下面都是资源列表 FPGA工具及相关数据资源高速下载 第一步:下载阿里 ...

  6. 阿里云 | 如何恢复在ECS实例中误删除的数据

    概述 本文主要介绍在ECS实例中如何恢复误删除的数据. 详细信息 阿里云提醒您: 如果您对实例或数据有修改.变更等风险操作,务必注意实例的容灾.容错能力,确保数据安全. 如果您对实例(包括但不限于EC ...

  7. 2019云栖大会丨数字冰雹诠释行业大数据可视决策

    9月25日,一年一度的云栖大会在杭州云栖小镇拉开帷幕.云栖大会已成功举办十届,是国内数字科技.云计算.大数据等领域的标杆级盛会.大会聚集了来自世界上几十个国家的上千名科学家.CTO.企业家,以及对技术 ...

  8. 阿里云数据库开源发布:PolarDB三节点高可用的功能特性和关键技术

    简介:在3月2日的阿里云开源 PolarDB 企业级架构发布会上,阿里云数据库技术专家孟勃荣 带来了主题为<PolarDB 三节点高可用>的精彩演讲.三节点高可用功能主要为 PolarDB ...

  9. 阿里云数据库开源发布:PolarDB HTAP的功能特性和关键技术

    简介:在3月2日的阿里云开源 PolarDB 企业级架构发布会上,阿里云 PolarDB 内核技术专家严华带来了主题为<PolarDB HTAP详解>的精彩演讲.在PolarDB存储计算分 ...

最新文章

  1. c语言的256个字符,C语言版 256点FFT算法
  2. 宏基因组分析技术研讨会第5期-最后3个名额,下周开课
  3. java 调用父类的变量_java创建子类对象设置并调用父类的变量操作
  4. Django URL
  5. 判断一个对象是否存在某个键_面向工业大数据的对象存储技术实践
  6. ElasticSearch服务器操作命令
  7. [译]GC专家系列2:Java 垃圾回收的监控
  8. [蓝桥杯][算法提高VIP]学霸的迷宫(bfs+dfs)
  9. 【VB.NET】测验题目Quiz2
  10. 一款社区论坛小程序源码(修复登录图片发布上传问题)
  11. disk磁盘管理与Linux驱动编写
  12. 浏览器怪异模式和标准模式之间的区别 DTD
  13. 图算法之——dijkstra算法
  14. 机器学习——基于OpenCV和Python的智能图像处理(一)
  15. 调查了23款加速器,只剩这几款可以白嫖了!
  16. 多任务学习Multi-task Learning(MTL)概述
  17. 计算机中丢失msvcr100.dll怎么办,会声会影计算机中丢失MSVCR100.dll解决方案-计算机中丢失MSVCR100.dll怎么解决_好特教程...
  18. python武器代码_武器代码总结大全 BO开启秘籍的方法
  19. frequency bins解释
  20. HTML字符实体(关于amp;nbsp;amp;gt;amp;lt;等)

热门文章

  1. 介绍一个十分牛逼的GitHub看代码神器,零基础必学会的操作。
  2. Logback 日志过滤器的使用-日志分类归档方案
  3. GCN (Graph Convolutional Network) 图卷积网络
  4. 前端html通栏做法实践
  5. ipv6 neighbors 下fe80开头的地址
  6. centos 开机后提示failed to initialize packaging backend
  7. 罗爷:创新法律服务交易模式 找到你的专属lawyer
  8. 贸易款项中有俄罗斯等敏感国家的款项,企业及个人该如何收款?
  9. 【12月06日】A股全市场情绪指标整理分析
  10. Error CodeSignatureDoesNotMatch/Code MessageThe request signature we calculated does not mat...