关键字:
中电科金仓、KingbaseFlySync、KFS、同步程序、replicator、数据同步、数据解析、SQLServer、rowversion、timestamp、实时同步
1. 使用场景
SQLServer中,rowversion和timestamp是同义词,通常用作给表行加版本戳的机制,且只是递增的数字,不保留日期或时间。对这两个数据类型插入数据时,只能使用default/null进行赋值,而不能使用特定的值
在实际的业务场景中,用户也会使用到这两种数据类型,但是因为这两种数据类型不能显示插入值,所以需要使用过滤器进行处理。
2. 配置使用方式介绍
2.1 使用dropcolumn过滤器配置
- 在flysync.ini中新增如下配置:
svc-remote-filters=dropcolumn
property=replicator.filter.dropcolumn.definitionsFile=/home/flysync/dropcolumn.jsondropcolumn.json配置文件示例
[ { "schema": "test", "table": "*", "columns": [ "column_a", "column_b", ] } ]
2. 在KingbaseFlySync的replicator安装包中执行安装/更新,使配置生效
注1、该过滤器配置后,将指定列从解析出的sql中删除
注2、该过滤器需要对表名、列名进行配置,如果数据库中rowversion类型使用频繁,此处可能会产生一定的工作量
2.2 使用dropcolumnbytimestamp过滤器配置
- 在flysync.ini中新增如下配置:
## sqlserver存在rowversion/timestamp类型时,目标端需要配置如下参数:
svc-remote-filters = dropcolumnbytimestamp
##后续的这四项配置默认值是true,如果使用默认值,则ini中无需配置
property=replicator.filter.dropcolumnbytimestamp.dropInsert=true
property=replicator.filter.dropcolumnbytimestamp.dropUpdateSet=true
property=replicator.filter.dropcolumnbytimestamp.dropUpdateWhere=true
property=replicator.filter.dropcolumnbytimestamp.dropDelete=true
2. 在KingbaseFlySync的replicator安装包中执行安装/更新,使配置生效
注1:此种配置方式,会将数据库中所有的rowversion/timestamp类型从解析出的sql中删除
使用限制
无。
参考资料
《Kingbase FlySync 安装部署手册》




