Otter是阿里巴巴开源的增量数据同步工具,因为项目用到了,简单记录一下
简介
定位:基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统
项目地址:‘https://github.com/alibaba/otter’
工作原理
- 通过‘Canal’做数据库增量订阅,获取增量数据
- Web管理系统manager进行同步配置,推送到node节点
- node节点将同步状态反馈到manager上
- 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作
所以在建立数据同步时,需要满足的条件是:
- 搭建manager管理平台
- 数据源需要配置canal,如果是双向同步,两边都需要配置canal
- 位于同一个zookeeper集群
- 至少一个node节点
环境安装
- Docker安装模式
详见官方文档‘Docker_QuickStart’ - 手工安装模式
详见官方文档‘Manager_Quickstart’ ‘Node_Quickstart’
配置流程
通过manager平台来创建数据同步服务,流程如下
- 创建zookeeper
- 创建node
- 添加数据库配置
- 添加数据同步表配置
- 创建canal
canal对应一个数据源,每一个数据同步任务都需要至少一个canal,不能重复使用 - 创建channel
- 创建pipeline
channel下具体的数据同步任务,需要选择node和canal - 设置pipeline的数据同步映射规则
定义源数据表和目标数据表的同步关系 - 启动channel