Bifrost ---- 面向生产环境的 MySQL 同步到Redis,ClickHouse等服务的异构中间件

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

v1.7.2-deving 
===========================
1. MariaDB GTID supported
 

v1.7.1-release   2021-02-09
===========================
1. fix binlog parser ddl(rename,drop) error
2. fix binlog parser error by  "/*notes*/" filter
3. plugin ck ddl update
4. plugin mysql ddl update ,supported tidb rename multi-table
5. mysql multi-gtid support
6. fix percona 8.0 char parser error
7. recovery binlog position calc update
8. beore and after ddl, callback a dummy begin and commit event
9. fix windows path error
10. db list show eventID
11. doc update
12. fix other bugs

v1.7.0-rc.01   2021-01-24
===========================
1. gtid supported
2. plugin ck ddl supported(add,change column)
3. plugin ck decimal64 tansfer decimal64, decimal128 and decimal256 tansfer to String
4. plugin mysql filter data auto_increment be first
5. fix other bugs

v1.6.6-release   2021-01-17
===========================
1. fix rename table binlog parser error bug
2. fix http basic auth bug

v1.6.5-release   2021-01-10
===========================
1. fixed mysql desc SchemaName error bug
2. fixed mysql ddl tansfer error bug
3. fixed history task may recovry bug
4. fixed history flow href error
5. mysql plugin error update
6. fixed may  time out contine bug
7. other bug fixed

 

v1.6.4-release   2021-01-03
===========================
1. 修复一个全量任务设置多线程同步造成的致命bug
2. fixed TRANSACTION_CONTEXT_EVENT,VIEW_CHANGE_EVENT,XA_PREPARE_LOG_EVENT filter error
3. add mysql version show
4. add http api doc
5. web view update and other bugs fixed

v1.6.3-release   2020-12-27
===========================
1. 修复plugin mysql 主键非自增的时候丢数据的bug
2. 修复plugin ddl 同步造成的阻塞的bug
3. 修复plugin 同步出错不报错而造成丢数据的bug
4. 修复dateime(6)类型默认值为0000-00-00 00:00:00.000000解析出错的bug
5. 流量统计优化减少对map的操作,界面流量显示优化
6. 用户登入验证Host支持多个Host配置,用逗号隔开
7. plugin clickhouse 优化对源是float类型的数据转换
8. 其他已知的部分bug修复及界面优化

v1.6.2-release   2020-12-20
===========================
1. 登入用户新增 Host 验证功能
2. 新增登入日志及自动禁IP功能

v1.6.1-release   2020-12-16
===========================
1. 新增对mysql time(1-6),datetime(1-6),timestamp(1-6) 的支持( binlog 解析由 @zhwei820 提交合并 )
2. 修复一个可以可能 造成丢数据的bug
3. mysql 插件支持不同步数据的功能,只支持 SQL DDL
4. 修复 binlog commit事件被过滤的bug

 
v1.6.x 
===========================
1. 框架优化及插件接口变更,方便开发人员介入开发
2. 修复clickhouse插件{$bifrostDataVersion} 标签为0的bug
3. 在线修改目标库地址,在线生效,不用再重启进程
4. 目标地址库,新增MinConn参数,可以设置保留最小连接池大小
5. 其他已知bug修复及界面显示优化
6. 位点保存记录,采用commit事件位点,解决在同步大事务数据的时候,重启后造成位点错误 ,而去自动寻找可解析的位点的问题
 
v1.5.x
===========================
1. 修复enum及其他可能解析错误的bug
2. clickhouse plugin 支持自动创建CK表结构同步
3. 新增模糊匹配表支持指定过滤部分表 不进行模糊匹配
4. 支持指定 arm 架构编译方式
5. 修复修改数据源连接地址后无效的bug
6. 验证邮箱是否合法正则变更
7. row event 解析对放弃tableId依懒,优化了row解析模块
8. 修复全量多线程同步并发造成的同步中断的bug
 
v1.4.x 
===========================
1.支持模糊匹配横拆表的同步配置,比如 binlog_field_test_* 的方式匹配 binlog_field_test_1,binlog_field_test_2
 
v1.4.5-release 2020-09-26
===========================
1. 修复 decimal 类型部分数据解析错误的bug
2. 修复报警配置删除不了的bug
3. 修复 windows 下创建 data 路径出错的bug
4. 修复 全量任务 部分情况表有数据并不查询不出数据的bug
5. 修复 全量任务 AllTables 的时候,空指针错误bug
6. 通道操作加上锁管理,解决存在因cpu缓存不致造成的bug
 
v1.4.4-release 2020-09-23
===========================
1. binlog同一个事务 map 事件和row事件被分割在不同binlog文件中出现造成空指针解析错误的bug
2. 代码优化,统一使用一个锁,减少逻辑复杂度
3. 代码优化,解析状态码变更
4. bash 语法 ubuntu下兼容
5. TableCount 插件界面使用不了的bug修复
 
v1.4.3-release 2020-09-12
===========================
1.修复因为因为没加锁,数据源位点获取位点可能不一致的bug
2.plugin clickhouse {$BifrostDataVersion} 标签采用计数器保证同一批次不同数据值不一样
3.当只有非模糊匹配的表同步配置的时候,同步配置丢失的bug修复
4.同步配置没有同步任何数据,位点为0的时候,数据源位点恢复失败bug修复
5.新增对binlog_row_image参数的提示判断
 
v1.4.2-release 2020-09-05
===========================
1. 新复mysql binlog_checksum=none解析错误bug
2. 修复全量任务查询数据显示数据错误bug
3. plugin clickhouse 主键支持 标签使用
4. 修复部分stmt,rows close 先后逻辑问题
5. plugin kafka 新增 Timeout,RequiredAcks 配置参数
6. 修复全量任务非between优化查询,总数对不上的bug
 
v1.4.1-release 2020-08-31
===========================
1. 修复获取连接id,stmt未关闭的bug
2. 修复 binlog_field_test_* 会匹配 出 binlog_field_test,all_binlog_field_test 的bug,自动转成 ^binlog_field_test_(.*) 不会匹配 binlog_field_test 出来
3. 全量任务执行部分表之后不再执行的bug修复
4. 全量任务列表显示正在执行的表的条数及已拉取的条数
5. 位点恢复的过程中,第一个同步就是同步异常,恢复位点错误的bug
6. 新增表同步的暂停和启动功能
7. http 插件 推送方式变更为json raw 格式
8. 配置界面新增表搜索功能
9. linux 环境编译在没有go环境的情况下自动yum安装golang
10. 首页版本判断逻辑更新
11. 部门 api 接口变更
 
v1.4.0-release 2020-08-24
===========================
1.支持模糊匹配横拆表的同步配置,比如 binlog_field_test_* 的方式匹配 binlog_field_test_1,binlog_field_test_2
2.新增版本更新提示及最新动态显示
3.新增plugin_commit_timeout,plugin_sync_retry_time 参数配置(对同步报警配置可能存在影响)
4.编译目录新增bin文件侠
5.配置文件路径新增以etc目录和Bifrost文件夹根目录 为相对路径功能
6.没有配置同步的表,将不再做数据恢复
 
v1.3.2-release 2020-08-07
===========================
1.http插件 同步失败也不重试的bug修复
2.ck插件设置的主键匹配错误的bug
3.修复mysql,ck插件由于指针可能存在数据错乱的bug
 
v1.3.1-release 2020-07-26
===========================
1.导入恢复配置,新增用户和报警配置恢复
2.ck 追加模式同步,遍历修改为从最先数据开始写入
3.随机生写数据写到mysql更新(测试模块)
 
v1.3.0-release 2020-07-17
===========================
1.mysql json 类型的支持
2.新增支持 {$json["key1"][0]} 的标签
3. 对于 deciaml 等类型解析还存在问题
 
v1.2.4-release 2020-07-17
===========================
1.全量获取sql语句函数锁变更
2.修复NUMERIC_PRECISION值 获取错误的bug
2.修复binlog 解析在mysql8版中因获取的值返回类似从uint64变成uint32造成解析不了的bug
 
v1.2.3-release 2020-07-07
===========================
1.修复mysql8.x 在information_schema表返回的类似变更 造成的bug
 
v1.2.2-release 2020-06-10
===========================
1.修复mysql,ck 满批次丢失一条数据的bug
 
v1.2.1-release 2020-05-24
===========================
1.在非Bifrost 当前目录启动 tls 配置无效bug修复
2.全量任务获取表结构信息出错的bug修复
 
v1.2.1-rc.02 2020-05-18
===========================
1.全量任务多个同步线程对插件实例化数据进行区分优化
2.json类型字段在map event事件不再报错,但还不支持同步有json字段的表
3.全量任务判断是否同步完毕等优化
4.新增界面操作引导功能
5.修复文件队列读取出来set类型数据转换失败的问题
6.修复位点文件可能 修复出错的问题
7.clickhouse 客户端驱动包版本更新
8.提供强制gc的接口
9. 修复全量拉取数据mysql连接未关闭bug
10. 修复同一个表全量任务被覆盖的bug
11. 全量任务部分内存变量在结束的时候自动清空
12. plugin mysql 多个同步线程共用stmt造成的致命bug修复
13. plugin mysql 当目标表是自增主键并且没有填源表字段名的时候,过滤当前字段,不进行处理
14. mysql,clickhouse插件同步 修复源为bool值 目标表为非bool值 数据转换失败的bug
15. 调用bifrost server 接口,显示创建表sql
 
v1.2.1-rc.01 2020-05-13
===========================
1. 全量支持配置拉数据连接数及同步线程数,及 查询优化
2. 新增配置启用文件队列的功能
3. 修复文件队列ack出错bug
4. 修复clickhouse插件提交不了的bug
 
v1.2.0-rc.01 2020-05-10
===========================
1. mysql插件新增 普通模式,日志模式-修改, 日志模式-追加 ,三种模式
2. clickhouse 插件新增 将delete转成update的同步模式
3. clickhouse 新增{$BifrostDataVersion}标签,删除的时候会用到这个标签的字段,保证数据安全
4. 新增文件队列功能,在某个同步出现阻塞的时候,文件队列启动,防止出现阻塞其他同步的可能性
5. 全量任务 分页查询优化,自增主键 查询优化成 BETWEEN x AND y
6. 添加数据源的时候,权限验证,判断是否有足够权限解析binlog
7. MySQL 插件 没有绑定 源表字段及标签的字段,默认为 Null 值
8. ClickHouse 插件,没有绑定源表字段及标签的字段,转成相对应类型默认值
9. binlog解析新增报错内容,及不需要同步表将不再进行多余的表结构查询
 
v1.1.x 
==========================
v1.1.x 是一个重大理程杯版本,
1. 所有插件功能,功能新增了无数
2. 所有同步配置都是并行运行同步的
3. 优化了大量的binlog解析错误
4. 界面显示也提供了大量的更新
5. 对于 deciaml 等类型解析还存在问题
 
 
v1.1.1-release 2020-04-18
===========================
1. clickhouse插件delete合并一条sql执行
2. 全量任务查询sql查询分页语句通过子查询性能优化
3. 启动的时候获取正确位点新增部分日志
4. 修复mysql插件在数据库有存在特殊符号的时候报语句错误的bug
5. 修复mysql写入字段名是保留字段报错的bug
6. char存储字节大于255解析错误的bug
7. Mysql插件新增NullTransferDefault配置,可强制将NULL转成对应的默认值
8. 新复因mysql连接异常造成的崩溃问题
9. 修复多个null值的情况下,报Incorrect arguments to mysqld_stmt_execute 错误
 
v1.1.0-release 2019-12-08
===========================
1. redis 配置存储去掉了一个重复的 bifrost 字符串
2. toserver_queue_size 默认修改为 5000
 
 
v1.1.0-rc.01 2019-12-02
===========================
1. clickhouse 插件包更新
2. 配置保存失败,造成配置丢失的bug修复
3. 新增每5分钟定时保存一次配置
4. 插件新增指定默认参数的方法 setPluginParamDefault
5. 流量显示错误的bug 修复
6. pprof 需要登入后才能访问
 
v1.1.0-beta.21 2019-11-03
===========================
1. ClickHouse插件 int 类型之间类型转换, 内存溢出后强制转成0
2. 新增TableCount插件,用于统计每个表的insert,update,delete,及ddl 等情况,可以折线图展示出来
3. 新增 *.* 方式进行匹配数据表过滤,界面 AllDatabases 代表所有库,AllTables 代表所有表.
4. redis插件,假如配置了多少个ip则采用cluster方式连接,多个ip端口用 逗号 隔开
5. 假如不允许批量添加的插件,点击了 批量添加按钮或者选择的是 AllTables 则会进行提示不支持批量配置
 
v1.1.0-beta.20 2019-10-27
===========================
1. Bristol mysql 包更新,返回值直接转成换指定类型,而不是[]byte类型返回
2. binlog 解析完之后,新增Pri(主键)字段名
3. clickhouse 插件,新增decimal类型(但会有精度丢失),不建议使用
4. clickhouse 插件 对 Nullable 类型数据转换失败bug修复
5. 表同步列表新增按状态搜索
6. 编译脚本更新
7. 文档更新
8. mysql 连接转成utf8编码
9. 新增 redis 存储方式的支持
 
 
v1.1.0-beta.19 2019-10-19
===========================
1. 位点延时计算位点显示错误bug修复
2. 新增配置导出和导入功能(数据源,目标库,数据同步配置,报警配置,用户等)
3. 新增用户管理模块,ini 配置文件中用户名和密码用于在第一次启动的时候的用户初始化操作
4. 全量数据配置新增 自定义 where 查询条件功能
5. 刷全量数据没有流量显示bug修复
6. 其他已经bug修复
 
v1.1.0-beta.18 2019-10-16
===========================
 
1. 新增查看最新位点对比,显示延时时间
2. mysql插件新增标签支持及界面优化
3. 其他已知bug修复
 
 
v1.1.0-beta.17 2019-10-10
===========================
 
1. 流量统计按实际行数统计,query_event 事件不在统计范围之内
2. clickhouse插件,在string转Int32,Float等类型的情况 ,先去除前后的空格再进行转换
3. 全量任务新增按状态搜索功能
4. 支持make install prefix=./targe方式编译
5. 编译脚本及docker.sh 打包脚本更新
6. 其他已知bug修复
 
 
v1.1.0-beta.16 2019-09-30
===========================
 
1. 解析库模块修改,支持细到表过滤
2. 解析库timestamp转换 要求mysql和当前机器同时区
3. 解析库测试模块及性能模块修改
4. binlog解析异常,将不重试,而是直接退出当前解析
 
5. 启动的时候输出http或者https访问的地址
6. 数据从表同步到目标库的时候,如果连续5秒没有数据,将自动退出守护模块,释放内存,待下一次有数据的时候再次唤醒
7. 表同步列表新增QueueMsgCount 堆积待同步的消息数
8. 数据源监控告警优化
9. 修改位点的时候,新增是否强制修改所有表ToServer的位点
10. 修复重启之后,报警配置不自动恢复的bug
11. 重启的时候,数据源启动修改成 异步的
12. 获取正常位点,以QUERY_EVENT事件为准
13. 新增{$Timestamp},{$BinlogTimestamp},{$EventType},{$BinlogFileNum},{$BinlogPosition}标签
15. 编译脚本更新
16. 修复 Miss按钮 错过出错数据无效的bug
17. 启动脚本不兼容Ubuntu bug修复 (@北京-兴隆)
18. 流量展示替换成 echartJs
19. 界面等功能优化
20. 已知其他bug修复
 
21. clickhouse插件,新增 全部转成 Insert 方式同步
22. 自动生成mysql转ck sql ,decimal类型转换成String
23. ck插件自动填充字段功能优化
24. 其他插件close等功能bug修复
 
 
v1.1.0-beta.15 2019-09-24
===========================
1. table列表如果是视图,将提示用户,让用户感知
2. 数据表配置同步详情页,默认选择第一个非MySQL自带库
3. channel防止重复启动
4. 新增修改数据源位点功能,只有close状态能修改
6. 数据源binlog_format!=row格式的情况下,进行提示用户
7. 添加数据源成功后,提示用户是否需要跳转到设置表同步界面
8. Detail按钮变更为 Setting
9. 没有配置数据表同步,不允许用户开启数据同步
10.start,close,stop 加入锁机制,防止重复提交
11.默认 default 通道,添加数据源的时候,自动启动
 
 
 
v1.1.0-beta.14 2019-09-19
===========================
1. redis 插件 ,redis 客户端包变更为 go-redis,支持redis 3.x版本
2. 重启位点错误bug修复 ( @飞鸟 @le lucermaire 发现问题及帮测试开发版本)
3. 其他已知bug修复
4. 解析binlog 先过滤库再解析相关row事件
5. 每次新增一个库同步,同时更新到Britol解析库里
6. 同步到clickhouse,其他类型同步到int,float类型的时候,数据转换失败,不再报错,强转换成为0 , 0.00进行同步
7. 修复库名里包含特殊符号 - 的情况下,表同步列表 显示错误的bug,现将 _- 作为分割符,库名和表名不允许 出现 _- 2个连续的字符
8. 修复clickhouse 界面生成sql 时,可能会出现UFloat 的bug
9. 修复其他已知bug
 
v1.1.0-beta.13 2019-08-02
===========================
1. ck插件类型转换优化,支持不同int之间转换
2. 新增插件开开发,界面调试sdk
 
 
v1.1.0-beta.12 2019-07-26
===========================
 
1. 随机生成数据完成,方便插件开发及测试,包括提供插件性能测试方法及数据校验
2. ck,mysql,mongodb,http,rpc,redis,rabbitmq 等插件的单元测试完善 及 bug的修复。数据校验通过测试
3. mysql插件,源表为 null 值的情况下,目标表存在默认值的情况下,以默认值进行填充
4. http 插件,传值的key:data 变更 为 Data
5. 修复rabbitmq Expir 参数设置之后报错的bug
6. http rabbitmq mongodb等文档的更新
7. 经测试部分组件或者语言不支持 大于 int64 的值(mongodb,php 已测试不支持),请使用的时候注意
8. 修复 ck 插件 delete再insert 之后可能存在的bug, 进行更新更简单的过滤做法 已解决,并经过数据校验测试
9. mysql 插件修复 stmt 没有关闭的隐性bug
 
v1.0.0
===========================
1. 第一个版本, 所有同步,是按通道进行计算的,多个表绑定到一个通道,则绑定的表所有同步配置是串行的
2. binlog 解析还存在比较多的问题,只能常见的类型解析支持比较友好,比如char,varchar, int等,对 deciaml,bit等类型支持还存在 较多bug
04-29 07:00