ClickHouse

必须先选择 MySQL 的表后,再选择 目标库的MySQL 插件,在选择 目标 库表的时候,如果目标表字段和源MySQL表字段一致的情况下会自动填充

 

目标库表数据类型尽可能和源库一致

假如目标库表是varchar 等字符串类型,源表是其他类型,数据转换不会有问题

以下是转换的大概情况

源表类型 目标表类型 是否有问题 备注
varchar,char,text等字符串 int 等类型 Y 假如源表存的是数字,会转成int相应类型,但值不能超过目标类型的大小
假如源表是其他字符串数据,转换会有问题
int,bit等类型 varchar,var等类型 N 只要int转成字符串长度,不超过目标表的类型长度就没有问题
int,bit等类型 int,bit等类型 N 相同类型转换不会有问题
varchar,char,text等字符串 varchar,char,text等字符串 N 相同类型转换不会有问题
varchar,char,text等字符串 set Y 源表数据,不在目标表范围内就会有问题

连接配置

eg : root:root123@tcp(10.40.6.89:3306)/bifrost_test

自动过滤规则

假如同一个主键的数据,在同一批次刷数据,会自动过滤多余操作

 

1. 假如 id = 1 这条数据,连接有 insert ,delete ,update 操作

则只会执行最后的 update 操作,不会执行前面insert 及 delete操作

 

2. 假如 id = 1 这条数据,连接有 insert ,delete ,insert ,delete 顺序操作

则只会执行最后的 delete 操作一次,不会执行 insert

 

update 操作是转换成 insert ** ON DUPLICATE KEY UPDATE 操作

 

insert 操作是转换成 replace insert 操作

 

NULL 值

所有数据类型都支持Null值,假如源表是 Null ,但是目标库有默认值,则同步的时候,目标表以默认值填充,否则为 Null

 

标签

{$Timestamp} : 同步的时间戳,并不是 Binlog 发生的时间

{$EventType} : 事件类型,insert delete update 三个字符串

{$BinlogTimestamp} : Binlog记录的时间戳

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

{$BinlogPosition} : Binlog position 位点

 

备注

必须只能选择一个字段为主键

不支持批量设置表

BatchSize参数代表累积多少条数据刷一次数据到MySQL,假如一直没有数据从 MySQL 过来,则默认5秒超时,也会进行刷一次