一种基于脚本的数据库合并方法及系统技术方案

技术编号:22308196 阅读:48 留言:0更新日期:2019-10-16 08:18
本发明专利技术公开了一种基于脚本的数据库合并方法,涉及计算机软件技术领域,本发明专利技术采用脚本方式配置合并规则,简化了数据库合并的复杂度,能够快速应对表结构的变化,有效减少开发和维护的工作量,降低维护成本,使配置合并易维护易扩展。本发明专利技术还公开了一种基于脚本的数据库合并系统。

A method and system of database merging based on script

【技术实现步骤摘要】
一种基于脚本的数据库合并方法及系统
本专利技术涉及计算机软件
,具体涉及一种基于脚本的数据库合并方法及系统。
技术介绍
网管的配置数据库中包含了要求全局唯一的数据,比如资源ID,管理员用户名等,两份配置数据库合并在一起会冲突,不能简单的进行数据库拼接,原始数据库需要按照一定的逻辑处理之后才能进行合并。网管版本开发过程中,数据库中数据表会增加或者表结构会发生变化,现有的维护模式需要根据数据表增加或结构变化,实时更新数据库合并工具,维护成本高。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种基于脚本的数据库合并方法及系统,降低数据库合并工具的维护成本。为达到以上目的,本专利技术采取的技术方案是:一种基于脚本的数据库合并方法,包括以下步骤:采用脚本定义数据合并规则;根据定义的合并规则完成数据合并。在上述方案的基础上,所述数据合并规则包括指定合并数据库规则、指定合并数据表规则和字段处理规则;字段处理规则包括字段检查规则、资源ID规则、资源ID引用规则和静态文本规则。在上述方案的基础上,所述根据定义的合并规则完成数据合并,具体包括以下步骤:S201、解析所述数据合并规则文件;S202、判断合并规则语法是否正确;若是,进入步骤S203,若否,结束;S203、获取指定合并数据库规则中的数据库名称;S204、获取指定合并数据表规则中的数据表名称;S205、读取指定合并数据表规则中合并数据库名称、数据表名称对应的源数据表数据,并加载到内存;S206、逐行读取源数据表数据,并遍历字段处理规则;S207、根据字段处理规则修改内存中的字段数据;S208、将修改后的字段数据写入目标数据表;S209、判断指定指定合并数据表规则中的数据表名称对应的所有源数据表数据全部读取完成,若是,进入步骤S210,若否,返回步骤S203继续读取下一个数据表名称对应的源数据表数据;S210、判断指定合并数据库规则中的数据库名称对应的所有源数据表数据全部读取完成,若是,结束;若否,返回步骤S202继续读取下一个数据库名称对应的源数据表数据。在上述方案的基础上,字段检查规则为:合并前对数据字段进行全局唯一检查,如果数据字段不唯一,终止合并或对数据字段追加随机字符串。在上述方案的基础上,资源ID规则为:定义字段名称、字段索引和ID起始值,根据字段名称和字段索引定位字段数据并设置为当前值,以ID起始值开始分配新的资源ID值,将当前值与新的资源ID值的映射关系写入缓存。在上述方案的基础上,资源ID引用规则为:定义字段名称、字段索引和查找资源ID映射的关键字,根据字段名称和字段索引定位字段数据并设置为当前值,根据查找资源ID映射的关键字从缓存中获取当前值映射的新的资源ID,将当前值的资源ID修改为新的资源ID。在上述方案的基础上,静态文本规则为:定义字段名称、字段索引和静态文本值,根据字段名称和字段索引定位字段数据并设置为当前值,将当前值修改为静态文本值。本专利技术还提供一种基于脚本的数据库合并系统,包括:规则定义模块,其用于:采用脚本定义数据合并规则;数据合并模块,其用于:根据定义的合并规则完成数据合并。在上述方案的基础上,所述数据合并规则包括指定合并数据库规则、指定合并数据表规则和字段处理规则;字段处理规则包括字段检查规则、资源ID规则、资源ID引用规则和静态文本规则。在上述方案的基础上,所述数据合并模块根据定义的合并规则完成数据合并,具体包括以下步骤:解析所述数据合并规则文件,根据指定合并数据库规则中的数据库名称以及指定合并数据表规则中的数据表名称,读取对应的源数据表数据,并加载到内存;对源数据表数据进行数据合并,进行数据合并的方法为:逐行读取源数据表数据,遍历字段处理规则,根据字段处理规则修改内存中的字段数据,将修改后的字段数据写入目标数据表;按上述数据合并方法完成指定合并数据库规则以及指定合并数据表规则对应的所有源数据表数据的数据合并。与现有技术相比,本专利技术的优点在于:本专利技术采用脚本方式配置合并规则,简化了数据库合并的复杂度,能够快速应对表结构的变化,有效减少开发和维护的工作量,降低维护成本,使配置合并易维护易扩展。附图说明图1为本专利技术实施例的脚本语法配置的合并规则示例;图2为本专利技术实施例的数据合并处理流程。具体实施方式以下结合附图对本专利技术的实施例作进一步详细说明。本专利技术实施例提供一种基于脚本的数据库合并方法,包括以下步骤:采用脚本定义数据合并规则;根据定义的合并规则完成数据合并。所述数据合并规则包括指定合并数据库规则、指定合并数据表规则和字段处理规则;字段处理规则包括字段检查规则、资源ID规则、资源ID引用规则和静态文本规则。参见图1所示,合并规则具体内容如下:1、指定合并数据库规则(下文称database规则)指定要合并的数据库,定义database规则示例如下:<databasename="integratecfgdb"></database>其中name字段表示数据库名称。2、指定合并数据表规则(下文称table规则)指定要合并的数据表,定义table规则示例如下:<tablename="t_managerpartitio55ninfo"action="modify"></table>其中name字段表示数据表名称,action字段表示数据表的合并规则,取值为“modify”表示数据修改后合并,取值为“drop”表示不合并;table节点是database节点的子节点。3、字段检查规则针对合并前对数据字段进行全局唯一检查,如果不唯一则终止合并的情况,定义字段检查规则示例如下:<checkname="cipaddress"index="16"method="constraint"/>其中name表示字段名称,index表示字段索引,method取值为"constraint"表示全局唯一检查,如果不唯一终止合并;check节点是table节点的子节点。针对合并前对数据字段进行全局唯一检查,如果不唯一则追加随机16进制表示的字符串的情况,定义字段检查规则示例如下:<checkname="cusername"index="2"method="append_rand"/>其中name表示字段名称,index表示字段索引,method取值为"append_rand"表示全局唯一检查,如果不唯一追加随机16进制表示的字符串;check节点是table节点的子节点。4、资源ID规则针对资源ID重新分配的情况,定义资源ID示例如下:<idname="cobjectid"index="1"value="13172736"id_map=""/>其中name表示字段名称,index表示字段索引,value表示ID的起始值,每次分配自增长1,并使用新的资源ID替换原始的资源ID。由于资源ID可能会被其他表的字段引用,所以默认情况下使用“数据库名.数据表名.字段名”的规则生成关键字,并以这个关键字建立原始的ID与新分配的ID的映射关系。如果id_map取值不为空,则以指定的值作为关键字建立原始的ID与新分配的ID的映射关系;id节点是table节点的子节点。5、资本文档来自技高网...

【技术保护点】
1.一种基于脚本的数据库合并方法,其特征在于,包括以下步骤:采用脚本定义数据合并规则;根据定义的合并规则完成数据合并。

【技术特征摘要】
1.一种基于脚本的数据库合并方法,其特征在于,包括以下步骤:采用脚本定义数据合并规则;根据定义的合并规则完成数据合并。2.如权利要求1所述的方法,其特征在于,所述数据合并规则包括指定合并数据库规则、指定合并数据表规则和字段处理规则;字段处理规则包括字段检查规则、资源ID规则、资源ID引用规则和静态文本规则。3.如权利要求2所述的方法,其特征在于,所述根据定义的合并规则完成数据合并,具体包括以下步骤:S201、解析所述数据合并规则文件;S202、判断合并规则语法是否正确;若是,进入步骤S203,若否,结束;S203、获取指定合并数据库规则中的数据库名称;S204、获取指定合并数据表规则中的数据表名称;S205、读取指定合并数据表规则中合并数据库名称、数据表名称对应的源数据表数据,并加载到内存;S206、逐行读取源数据表数据,并遍历字段处理规则;S207、根据字段处理规则修改内存中的字段数据;S208、将修改后的字段数据写入目标数据表;S209、判断指定指定合并数据表规则中的数据表名称对应的所有源数据表数据全部读取完成,若是,进入步骤S210,若否,返回步骤S203继续读取下一个数据表名称对应的源数据表数据;S210、判断指定合并数据库规则中的数据库名称对应的所有源数据表数据全部读取完成,若是,结束;若否,返回步骤S202继续读取下一个数据库名称对应的源数据表数据。4.如权利要求2所述的方法,其特征在于,字段检查规则为:合并前对数据字段进行全局唯一检查,如果数据字段不唯一,终止合并或对数据字段追加随机字符串。5.如权利要求2所述的方法,其特征在于,资源ID规则为:定义字段名称、字段索引和ID起始...

【专利技术属性】
技术研发人员:海宽
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1