
KING BASE
开源 OR 闭源?
半开半闭的软件使用形态

KING BASE
KFS开放能力
数据转换器
KFS运行架构
KFS的主要角色分为源端和目标端,其中源端连接源数据库,通过实时采集数据库的日志信息并解析处理,统一成以KUFL数据存储格式的物理文件。目标端通过网络连接到源端,不断获取由源端产生的KUFL文件,解析以后由目标端连接目标数据库,以遵循事务完整性的原则将数据写入到目标数据库中。而转换器可配置在采集阶段或者应用阶段,以适应不同的数据转换处理场景。

数据转换器
KFS的数据转换器主要用于对同步数据的处理,可以对数据进行转换、映射、计算、过滤等操作。KFS支持两种过滤器的扩展方式,第一种为原生Java,第二种为JavaScript脚本。本文主要介绍基于JavaScript脚本的扩展方式。
KFS目前支持的数据转换器 ●●
1.replaceStatementFilter,DDL语句替换转换器;
2.dropcolumnFilter,列过滤转换器;
3.dataMarkFilter,数据标记转换器;
4.还有诸如dropStatementData(DDL过滤转换器),replicate(表数据转换器),skipeventbyvalue(值数据转换器)等不同需求环境的转换器。
数据转换器的出现,可以大大拓宽KFS的使用场景,比如:
1.使用replaceStatementFilter来进行异构数据库之间DDL语句涉及语法内容的转换;
2.使用dropcolumnFilter来进行某个表过滤指定列,主要用于过滤数据汇集时一些没有业务需求的列;
3.使用dataMarkFilter来进行增删改数据的操作标记和操作时间标记,主要用于一些需要对数据变更进行操作记录的场景。
KFS转换器具体接口及功能

KING BASE
使用场景
插件设计和示例
1
给插件命名
2
设计和开发



此处的实现主要是基于使用场景中的描述:冗余数据以0000开头,因此对于相关数据的匹配就调用startwith()方法,进行开头数据的匹配。当匹配成功时,就需要将匹配的冗余数据从转换的数据集中删去。

3
导入KFS



KING BASE
效果展示
测试模型
表结构展示

业务模型
五张业务表中,每张表有三列数据,其中冗余数据随机出现在不同表的不同列中,且冗余数据所占比例为50%。单表数据量为1万条。

说明
在此基础上可以增加更多的判断规则及有关的判断功能选择。此处根据场景将转换的匹配功能固定为判断开头的数据是否等于自定义的数据,如果等于就进行转换。除此而外,还可以添加是否包含数据,是否以数据的末尾进行判断,是否等于某些数据等功能,不同功能可以添加额外添加功能选择参数(例如:replicator.filter.uselessdata.type)去控制在匹配数据是所生效的匹配功能。
KING BASE
快速实操上手
实验场景一
A客户现在需要将其源数据库中的数据同步到指定的目标数据库中,源数据库中存在一个时间列,A客户仅想同步某个时间段内的数据。
实验场景二
B客户需要进行数据汇集,将4个源数据库的数据同步到1个目标数据库中,每个源数据库不定期会产生一些固定的DDL语句,这些语句不用在目标端执行,在同步时需要把这些DDL的信息过滤掉。
实验场景三
C客户场景为月度工资分发,需要从总部数据库中将不同子公司员工的薪资信息同步到每个子公司的数据库中,但是总公司所记录的薪资信息会有不同的类型(即多列记录薪资结构),需要将多列的薪资数据进行计算后再同步到子公司数据库中。
供稿:产品研发中心




