使用Canal实现ClickHouse实时同步MySQL数据

ClickHouse作为OLAP分析引擎已经被广泛使用,数据的导入导出是用户面临的第一个问题。由于ClickHouse本身无法很好地支持单条大批量的写入,因此在实时同步数据方面需要借助其他服务协助。本文给出一种结合Canal+Kafka的方案,并且给出在多个MySQL实例分库分表的场景下,如何将多张MySQL数据表写入同一张ClickHouse表的方法,欢迎大家批评指正

我的需求就是将mysql多张表的数据实时同步到clickhouse中,参考了很多网上的资料,写的都不是很好,有的配置完成后,就会报错,今天终于实现了该功能,分享给大家。

我主要利用canal来实现ClickHouse实时同步MySQL数据,本次不考虑接入kafka等mq

  • 配置mysql
  • canal安装配置
  • canal-client安装配置
  • 创建clickhouse的数据库和表
  • 结果展示

1. 配置mysql

开启binlog
# mysql配置文件/etc/my.cnf添加下面配置
vi  /etc/my.cnf

#插入下面内容
server-id        = 1
log_bin          = /var/lib/mysql/bin.log
binlog-format    = row # very important if you want to receive write, update and delete row events
# optional
expire_logs_days = 30
max_binlog_size  = 768M
# setup listen address
bind-address     = 0.0.0.0   
新增同步账号
#登陆mysql,执行下面命令,创建账号aaa,密码为123456

 CREATE USER 'maxwell'@'%' IDENTIFIED BY '123456';
 GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';
 flush privileges;  

2. canal安装配置

下载 canal, 访问 release页面 , 选择需要的包下载, 如以 1.1.4 版本为例
#下载canalan安装包
wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deployer-1.1.4.tar.gz

#解压到指定目录
mkdir -p /usr/tool/canal
tar zxvf  canal.deployer-1.1.4.tar.gz  -C  /usr/tool/canal

#解压后进入目录,结构如下
drwxr-xr-x   7 awwzc  staff   238 12 14 23:34 bin
drwxr-xr-x   9 awwzc  staff   306 12 14 23:32 conf
drwxr-xr-x  83 awwzc  staff  2822 12 14 23:30 lib
drwxr-xr-x   4 awwzc  staff   136 12 14 23:34 logs

# canal启动时会读取conf目录下面的文件夹,当作instance,进入conf目录下复制example文件夹
cp -R  example/  maxwell/

#移除example文件夹
mv -rf example

#修改canal.properties(一定要修改)
# instance列表,conf目录下必须有同名的目录
canal.destinations = maxwell

#修改maxwell文件夹下面的instance.properties文件下面几项为你自己的数据库配置即可
vi conf/maxwell/instance.properties

# position info
canal.instance.master.address=192.168.0.102:3306

# username/password
canal.instance.dbUsername=maxwell
canal.instance.dbPassword=123456

# 启动,安装目录下执行以下命令,server,instance出现下面日记说明启动成功
bin/startup.sh
# 查看server日记,会出现以下日记
tail -200f  logs/canal/canal.log

2019-1
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值