数据库中表结构对比方法、装置、计算机设备和存储介质与流程

文档序号:18739467发布日期:2019-09-21 01:36阅读:200来源:国知局
数据库中表结构对比方法、装置、计算机设备和存储介质与流程

本申请涉及到数据同步领域,特别是涉及到一种数据库中表结构对比方法、装置、计算机设备和存储介质。



背景技术:

在数据测试过程中,往往存在将上游表的数据同步到现有表的操作,测试人员通常使用对GoldenGate工具将上游表的数据同步到下游表中。为了测试的效果和稳定性,在测试之前,需要查看下游表是否可以插入上游表的数据,现有技术是测试人员人工检测,浪费时间和人力。



技术实现要素:

本申请的主要目的为提供一种数据库中表结构对比方法、装置、计算机设备和存储介质,旨在解决现有技术中测试人员人工检测,浪费时间和人力的问题。

为了实现上述发明目的,本申请提出一种数据库中表结构对比方法,所述数据库是基于GoldenGate同步工具的数据库,包括:

获取记录有同步表的同步表名、以及各所述同步表名的数据库连接串的列表,其中,所述同步表包括呈一对一映射关系的上游表和下游表;

在所述列表中获取相互对应的第一上游表的第一上游表名和第一下游表的第一下游表名,以及与所述第一上游表名对应的第一上游数据库连接串,与所述第一下游表名对应的第一下游数据库连接串;

依据所述第一上游数据库连接串连接存储有第一上游表的第一上游数据库,以及依据所述第一下游数据库连接串连接存储有第一下游表的第一下游数据库;

在所述第一上游数据库中获取所述第一上游表的第一上游信息,以及在所述第一下游数据库中获取所述第一下游表的第一下游信息;

判断所述第一上游信息和所述第一下游信息是否符合预设的要求;

若所述第一上游信息和所述第一下游信息符合所述预设的要求,则判定第一上游表中的数据可以成功的同步到第一下游表中;

若所述第一上游信息和所述第一下游信息不符合所述预设的要求,则生成提醒信息。

进一步地,所述所述第一上游信息为第一上游字段类型,所述第一下游信息为第一下游字段类型时,所述判断所述第一上游信息和所述第一下游信息是否符合预设的要求的步骤,还包括:

判断所述第一上游字段类型和所述第一下游字段类型是否相同;

若所述第一上游字段类型和所述第一下游字段类型相同,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求;

若所述第一上游字段类型和所述第一下游字段类型不相同,则判定所述第一上游信息和所述第一下游信息不符合所述预设的要求。

进一步地,,所述第一上游信息为第一上游字段长度,所述第一下游信息为第一下游字段长度时,所述判断所述第一上游信息和所述第一下游信息是否符合预设的要求的步骤,还包括:

判断所述第一下游字段长度是否大于或等于所述第一上游字段长度;

若所述第一下游字段长度大于或等于所述第一上游字段长度,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求;

否所述第一下游字段长度小于所述第一上游字段长度,则判定所述第一上游信息和所述第一下游信息不符合所述预设的要求。

进一步地,所述若所述第一下游字段长度大于或等于所述第一上游字段长度,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求的步骤,包括:

若所述第一下游字段长度大于或等于所述第一上游字段长度,则获取第一上游表的编码格式,以及第一下游表的编码格式;

计算第一上游表的编码格式和第一下游表的编码格式之间的字段长度的第一比例关系;

判断所述第一上游字段长度与所述第一下游字段长度的第二比例关系是否小于等于所述第一比例关系;

若是,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求。

进一步地,所述第一上游信息为第一上游字段类型和第一上游字段长度,所述第一下游信息为第一下游字段类型和第一下游字段长度时,所述判断所述第一上游信息和所述第一下游信息是否符合预设的要求的步骤,还包括:

判断所述第一上游字段类型和所述第一下游字段类型是否相同,以及判断所述第一下游字段长度是否大于或等于所述第一上游字段长度;

若所述第一上游字段类型和所述第一下游字段类型相同,以及所述第一下游字段长度大于或等于所述第一上游字段长度,则判定符合所述预设的要求;否则,判定不符合所述预设的要求。

进一步地,所述若所述第一上游信息和所述第一下游信息不符合所述预设的要求,则生成提醒信息的步骤之后,包括:

判断在指定时间长度内是否接受到外部输入的修改操作信息;

若未接收到所述修改操作信息,则获取预设的测试人员的邮箱地址,将所述提醒信息发送到所述邮箱地址对应的邮箱中。

进一步地,所述若符合所述预设的要求,则判定第一上游表中的数据可以成功的同步到第一下游表中的步骤之后,还包括:

当对所述列表中的全部的相对应的上游表和下游表的关系验证结束后,生成验证报告。

本申请还提供一种数据库中表结构对比装置,所述数据库是基于GoldenGate同步工具的数据库,包括:

第一获取单元,用于获取记录有同步表的同步表名、以及各所述同步表名的数据库连接串的列表,其中,所述同步表包括呈一对一映射关系的上游表和下游表;

第二获取单元,用于在所述列表中获取相互对应的第一上游表的第一上游表名和第一下游表的第一下游表名,以及与所述第一上游表名对应的第一上游数据库连接串,与所述第一下游表名对应的第一下游数据库连接串;

连接单元,用于依据所述第一上游数据库连接串连接存储有第一上游表的第一上游数据库,以及依据所述第一下游数据库连接串连接存储有第一下游表的第一下游数据库;

第三获取单元,用于在所述第一上游数据库中获取所述第一上游表的第一上游信息,以及在所述第一下游数据库中获取所述第一下游表的第一下游信息;

判断单元,用于判断所述第一上游信息和所述第一下游信息是否符合预设的要求;

第一判定单元,用于若所述第一上游信息和所述第一下游信息符合所述预设的要求,则判定第一上游表中的数据可以成功的同步到第一下游表中;

第二判定单元,用于若所述第一上游信息和所述第一下游信息不符合所述预设的要求,则生成提醒信息。

本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

本申请的数据库中表结构对比方法、装置、计算机设备和存储介质,可以自动完成上游表和下游表是否匹配的判断过程,无需测试人员认购检测,节省人力资源,而且提高检测的效率。本申请在数据同步之前完成上下游表的匹配过程,从而减少在后续的数据同步过程中,出现数据无法同步的情况发生。

附图说明

图1为本申请一实施例的数据库中表结构对比方法的流程示意图;

图2为本申请一实施例的数据库中表结构对比装置的结构示意框图;

图3为本申请一实施例的计算机设备的结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,本申请实施例提供一种数据库中表结构对比方法,所述数据库是基于GoldenGate同步工具的数据库,包括:

S1、获取记录有同步表的同步表名、以及各所述同步表名的数据库连接串的列表,其中,所述同步表包括呈一对一映射关系的上游表和下游表;

S2、在所述列表中获取相互对应的第一上游表的第一上游表名和第一下游表的第一下游表名,以及与所述第一上游表名对应的第一上游数据库连接串,与所述第一下游表名对应的第一下游数据库连接串;

S3、依据所述第一上游数据库连接串连接存储有第一上游表的第一上游数据库,以及依据所述第一下游数据库连接串连接存储有第一下游表的第一下游数据库;

S4、在所述第一上游数据库中获取所述第一上游表的第一上游信息,以及在所述第一下游数据库中获取所述第一下游表的第一下游信息;

S5、判断所述第一上游信息和所述第一下游信息是否符合预设的要求;

S6、若所述第一上游信息和所述第一下游信息符合所述预设的要求,则判定第一上游表中的数据可以成功的同步到第一下游表中;

S7、若所述第一上游信息和所述第一下游信息不符合所述预设的要求,则生成提醒信息。

如上述步骤S1所述,上述列表可以是用户预先准备的列表,如通过测试人员手动配置的列表,或者是通过GoldenGate工具利用同步表信息查询链接自动下载链路中上、下游一一对应的表名和表名对应数据库连接串。上述数据库连接串是数据库的信息,访问数据库需要用到,比如数据库存储的ip地址、网络端口、数据库名字、账号和密码等。上述上游表和下游表关系是一对一映射的关系,即某个上游表的数据只向其对应的下游表中复制。

如上述步骤S2所述,上述“第一”仅为区分标识,便于准确引用和描述。比如,上述的第一上游表名,仅表示一个上游表名,与其成一对一映射关系的为第一下游表名。其它如第一上游数据库连接串和第一下游数据库连接串中的“第一”也是仅为区分标识。在本实施例中,自动获取列表中各相互对应的第一上游表名和第一下游表名,以及各第一上游表名和第一下游表名对应的数据库连接串,以便于后续的连接对用的数据库等。

如上述步骤S3和S4所述,即为通过数据库连接串连接数据库的过程,以及到数据库获取同步表的相关信息,均为现有技术,在此不在赘述。上述第一上游信息和第一下游信息可以根据预设的配置要求进行获取,比如,获取第一上游表的字段类型、第一下游表的字段类型等等。

如上述步骤S5所述,上述预设的要求可以为第一上游表的字段类型与第一下游表表的字段类型相同,也可以是第一上游表的字段长度与第一下游表的字段长短相同等等。

如上述步骤S6所述,如果第一上游信息和所述第一下游信息符合预设的要求,说明第一上游表中的数据可以同步的更新到与其对应的第一下游表中,上述列表中的第一上游表名对应的第一上游表和第一下游表名对应的第一下游表,两者是正确的匹配关系,无需调整。

如上述步骤S7所述,如果第一上游信息和所述第一下游信息不符合预设的要求,说明第一上游表中的数据不可以同步的更新到与其对应的第一下游表中,上述列表中的第一上游表名对应的第一上游表和第一下游表名对应的第一下游表,两者是错误的匹配关系,需要调整,此时,会生成一个相应的提醒信息,以提醒测试人员进行修改。提醒信息会显示两则不匹配的原因,比如,“第一上游字段类型为数值,第一下游字段类型为文字,所以需要修改匹配关系”等。

在一个实施例中,上述第一上游信息为第一上游字段类型,所述第一下游信息为第一下游字段类型时,所述判断所述第一上游信息和所述第一下游信息是否符合预设的要求的步骤S5,还包括:

S501、判断所述第一上游字段类型和所述第一下游字段类型是否相同;

S502、若所述第一上游字段类型和所述第一下游字段类型相同,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求;

S503、若所述第一上游字段类型和所述第一下游字段类型不相同,则判定所述第一上游信息和所述第一下游信息不符合所述预设的要求。

在本实施例中,上述字段类型包括数据存储格式、精度等,比如,字段类型为数值,那么其对应的列中只能插入数值;字段类型为数值、且长度为X,那么其对应的列中只能插入X长度的数值等。所以,如果第一上游字段类型与所述第一下游字段类型相同,说明第一上游表中的数据可以同步的更新到与其对应的第一下游表中,上述列表中的第一上游表名对应的第一上游表和第一下游表名对应的第一下游表,两者是正确的匹配关系,无需调整。

在另一个实施例中,上述第一上游信息为第一上游字段长度,上述第一下游信息为第一下游字段长度时,上述判断所述第一上游信息和所述第一下游信息是否符合预设的要求的步骤S5,还包括:

S511、判断所述第一下游字段长度是否大于或等于所述第一上游字段长度;

S512、若所述第一下游字段长度大于或等于所述第一上游字段长度,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求;

S513、否所述第一下游字段长度小于所述第一上游字段长度,则判定所述第一上游信息和所述第一下游信息不符合所述预设的要求。

在本实施例中,第一上游表和第一下游表的编码格式可能不同,比如在第一上游表为gbk编码格式,一个中文占用两个字节,第一下游表为utf8编码格式下,一个中文占用三个字节。如果第一上游表和第一下游表的编码格是一致的,那么下游字符类型的字段长度大于等于上游字段长度即可,具体地,如果第一上游表是gbk编码格式而第一下游表是utf8编码格式,那么第一下游字段长度至少应该为第一上游字段长度的1.5倍。在本实施例中,只要判定所述第一下游字段长度大于或等于所述第一上游字段长度,即会认为满足预设的要求。

进一步地,上述若所述第一下游字段长度大于或等于所述第一上游字段长度,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求的步骤S512,包括:

S5121、若所述第一下游字段长度大于或等于所述第一上游字段长度,则获取第一上游表的编码格式,以及第一下游表的编码格式;

S5122、计算第一上游表的编码格式和第一下游表的编码格式之间的字段长度的第一比例关系;

S5123、判断所述第一上游字段长度与所述第一下游字段长度的第二比例关系是否小于等于所述第一比例关系;

S5124、若是,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求。

在本实施例中,是进一步地确定第一下游字段长度的最小值,比如,第一上游表是gbk编码格式而第一下游表是utf8编码格式,那么两个编码格式之间的字段长度的第一比例关系为2/3,那么第一上游字段长度与第一下游字段长度的第二比例关系至少不大于2/3,才能保证第一上游表中的数据可以无误的插入到第一下游表中,比如第二比例关系为2/5、1/2等。也可以理解为第一下游字段长度至少为第一上游字段长度的1.5倍。

在又一个实施例中,上述第一上游信息为第一上游字段类型和第一上游字段长度,上述第一下游信息为第一下游字段类型和第一下游字段长度时,上述判断所述第一上游信息和所述第一下游信息是否符合预设的要求的步骤S5,还包括:

S521、判断所述第一上游字段类型和所述第一下游字段类型是否相同,以及判断所述第一下游字段长度是否大于或等于所述第一上游字段长度;

S522、若所述第一上游字段类型和所述第一下游字段类型相同,以及所述第一下游字段长度大于或等于所述第一上游字段长度,则判定符合所述预设的要求;否则,判定不符合所述预设的要求。

在本实施例中,即为不需同时满足上述第一上游字段类型和所述第一下游字段类型相同的条件,以及所述第一下游字段长度大于或等于所述第一上游字段长度的条件,才会判定第一上游表和第一下游表之间是匹配的,否则会判定两者不匹配。因为,只要上述两个条件中的任意一个条件不达标,那么在将第一上游表中的数据插入到下游表中的时候,都会出现错误,比如,字段类型不同,出现无法插入的错误,下游字段长度小于上游字段长度,无法正常插入的错误等。

在一个实施例中,上述若所述第一上游信息和所述第一下游信息不符合所述预设的要求,则生成提醒信息的步骤S7之后,包括:

S701、判断在指定时间长度内是否接受到外部输入的修改操作信息;

S702、若未接收到所述修改操作信息,则获取预设的测试人员的邮箱地址,将所述提醒信息发送到所述邮箱地址对应的邮箱中。

在本实施例中,在做上游表和下游表匹配的过程中,测试人员是让测试的计算机设备指定进行的,所以测试人员可能不在现场,所以不能及时的进行修改操作,为了防止测试人员忘记进行修改操作,所以发送邮件进行提醒。本实施例中,上述指定时间长度的设置,可以防止测试人员现场已经进行了相应侧修改操作,还会接收到提醒邮件的情况发生。

在一个实施例中,上述若符合所述预设的要求,则判定第一上游表中的数据可以成功的同步到第一下游表中的步骤S6之后,还包括:

S601、当对所述列表中的全部的相对应的上游表和下游表的关系验证结束后,生成验证报告。

在本实施例中,上述验证报告中可以记录验证的结果,比如,将全部的不符合预设要求的上游表和下游表单独整理到报告中等。

本实施例的基于GoldenGate同步工具的数据库中表结构对比方法,可以自动完成上游表和下游表是否匹配的判断过程,无需测试人员认购检测,节省人力资源,而且提高检测的效率。本申请在数据同步之前完成上下游表的匹配过程,从而减少在后续的数据同步过程中,出现数据无法同步的情况发生。

参照图2,本申请实施例还提供一种数据库中表结构对比装置,所述数据库是基于GoldenGate同步工具的数据库,包括:

第一获取单元10,用于获取记录有同步表的同步表名、以及各所述同步表名的数据库连接串的列表,其中,所述同步表包括呈一对一映射关系的上游表和下游表;

第二获取单元20,用于在所述列表中获取相互对应的第一上游表的第一上游表名和第一下游表的第一下游表名,以及与所述第一上游表名对应的第一上游数据库连接串,与所述第一下游表名对应的第一下游数据库连接串;

连接单元30,用于依据所述第一上游数据库连接串连接存储有第一上游表的第一上游数据库,以及依据所述第一下游数据库连接串连接存储有第一下游表的第一下游数据库;

第三获取单元40,用于在所述第一上游数据库中获取所述第一上游表的第一上游信息,以及在所述第一下游数据库中获取所述第一下游表的第一下游信息;

判断单元50,用于判断所述第一上游信息和所述第一下游信息是否符合预设的要求;

第一判定单元60,用于若所述第一上游信息和所述第一下游信息符合所述预设的要求,则判定第一上游表中的数据可以成功的同步到第一下游表中;

第二判定单元70,用于若所述第一上游信息和所述第一下游信息不符合所述预设的要求,则生成提醒信息。

在一个实施例中,上述第一上游信息为第一上游字段类型,所述第一下游信息为第一下游字段类型时,上述判断单元50,还包括:

第一判断模块,用于判断所述第一上游字段类型和所述第一下游字段类型是否相同;

第一判定模块,用于若所述第一上游字段类型和所述第一下游字段类型相同,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求,否则判定所述第一上游信息和所述第一下游信息不符合所述预设的要求。

在另一个实施例中,上述第一上游信息为第一上游字段长度,上述第一下游信息为第一下游字段长度时,上述判断单元50还包括:

第二判断模块,用于判断所述第一下游字段长度是否大于或等于所述第一上游字段长度;

第二判定模块,用于若所述第一下游字段长度大于或等于所述第一上游字段长度,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求,否则判定所述第一上游信息和所述第一下游信息不符合所述预设的要求。

进一步地,上述第二判定模块,包括:

获取子模块,用于若所述第一下游字段长度大于或等于所述第一上游字段长度,则获取第一上游表的编码格式,以及第一下游表的编码格式;

计算子模块,用于计算第一上游表的编码格式和第一下游表的编码格式之间的字段长度的第一比例关系;

判断子模块,用于判断所述第一上游字段长度与所述第一下游字段长度的第二比例关系是否小于等于所述第一比例关系;

判定子模块,用于若所述第一上游字段长度与所述第一下游字段长度的第二比例关系小于等于所述第一比例关系是,则判定所述第一上游信息和所述第一下游信息符合所述预设的要求。

在又一个实施例中,上述第一上游信息为第一上游字段类型和第一上游字段长度,上述第一下游信息为第一下游字段类型和第一下游字段长度时,上述判断单元50,还包括:

第三判断模块,用于判断所述第一上游字段类型和所述第一下游字段类型是否相同,以及判断所述第一下游字段长度是否大于或等于所述第一上游字段长度;

第三判定模块,用于若所述第一上游字段类型和所述第一下游字段类型相同,以及所述第一下游字段长度大于或等于所述第一上游字段长度,则判定符合所述预设的要求;否则,判定不符合所述预设的要求。

在一个实施例中,上述数据库中表结构对比装置还包括:

输入判断单元,用于判断在指定时间长度内是否接受到外部输入的修改操作信息;

发送单元,用于若未接收到所述修改操作信息,则获取预设的测试人员的邮箱地址,将所述提醒信息发送到所述邮箱地址对应的邮箱中。

在一个实施例中,上述数据库中表结构对比装置还包括:

生成单元,用于当对所述列表中的全部的相对应的上游表和下游表的关系验证结束后,生成验证报告。

在本实施例中,上述验证报告中可以记录验证的结果,比如,将全部的不符合预设要求的上游表和下游表单独整理到报告中等。

本实施例的基于GoldenGate同步工具的数据库中表结构对比装置,是执行上述方法的装置,可以自动完成上游表和下游表是否匹配的判断过程,无需测试人员认购检测,节省人力资源,而且提高检测的效率。本申请在数据同步之前完成上下游表的匹配过程,从而减少在后续的数据同步过程中,出现数据无法同步的情况发生。

参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于上游表、下游表等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时可以实现上述任一实施例的数据库中表结构对比方法。

本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的数据库中表结构对比方法

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1