Zero

用途:

(部分功能未开源)
已开源地址: https://github.com/gitstliu/MysqlToAll
未开源部分请联系博主
一种输入可以产生多种途径的输出。
已支持的输入输出:

input:

  1. mysql
output:
  1. datafile
  2. elasticsearch
  3. hbase
  4. kafka
  5. mongodb
  6. mysql
  7. postgresql
  8. redis
  9. rediscluster

input:

  1. mongo
output:
  1. elasticsearch
  2. hbase

特点:

input mysql支持多数据源多接收方

  1. 单数据源配置多接收方时,支持近似数据同步(在出错的情况下可能相差最后一批数据)
  2. redis及redis-cluster支持key格式化配置,支持json和分割字符串两种方式的数据存储。支持多种数据类型的处理
  3. mongodb支持audit模式(可以把指定数据表的变化存入mongodb)和normal两种模式,并支持高速模式(打开时不支持upsert,关闭支持upsert)可以完全发挥mongodb的高性能
  4. postgresql不支持upsert
  5. mysql支持upsert(实现mysql的目的是为了支持TIDB)
  6. hbase支持upsert

input mongo支持多数据源多接收方

  1. 单数据源配置多接收方时,支持近似数据同步(在出错的情况下可能相差最后一批数据)
  2. hbase支持audit模式(可以把制定数据表的变化存入es)和normal两种模式,支持upsert
  3. es支持audit模式(可以把制定数据表的变化存入es)和normal两种模式,支持upsert

注意:

  1. 不要对mysql表唯一自增ID进行修改,否则可能造成数据不一致
  2. 不要对mongo配置为key的字段进行更改,否则可能造成数据不一致
  3. 由于hbase本身特性,尽量使用单表同步
  4. 配置hbase时要注意配置本地hosts文件,将机器名指向对应ip地址,否则会报无法链接服务器

配置方法

canalconfigs

xxx.toml canal配置文件
xxx.pos binlog解析位置文件

config

config.toml 输出源配置文件

QQ

加群的目的是? MysqlToAll

性能测试数据

测试机4C 8G

场景:混合渠道-同时向redis、redis-cluster、kafka、es、本地文件串行写入。双数据库同步(两个mysql主同时同步binlog)
场景:单一渠道-redis。单数据库同步
场景:单一渠道-redis-cluster。单数据库同步
场景:单一渠道-elasticsearch。单数据库同步
场景:单一渠道-kafka。单数据库同步
场景:单一渠道-本地文件。单数据库同步