System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于数据安全领域,具体涉及一种数据同步与脱敏系统。
技术介绍
1、数据同步是用于确保不同数据存储系统(通常是数据库)之间数据的一致性和同步的技术。变更数据捕获是一种用于捕获和跟踪数据库中数据变化的技术。它通常用于将数据库中的数据变更传递给其他系统或应用程序,以确保这些系统始终保持与源数据库同步。数据脱敏是一种用于保护敏感数据隐私的方法,通过对数据进行修改或转换,使其不再包含敏感信息,同时仍保持数据的可用性和有效性。
2、通过对数据同步技术以及数据脱敏技术的结合使用,既可以在通常的生产环境中保持数据的一致性,还可以在必要时将数据脱敏并传给非生产环境使用,避免了敏感信息的泄露。
3、但现有的一般的同步系统只能保证数据的一致性,无法保证数据的安全性,同时,一个数据源只能同时同步到一个目标端;
4、另外,针对数据脱敏来说,目前静态数据脱敏系统无法满足实时脱敏增量数据,目前动态数据脱敏系统主要使用两种技术路线,分别为基于结果集处理的脱敏路线和基于sql改写的脱敏路线。这两种路线获取待脱敏数据时都涉及了对于数据库系统的访问,脱敏海量数据时会对源数据端造成巨大压力。
技术实现思路
1、针对上述问题,本专利技术的目的在于提供一种数据同步与脱敏系统,可以实现不同数据库之间的数据同步,在需要时可以将源端数据进行脱敏并写入目标数据库并且能够实时捕获源数据库中的数据变更,对增量数据也能够精确地进行数据同步以及数据脱敏。
2、实现本专利技术目的的具体
3、一种数据同步与脱敏系统,包括数据源管理模块,任务创建模块,预处理模块,脚本生成模块,任务管理模块;
4、所述数据源管理模块用于存储和管理同步任务所需的数据库信息;
5、所述任务创建模块用于创建某一数据库到另一数据库的数据同步或脱敏任务;
6、所述任务管理模块用于基于任务创建模块创建的任务进行任务管理;
7、所述预处理模块用于基于任务管理模块的任务启动进行任务预处理;
8、所述脚本生成模块用于任务管理模块的任务信息以及预处理模块的任务预处理数据为任务生成脚本,完成数据同步任务或脱敏任务。
9、进一步的,所述数据源管理模块内包括同步或脱敏任务所需的各个数据库信息,包括源数据库以及目标数据库的数据库名、ip地址、端口号、数据库类型、数据库名、描述信息、用户名、密码信息,每个数据源拥有唯一id。
10、进一步的,所述任务创建模块创建任务的过程为:
11、配置任务的描述类信息,包括任务名称以及任务备注信息;
12、分别配置任务的输入节点信息以及输出节点信息;
13、完成任务创建。
14、进一步的,所述任务的输入节点信息配置包括:选择已经配置的数据源中的某一数据库作为源数据库,选择源数据库下的某一数据表作为源数据表,确定消息中间件的配置信息,包括消息中间件部署的ip地址以及端口号;
15、所述任务的输出节点信息配置包括:选择已经配置的数据源中的某一数据库作为目标数据库,选择目标数据库下的某一数据表作为目标数据表,判断数据是否需要脱敏,确定消息中间件的配置信息,包括消息中间件部署的ip地址以及端口号。
16、进一步的,在进行输出节点信息配置过程中,当数据需要脱敏时,配置脱敏开关以及脱敏字段。
17、进一步的,所述预处理模块对任务进行与处理的过程为:
18、生成本次任务会创建的各个文件的文件名,包括source文件以及sink文件的文件名;
19、判断目标数据库是否已存在目标数据表,若不存在则创建新数据表;
20、将源以及目标数据库字段类型与大数据分布式计算引擎的数据类型进行映射并将结果存储在字典中。
21、进一步的,所述判断目标数据库是否已存在目标数据表的过程为:
22、通过名称确定目标数据库中是否存在目标数据表;
23、如果目标数据库已经存在目标数据表,则确保数据表中各字段类型的一致,如果是不同类型的数据库,则需要保证数据类型的兼容性;
24、若果目标数据库不存在目标数据表,则查询源数据表的ddl,用于创建目标数据表的ddl,此时,需要确定目标数据库和源数据库的类型是否相同:
25、当源数据库与目标数据库类型相同时,修改源数据表ddl中的数据库名以及数据表名;当源数据库与目标数据库类型不同时,将源数据表ddl中各个列字段的类型一一映射为目标数据库中相兼容的类型,并重新构建ddl创建目标数据表。
26、进一步的,所述脚本生成模块基于预处理模块处理的结果为任务生成source脚本以及sink脚本;
27、其中source脚本在被启动时在大数据分布式计算引擎中创建一个从源数据库到消息中间件的同步进程,所述同步进程依赖于基于日志的变更数据捕获技术,通过调用source脚本,可以快速地将大量的数据快速地同步到消息中间件中,以待sink脚本消费;
28、sink脚本用于将数据同步到目标数据库,所述sink脚本包括数据库连接函数,数据插入函数,数据删除函数以及主函数;所述主函数用于连接消息中间件以及调用数据库连接函数连接目标数据库,然后通过逐一消费消息中间件的消息,根据操作的不同来决定调用数据插入函数还是数据删除函数来确保到目标数据库的准确同步。
29、进一步的,所述任务管理模块通过调用、启动、停止source脚本以及sink脚本实现任务的启动、停止和重启;
30、启动任务时,先根据任务id判断是否已经有source进程存在,若无,启动source脚本,然后判断是否已经有sink进程存在,若无,启动sink脚本;
31、停止任务时,先根据任务id判断是否已经有source进程存在,若有,关闭source进程,然后判断是否已经有sink进程存在,若有,启动sink进程;
32、重启任务时,先执行停止命令再执行启动命令。
33、与现有技术相比,本专利技术的有益效果在于:
34、(1)本专利技术的数据同步与脱敏系统可以有选择的执行同步或脱敏的任务,功能更加灵活多样,基于日志的变更数据捕获,区别于触发器,可以实现不同数据源之间的实时同步与脱敏,并且减少了对于数据库系统的压力。;
35、(2)不同于普通的一次性全量数据脱敏,本数据同步与脱敏系统实现了对增量数据的实时同步并脱敏,结合了大数据分布式计算引擎,使得可以同时运行大量的同步或脱敏任务,也加快了源数据库到消息中间件的同步速度。
36、下面结合附图和具体实施方式对本专利技术做进一步的说明。
本文档来自技高网...【技术保护点】
1.一种数据同步与脱敏系统,其特征在于,包括数据源管理模块,任务创建模块,预处理模块,脚本生成模块,任务管理模块;
2.根据权利要求1所述的数据同步与脱敏系统,其特征在于,所述数据源管理模块内包括同步或脱敏任务所需的各个数据库信息,包括源数据库以及目标数据库的数据库名、IP地址、端口号、数据库类型、数据库名、描述信息、用户名、密码信息,每个数据源拥有唯一ID。
3.根据权利要求1所述的数据同步与脱敏系统,其特征在于,所述任务创建模块创建任务的过程为:
4.根据权利要求3所述的数据同步与脱敏系统,其特征在于,所述任务的输入节点信息配置包括:选择已经配置的数据源中的某一数据库作为源数据库,选择源数据库下的某一数据表作为源数据表,确定消息中间件的配置信息,包括消息中间件部署的IP地址以及端口号;
5.根据权利要求4所述的数据同步与脱敏系统,其特征在于,在进行输出节点信息配置过程中,当数据需要脱敏时,配置脱敏开关以及脱敏字段。
6.根据权利要求1所述的数据同步与脱敏系统,其特征在于,所述预处理模块对任务进行与处理的过程为:
>7.根据权利要求6所述的数据同步与脱敏系统,其特征在于,所述判断目标数据库是否已存在目标数据表的过程为:
8.根据权利要求1所述的数据同步与脱敏系统,其特征在于,所述脚本生成模块基于预处理模块处理的结果为任务生成source脚本以及sink脚本;
9.根据权利要求8所述的数据同步与脱敏系统,其特征在于,所述任务管理模块通过调用、启动、停止source脚本以及sink脚本实现任务的启动、停止和重启;
...【技术特征摘要】
1.一种数据同步与脱敏系统,其特征在于,包括数据源管理模块,任务创建模块,预处理模块,脚本生成模块,任务管理模块;
2.根据权利要求1所述的数据同步与脱敏系统,其特征在于,所述数据源管理模块内包括同步或脱敏任务所需的各个数据库信息,包括源数据库以及目标数据库的数据库名、ip地址、端口号、数据库类型、数据库名、描述信息、用户名、密码信息,每个数据源拥有唯一id。
3.根据权利要求1所述的数据同步与脱敏系统,其特征在于,所述任务创建模块创建任务的过程为:
4.根据权利要求3所述的数据同步与脱敏系统,其特征在于,所述任务的输入节点信息配置包括:选择已经配置的数据源中的某一数据库作为源数据库,选择源数据库下的某一数据表作为源数据表,确定消息中间件的配置信息,包括消息中间件部署的...
【专利技术属性】
技术研发人员:张鹏,陈景傲,胡晓旭,郭雨,马运骏,呼栩朴,
申请(专利权)人:南京理工大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。