Bifrost 可以将 你 MySQL 里的数据, 全量 , 实时增量 同步到 :

Redis
MongoDB
ClickHouse
MySQL
Memcahe
RabbitMQ
ActiveMQ
Kafka
Http 自定义服务
Hprose RPC 自定义服务

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_docker

Bifrost特点:

支持 MySQL 所有存储类型
界面化动态灵活配置不同的数据表及目标库
多数据源,多种目标库支持
同时支持 增量 及 全量 数据同步
宕机后重启自动恢复配置
支持自定义插件开发,动态加载
支持 Email 及 微信企业号等监控报警功能
提供第三方监控平台访问接口(Http Basic验证)
支持对 Null 的解析,但对 Null 的支持程度,取决于插件的支持,如果有 Null 数据,请查阅 相关插件文档

Bifrost 还不足的地方:

支持批量刷数据的插件,在数据同步异常的情况下,不支持错过当前数据同步功能,例如: ClickHouse,Kafka
datetime,timestamp 解析还不支持精确到毫秒,毫秒部分将会自动被丢弃

支持MySQL 版本(经过测试):

5.1.73
5.5.42
5.6.36
5.7.18
8.0.11 (用户密码验证需要采用 mysql_native_password 方式)

1.官方地址

git地址:​​https://github.com/brokercap/Bifrost​

官方网站:​​https://www.xbifrost.com/​

帮助手册:​​https://wiki.xbifrost.com/​

在线体验:​​https://test.use.xbifrost.com:21037/login/index​​ (默认用户名和密码 Bifrost : Bifrost123)

2.环境准备

安装docker

3.安装

此处使用docker方式安装,其他方式请查看官网

docker pull jc3wish/bifrost
mkdir -p /data/BifrostData
docker run -d -p21036:21036 -v /etc/localtime:/etc/localtime -v /data/BifrostData:/linux/data jc3wish/bifrost

此时可以通过以下网址进行访问(用户名和密码是在 etc/Bifrost.ini 配置文件中配置的,默认用户名和密码 用户名:Bifrost 密码:Bifrost123):

https://10.2.3.123:21036/

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_docker_02

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_mysql_03

4.Bifrost的使用(同步1张表)

(1).mysql开启binlog
server_id = 1
log-bin=/var/lib/mysql/binlog/master-bin.log
max_binlog_size = 1G
binlog-format=ROW
expire_logs_days = 6

开启之后,然后在创建相应的库及表

(2).在Bifrost中添加mysql数据源

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_04

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_05

(3).点击提交后会提示你跳到同步目标表

ConnUri的配置:tcp://10.2.3.100:9000?username=default&password=123456&compress=true

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_06

(4).需要同步的库要表设置

点击数据源--》Setting

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_07

选择要同步的库及表

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_docker_08

点击add添加选择的表

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_09

右边的选项保持默认即可,点击批量提交

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_mysql_10

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_11

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_12

然后再次点击要同步的表sys_user

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_mysql_13

点击 刷新全量数据

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_14

选择对应的目标服务器

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_mysql_15

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_docker_16

然后在 数据源 点击 start 开启同步

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_docker_17

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_18

然后在 全量任务中点击--》start

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_docker_19

当状态变为over时表示同步结束了

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_docker_20

(5).查询clickhouse中数据是否同步成功

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_mysql_21

5.Bifrost的使用(同步全库)

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_22

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_mysql_23

此时可以看到添加成功

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_docker_24

此时点击旁边的 批量提交

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_mysql_25

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_docker_26

此时再次点击左边的AllTables 

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_docker_27

然后查看右边出现如下:

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_28

然后点击 刷新全量任务列表

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_mysql_29

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_30

此时点击start进行开始

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_31

此时状态会变成running,当状态变为over,表明数据同步成功。

使用brokercap / Bifrost将mysql数据 迁移到 clickhouse20.12.3.3_数据_32