canal实现mysql同步到clickhouse
一、下载和安装
#服务端(监听)
wget https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.deployer-1.1.6.tar.gz
#客户端(调用端)
wget https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.adapter-1.1.6.tar.gz
#可视化界面
https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.admin-1.1.6.tar.gz
二、canal的工作原理
1、mysql的主从复制过程
- Master主库将改变记录、写到二进制日志binlog中
- Slaver从库向MysqlMaster发送dump协议,将master主库的binary log events拷贝到中继日志(relay log)
- Salver读取并重做中继日志中的事件,将改变的数据同步到自己的数据库
2、canal工作原理
伪装成slaver,从master复制数据
3、使用场景
canal是阿里otter(阿里用于异步数据库之间的同步框架)的一部分
常用场景1:更新缓存
常用场景2:抓取业务表的增量变化(同步数据到另外一个数据库中)
三、mysql开启binlog日志
vim /etc/mysql/my.cnf
server-id=1
# 指定binlog日志存储位置
log-bin=/var/lib/mysql/mysql-bin
# 开启GTID模式
gtid-mode=ON
# 设置主从强一致性
enforce-gtid-consistency=1
# 记录日志
log-slave-updates=1
binlog_format=ROW
#binlog-do-db 具体要同步的数据库
binlog-do-db = yfc
重启mysql使配置生效:
sudo service mysql restart
查看binlog日志文件列表:
show binary logs;
四、安装部署canal
1、canal-devloper
1、解压文件
tar -zxvf canal.deployer-1.1.6.tar.gz
2、更改配置
1、canal.properties (系统根配置文件)
指定目的文件
2、instance.properties(instance.properties的优先级高于canal.properties)
实际需要修改的配置文件:
需要修改的几处配置
#源数据库地址
canal.instance.master.address=localhotse:3306
#查询元数据库中的配置
canal.instance.master.journal.name=mysql-bin.000003
canal.instance.master.position=194#........
#数据的账号和密码
canal.instance.dbUsername=root
canal.instance.dbPassword=123456
canal.instance.connectionCharset = UTF-8
show master status命令列出了日志位点信息,包括binlog file,binlog position等
canal.instance.dbUsername=root
canal.instance.dbPassword=123456
canal.instance.connectionCharset = UTF-8
回到主目录启动服务:
sh bin/startup.sh
查看启动日志
tail -n 100 logs/canal/canal.log #查看实例的日志
tail -n 100 logs/example/example.log
至此:canal服务端启动成功
2、canal-adapter
注:我在搭建cklickhouse的时候没有默认没有设置账户和密码,所以账号密码不用填
srcDataSources:defaultDS:url: jdbc:mysql://localhost:3306/yfc?useUnicode=trueusername: rootpassword: Aa123123canalAdapters:- instance: example # canal instance Name or mq topic namegroups:- groupId: g1outerAdapters:- name: logger- name: rdbkey: mysql1properties:jdbc.driverClassName: ru.yandex.clickhouse.ClickHouseDriverjdbc.url: jdbc:clickhouse://localhost:8123/yfc?useUnicode=truejdbc.username: defaultjdbc.password:
修改同步表文件:
dataSourceKey: defaultDS
destination: example
groupId: g1
outerAdapterKey: mysql1
concurrent: true
dbMapping:database: yfctable: sku_infotargetTable: yfc.sku_infotargetPk:id: id
# mapAll: truetargetColumns:id:name:role_id:c_time:test1:etlCondition: "where c_time>={}"commitBatch: 3000 # 批量提交的大小## Mirror schema synchronize config
#dataSourceKey: defaultDS
#destination: example
#groupId: g1
#outerAdapterKey: mysql1
#concurrent: true
#dbMapping:
# mirrorDb: true
# database: mytest
加载顺序:bootstrap.yml (配置如下)> application.yml
3、canal-admin
进入conf配置文件编辑
如下图:
执行sql脚本(使用可视化客户端需要在sql中初始化脚本canal_manager.sql)
成功标志:
新增一条数据看看:
修改
删除:
至此,mysql通过canal同步数据结束
canal实现mysql同步到clickhouse相关推荐
- canal实现mysql同步Elasticsearch数据linux中安装ELK
linux中ELK数据同步 前言 ElasticSearch安装 下载安装包&&添加es用户 启动 ElasticSearch HEAD安装 下载&&安装 配置 设置跨 ...
- es 全量同步mysql_使用canal将mysql同步到es中
因为自己项目中需要用到mysql数据同步到es中,查找了相关资料最后决定用canal来做,所以便有了本文,下面一起来看如何使用canal吧 canal教程 根据 https://github.com/ ...
- mysql 分词搜索_实战 | canal 实现Mysql到Elasticsearch实时增量同步
题记 关系型数据库Mysql/Oracle增量同步Elasticsearch是持续关注的问题,也是社区.QQ群等讨论最多的问题之一. 问题包含但不限于: 1.Mysql如何同步到Elasticsear ...
- canal实现mysql数据实时同步es
前言 canal是阿里开源的一款用于同步mysql数据到其他数据存储的中间件,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 在搭建mysql服务器主从同步的时候,我们知道,备 ...
- Canal 实现 Mysql数据库实时数据同步
简介 1.1 canal介绍 Canal是一个基于MySQL二进制日志的高性能数据同步系统.Canal广泛用于阿里巴巴集团(包括https://www.taobao.com),以提供可靠的低延迟增量数 ...
- 增量同步_实战 | canal 实现Mysql到Elasticsearch实时增量同步
题记 关系型数据库Mysql/Oracle增量同步Elasticsearch是持续关注的问题,也是社区.QQ群等讨论最多的问题之一. 问题包含但不限于: 1.Mysql如何同步到Elasticsear ...
- canal deployer+canal adapter自动同步MySQL数据到ElasticSearch
一.安装Elastic Search 6.8 1.下载 Elastic Search 6.8资源下载 2.部署环境配置 创建用户(es不能使用root启动,否则报错) adduser elastic ...
- Mysql同步数据到Elasticsearch(实时Canal)
这里只是作为一个想法,Canal有监听binlog文件的功能.所以简单看了一下Canal的入门使用. 后续Canal实时数据同步的功能希望不会被我阉割......当然有大佬已经实现或者有其他方法实现m ...
- liunx下通过Canal将MySQL数据同步到Elasticsearch
liunx下通过Canal将MySQL数据同步到Elasticsearch 一.canal背景信息 Canal是Github中开源的ETL(Extract Transform Load)软件 cana ...
最新文章
- R语言:时间序列常用函数
- ASP.NET MVC CheckBoxFor为什么会生成hidden input控件
- c++builder 运行网站的api_04 将您的API Builder Docker映像发布到AMPLIFY运行时服务(ARS)...
- 什么是代码调试(debugging)?进行代码调试的基本方法有哪些?
- android 关于Uri.parse和uri.fromFile的区别
- 在32位windows 7下安装PyLucene
- 鸡肋 - cacheAsBitmap
- 【音效处理】Reverb 混响算法简介
- 如何在WordPress中使用SEO写作助手来改善SEO
- 操作系统实验二:银行家算法
- 【SpringBoot】63、SpringBoot中教你手把手封装自己的starter(xxl-job-spring-boot-starter)
- 【IOS网络通信】socket第三方库 AsyncSocket(GCDAsyncSocket)
- 【高数】交换二次积分次序时,为什么要观察上下限大小关系?
- conda 配置R虚拟环境并安装 monocle 包
- 决策树概述+模块介绍+重要参数(criterion+random_statesplitter+减枝参数+目标权重参数)+回归树(参数+实例+拟合正弦曲线)+泰坦尼克号生存者预测实例
- android自定义打电话界面,两种Android打电话实现方法
- HTML简单的网页制作期末作业【NBA勒布朗詹姆斯篮球明星】HTML+CSS+JavaScript
- 基于问答对的问答系统方案设计
- javaweb学习记录-qqzone项目-结构分析
- VirtualBox网络之仅主机(Host-Only)网络