{{template "header" .}}
通用

数据源

 

状态

close : 表示数据源没有启动,只有 close 状态的时候才能 人工修改位点 或者 删除数据源

starting : 请求正在尝试连接或者重连 MySQL

running : 表示正在运行

stop : 暂停状态,临时性的,这个状态只是让后台在sleep,建议这个状态不要长时间保留

closing : 正在尝试关闭数据源,断掉和 MySQL 的连接

 

数据源常见问题

1. 一直是 starting 状态,有以下可能

1). 刷新整个界面,看是否会有状态变化

2). 在尝试启动数据源之前,发现位点有问题,会自动的将当前位点文件最开始的位置进行遍历寻找离当前最近的一个可用的位点,如果这个关闭请 点击close 或者 去MySQL kill 连接

3). 网络异常,一直在重试

2. 卡在 closing 状态

1). 刷新整个界面,看是否会有状态变化

2). 假如上一个状态是 staring 再点击关闭的,那可能是因为位点不对,后台在寻找正确的位点,比较慢,如果这个时候需要关闭,请 去MySQL 端找到相关连接 进行 Kill 操作

3). 判断 MySQL 连接是否假死等情况,如果要退出,请去MySQL Kill 连接

 

<3>位点延时

在点击 最新位点 按钮的时候 并且数据源是running状态

假如会计算当前位点 和 最新位点 不一致的情况下,将会拿最后解析成功的位点时间 与 当前时间点进行对比,算出差值,单位(秒)

这里并不是拿最新位点的时间对比,而是当前服务器时间

 

DDL 支持说明

当前只支持字段在表结构末尾追加新字段,如果配置的二进制位点是在DDL 之前的位点,会出现数据和字段对应不上

数据类型修改之后,如果配置的二进制位点是在DDL 之前的位点,可能会出现数据出错

 

存储类型数据转换

从Binlog解析出来的数据,在转成 map[string]interface{} 的数据格式的时候

MySQL里的存储类型对应Golang里的数据类型不一样

括号里的代表是Golang里的数据类型

TINYINT ( int8 | unit8 ) , SMALLINT ( int16 | unit16 ) , MEDIUMINT ( int32 | uint32 ), INT ( int32 | uint32 ) , BIGINT ( int64 | uint64 )

FLOAT ( float32 ) , DOUBLE ( float64 ) ,REAL ( float64 )

DECIMAL , NUMERIC( 返回string类型 )

DATE , TIME , YEAR , DATETIME , TIMESTAMP ( string类型 )

CHAR , VARCHAR ( string )

TEXT , TINYTEXT , MEDIUMINTTEXT , LONGTEXT ( string )

BLOB, TINYBLOB , MEDIUMINTBLOB , LONGBLOB ( string )

ENUM ( string类型 )

SET ( []string )

BIT ( int64类型 )

 

标签

{$SchemaName} : 数据库名字

{$TableName} : 表的名字

{$EventType} : 当前记录的增删改事件,新增(insert); 修改(update) ; 删除(delete); SQL(sql)

{$Timestamp} : 当前Bifrost同机器的时间戳

{$BinlogTimestamp} : Binlog 发生的时间戳

{$BinlogFileNum} : Binlog文件编号,并不是 整个Binlog文件名,比如 binlog 文件是 mysql-bin.000001 那这个 BinlogFileNum 的值 是1

{$BinlogPosition} : Binlog position 位点

{$字段名} : 表的字段数据

 

备注: 标签支持程度,取决于各个插件的实现,请参考各插件的文档

 

其他配置

 

MustBeSuccess

True : 当提交到 toServer 返回true 的时候,会进行重试操作,直到成功或者手工设置Miss 错过操作

False : 不管提交到 toServer 返回true 或者 false,都不进行重试提交

 

FilterQuery

True : 将过滤sql 事件,不提供给插件层处理

False : 由插件层自行决定怎么处理

 

FilterUpdate

True : update事件,所选字段内容都没有变更情况下,不进行推送

False : 不管字段有没有更新,全部都会推送

 

Fields

默认为全选, 选中的字段才会进行解析推送

 

位点修改

只有数据源是 close 状态,位点修改按钮才会显示出来

修改位点的时候,数据源必须是可连接的

修改位点的时候走,并不会验证位点正确性,会在 启动 数据源的时进行验证,假如位点有异常,启动 数据源的时候,会找到一个最近的正确位点进行开始

同时更新ToServer 选项 ( 默认为False )

True: 将会所有设置的表同步保存的位点强制更新,这个操作不可逆. 假如是更换边接的机器,或者位点有问题的情况下,建议选择为 True,因为表同步的时候,会判断当前数据的位点,是不是小于当前表保存的位点,小于则错过这条数据

False: 只修改数据当前的连接位点,假如只是修改了,没有点击 开启 数据源,保存开启的过程有问题。又再一次重启 Bifrost 这个位点修改无效

 

不支持说明

支持批量刷数据的插件,在数据同步异常的情况下,不支持错过当前数据同步功能,例如: ClickHouse,Kafka

 
Plugin 配置
{{template "footer" .}}