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秒超时,也会进行刷一次