cloud-canal搭建使用
[TOC]
介绍
CloudCanal 是一CloudCanal 是一款数据迁移同步工具,帮助企业快速构建高质量数据流通通道,产品包含 SaaS 模式和私有输出专享模式。开发团队核心成员来自大厂,具备数据库内核、大规模分布式系统、云产品构建背景,懂数据库,懂分布式,懂云产品商业和服务模式。款数据迁移同步工具,帮助企业快速构建高质量数据流通通道,产品包含 SaaS 模式和私有输出专享模式。开发团队核心成员来自大厂,具备数据库内核、大规模分布式系统、云产品构建背景,懂数据库,懂分布式,懂云产品商业和服务模式。
核心能力
数据迁移
数据迁移 将指定数据源数据全量搬迁到目标数据源,支持多种数据源,具备断点续传、顺序分页扫描、并行扫描、批量写入、并行写入、数据条件过滤等特点,对源端数据源影响小且性能好,同时满足数据轻度处理需求。
数据迁移 可选搭配 结构迁移、迁移后指定时长数据同步、数据校验,满足可能的业务平滑切换需求。
数据同步
数据同步 通过消费源端数据源增量操作日志,准实时在对端数据源重放,以达到数据同步目的,支持多种数据源,具备断点续传、DDL 同步、边同步边校验、对端事务保持、高性能对端写入、数据条件过滤等特点。
数据同步 可选搭配 结构迁移、数据初始化(全量迁移)、单次或定时数据全量校验,既便利,又能满足业务长周期数据同步对于数据质量的要求。
结构迁移
结构迁移 帮助用户快速镜像指定数据源结构,具备类型转换、数据库方言转换、命名映射等特点,可独立使用,也可作为 数据迁移 或 数据同步 准备步骤,灵活满足新数据构建需求。
数据校验
数据校验 让数据质量可衡量,可单独使用,也可配合 数据迁移 或 数据同步 使用,具备全量校验、增量校验、采样率、定时执行、校验数据条件过滤等特性,满足用户灵活的数据质量验证需求。
使用场景
云上云下、多云数据生态构建
不同类型业务、开发和生产、主数据和数仓等不同维度数据放置于多云或云上云下环境,以满足高弹性、高性价比、可控性、安全合规等需求。CloudCanal 安全通信、稳定性、主流数据源支撑、全面的功能很好地满足此场景要求。
实时数仓构建
数据实时多维删选、聚合、链接在业务场景中越来越多,对于'快'的诉求永不停歇,找到一个强大的实时数仓同时,如何让主数据流畅、实时到达也成为了一个关键需求,CloudCanal 主流数仓支撑很好满足此类场景需求。
周边业务异步化
高并发业务的其中一个重要优化即同步操作 只保留最关键操作 ,其他操作皆 异步化 ,通过 消息订阅模式 补完流程,但写消息中间件有很多细节需要注意,包括如何保持事务,如何规避消息中间件不可用等问题, CloudCanal 通过 链接数据增量变更 和 消息中间件,主业务不需要关注消息中间件即可完成业务的异步化。
数据按需抽取同步
对于业务型 SaaS 平台,快速抽取同步指定用户数据构建专享服务是一项高价值业务,CloudCanal 数据条件过滤功能让这个工作顺畅进行。
数据集散
分散于各地的门店、网点产生订单等行为数据,迁移同步到云数据库、云数仓,再将数据归档到云上或自建大数据系统。完整的数据集散生态构建,CloudCanal 跨网络部署、容灾重试策略、主流数据库支撑很好匹配此场景诉求。
windows安装CloudCanal
下载安装包
环境准备
部署cloudcanal会使用8111、9090、55000、25000、55005、7007这几个端口,请保证其他应用不要占用这些端口。控制台访问请使用chrome浏览器,其他浏览器没有经过验证。
规格建议
操作系统: Windiws
硬件架构: x86体系,不支持mac的M1,不支持虚拟机(例如vmware、virtualbox)和windows的linux子系统
CPU: 4核
内存:8GB
docker环境准备
如果您的机器上没有docker环境,可以参考以下链接安装docker。同时docker desktop不仅包含了docker,也包含了docker-compose。
在安装好docker后,可以参照设置 -> Resouces -> ADVANCED下,建议将内存限制至少调至8GB。
因为机器启动任务时会有预检策略,如果容器为默认的2GB限制,内存预检可能无法通过
解压安装包
我们一般会将CloudCanal压缩成7z包,如果您的电脑上没有7z压缩软件,可以去以下链接下载
解压目录如下
主要分为三大块:
- 镜像:包含四个tar压缩文件
- 脚本:启动、更新和停止,以及scripts运维脚本目录
- 日志与配置文件:日志为docker-compose启动日志,配置文件为docker-compose配置文件
启动CloudCanal
在解压后的目录下,在Windows的CMD窗口中打开(确保处于解压后的目录下),分别输入以下命令
# 创建mysql的volume
docker volume create clougence_mysql_volume
# 先将镜像文件load至本地
docker load < console.tar && docker load < mysql.tar && docker load < sidecar.tar && docker load < prometheus.tar
# 用docker创建cloudcanal使用的网络
docker network create --subnet 172.31.238.0/24 --gateway 172.31.238.1 cloudcanal-network
# 用docker-compose命令启动
docker-compose up
确认启动成功
启动大概会耗时1分钟左右,启动成功后可以看到如下内容,则可以访问控制台http://{您部署机器的ip}:8111
访问页面如下:
- 登录页
- 登录完首页
centos/ubuntu安装cloudcanal
依赖安装
- 7z安装:由于cloudcanal安装包使用的是7z压缩所以需要使用7z软件解压
centos安装7z
yum install -y p7zip p7zip-plugins
ubuntu安装7z
apt-get install p7zip-full p7zip-rar
- wget、lrzsz安装:wget作为centos/ubuntu系统的文件使用下载工具。lrzsz作为上传软件的工具使用,安装后即可直接从笔记本往xshell里拖拽文件
centos安装lrzsz、wget
yum -y install lrzsz wget
ubuntu安装lrzsz、wget
yum -y install lrzsz wget
安装包下载
- 最新版收费,以下是老版本下载地址
解压及安装
- 下载完成后在下载文件的同一目录下执行:
7za x cloudcanal.7z
- 解压完目录如下:
- 安装
sh startup.sh
- 看到如下返回及说明安装成功
使用教程(必读)
为了方便您一开始快速体验CloudCanal,我们提供的社区版已经自动帮你做好了如下初始化的工作。请务必使用提供的默认账号登入,这样可以省去自己添加机器的步骤,方便您快速体验。
初始化好了默认的账号:
- 用户名:test@clougence.com
- 密码:clougence2021
- 已经默认帮添加好了测试的MySQL数据源,其中cloudcanal_test_a(源端)和cloudcanal_test_b(目标端)这两个库中已经帮准备好了用于测试的表和数据,可以方便您体验整个流程
- 默认已经帮忙添加了一台运行机器,用于执行具体的数据同步任务,所以直接添加数据源即可开始创建同步任务
- 遇到需要发送短信的场景,为了测试方便,短信验证码都为777777
添加数据源
- 创建数据源需要对数据源的MySQL数据库打开binlog日志及GTID(其他类型的数据库根据官方文档增加配置)
mysql需要在配置文件增加的配置如下:
server-id = 2
log-bin = mysql-bin
gtid_mode = on
enforce_gtid_consistency = on
- 1:新建数据源
- 2:选择自建数据库,数据库类型自定,网络地址最好添加一个内网和外网的地址,账号为数据库账号密码,如果无法连接请检查MySQL数据库的授权规则、防火墙以及云服务器白名单,描述根据自己情况填写,位置选不限即可,选完之后保存即可。
创建任务
- 源&目标设置:选择原库和目标库(同步库和被同步库。例如从A库同步到B库即,A是原库B是目标库),字符集为数据库字符集,选完之后需要测试连接,测试成功才可以选择数据库映射(即从源数据库的某个库同步到目标库的某个库。库名需要一直)。目前并不支持双向同步如果需要双向同步则需要新建一个A到B的同步任务一个B到A的同步任务
- 功能配置:选择任务类型及规格,一般默认即可。
- 选择表及操作:选择需要同步的表及同步的操作(写入,修改,删除)
- 选择映射的字段:选择原字段对应的目标字段
- 确认:最后确认任务配置是否正确
- 创建任务后可以在任务管理内看到刚才创建的任务,点击详情即可看到任务详情,启动成功后即可看到同步的数据,#在任务详情内的数据迁移项看到的已同步数据是指任务启动后从源数据库同步到目标数据库的数据条数有多少条数据会显示已同步多少条,如果主键重复则不会对此条数据执行任何操作#
CloudCanal 管控MySQL访问
- 账号:clougence
- 密码:123456
- 端口: 25000
- 在宿主机上可以直接以下命令访问docker mysql
mysql -uclougence -h127.1 -P25000 -p123456
查看日志
cloudcanal docker版的日志路径在压缩包解压路径下。
- console日志: ${安装包解压路径}/console_data/logs/cloudcanal/console.log
- sidecar: ${安装包解压路径}/console_data/logs/cloudcanal/sidecar/sidecar.log
- tasks: ${安装包解压路径}/console_data/logs/cloudcanal/tasks/xxx.log