支持分层的元数据同步方法及元数据同步装置与流程

文档序号:12124611阅读:196来源:国知局
支持分层的元数据同步方法及元数据同步装置与流程
本发明涉及数据处理
技术领域
,具体而言,涉及一种支持分层的元数据同步方法和一种支持分层的元数据同步装置。
背景技术
:元数据是用于描述要素、数据集或数据集系列的内容、覆盖范围、质量、管理方式、数据的所有者和数据的提供方式等有关的信息,也即是用于描述数据的数据,元数据可以为数据说明其元素或属性或结构或其相关数据等,是最小的数据单元。比如,一条职员实体信息记录中,其中包括字段姓名(name)、年龄(age)、性别(male)等,那么name、age和male就是元数据。元数据通常是在开发环境即源数据库中创建和维护,并在生产环境即目标数据库中使用的,如果元数据有变化需要更新时,需要在源数据库中进行变更,然后再同步到目标数据库中来实现目标数据库中的元数据更新。现有的同步方式通常是将源数据库中的元数据导出为数据库脚本,然后将目标数据库中描述相同对象的元数据删除,之后在目标数据库中执行该数据库脚本,重新创建该元数据,以实现元数据的同步。但是,现有的这种以迁移方式实现数据同步的方法并没有考虑目标数据库中的元数据与源数据库中的元数据是否相同。在元数据相同或部分相同的情况下,若仍全部删除目标数据库中的元数据,则会造成数据资源的浪费,进而影响了处理器的处理性能。同时,企业软件一般都是允许基于标准产品(出厂产品)进行客户开发或者行业扩展开发等,对于同一种元数据(比如职员信息),客户开发或者行业扩展开发通常会进行属性的添加替换等,为了保证标准产品的元数据结构不被破坏,这种情况下客户开发或者行业开发修改的元数据是不能直接覆盖标准产品的元数据,而是要有自己专属层的元数据,在专属层上客户开发或者行业开发可以根据实际需要对元数据进行修改。因此,如何能够在进行元数据同步时,避免全部删除目标数据库中的元数据之后再执行数据库脚本而造成数据资源的浪费,同时避免不同层次的元数据相互覆盖成为亟待解决的技术问题。技术实现要素:本发明正是基于上述技术问题至少之一,提出了一种新的支持分层的元数据同步方案,可以避免不同层次的元数据之间出现相互覆盖的问题,同时无需完全删除目标数据库中的所有元数据之后再重新创建元数据,避免了数据资源的浪费,有利于提高处理器的处理性能。有鉴于此,根据本发明的第一方面,提出了一种支持分层的元数据同步方法,包括:分别根据源数据库中和目标数据库中的元数据描述的对象结构,确定所述对象结构分别对应的源XML(ExtensibleMarkupLanguage,可扩展标记语言)结构和目标XML结构;根据配置的元数据需要同步的层次、所述源XML结构和所述目标XML结构,分别将所述源数据库中和所述目标数据库中的所述层次的元数据转换为源XML和目标XML;根据所述源XML和所述目标XML确定差异节点,所述差异节点表示所述层次的元数据在从所述源数据库中同步到所述目标数据库中时对应的变更类型;根据所述差异节点生成对应的目标数据库操作脚本;在所述目标数据库中执行所述目标数据库操作脚本,以将所述层次的元数据在所述源数据库与所述目标数据库之间进行同步。在该技术方案中,通过根据源数据库中和目标数据库中的元数据描述的对象结构,确定源XML结构和目标XML结构,进而根据配置的元数据需要同步的层次以及确定的源XML结构和目标XML结构,将源数据库中和目标数据库中对应层次的元数据转换为源XML和目标XML,以基于源XML和目标XML的对比来进行元数据的同步,使得在进行元数据的同步时,能够考虑到元数据的分层问题,进而能够避免不同层次的元数据之间出现相互覆盖的问题。而通过根据源XML和目标XML确定差异节点,根据差异节点生成对应的目标数据库操作脚本,并在目标数据库中执行目标数据库操作脚本,以将相应层次的元数据在源数据库与目标数据库之间进行同步,使得在进行元数据的同步时,仅需根据源数据库与目标数据库中存在差异的部分生成相应的数据库操作脚本,无需完全删除目标数据库中的所有元数据之后再重新创建元数据,避免了数据资源的浪费,并且能够提高处理器的处理性能。在上述技术方案中,优选地,根据所述源XML和所述目标XML确定差异节点的步骤,具体包括:基于XMLDiff算法获取所述源XML与所述目标XML之间所有不同的节点;根据所述所有不同的节点确定所述源XML相对于所述目标XML的所述差异节点,所述差异节点包括更新节点、新增节点和删除节点。在该技术方案中,XMLDiff算法即是将源XML与目标XML进行对比,以获取到二者之间不相同的节点,进而可以确定源XML相对于目标XML的差异节点。具体地,比如源XML和目标XML的一个相同节点的数值不同,那么该差异节点即为更新节点,只需更新相应节点的数值即可;若源XML相比于目标XML增加了一个新的节点,那么该差异节点即为新增节点,需要在目标数据库中增加该节点;若源XML相比于目标XML减少了一个新的节点,那么该差异节点即为删除节点,需要在目标数据库中删除该节点。进一步地,在基于XMLDiff算法获取所述源XML与所述目标XML之间所有不同的节点的步骤之前,还包括:在所述源数据库中将所述源XML保存为文件;将所述文件移动至所述目标数据库中,以基于所述XMLDiff算法获取所述文件中的所述源XML与所述目标XML之间所有不同的节点。在该技术方案中,由于源XML是位于源数据库中,而目标XML是位于目标数据库中的,因此通过在源数据库中将源XML保存为文件,并移动至目标数据库中,使得源XML与目标XML之间能够进行对比,以获取到二者之间所有不同的节点。在上述任一技术方案中,优选地,在根据所述源XML和所述目标XML确定差异节点的步骤之后,还包括:在所述源XML中标记出所述差异节点;显示标记有所述差异节点的所述源XML和所述目标XML。在该技术方案中,通过在源XML中标记出源XML与目标XML之间的差异节点,并显示标记有差异节点的源XML和目标XML,使得用户能够清楚直观地得知源XML与目标XML之间存在差异的节点。在上述任一技术方案中,优选地,所述的支持分层的元数据同步方法,还包括:显示用于配置元数据需要同步的层次的配置界面;基于用户的配置操作,确定所述元数据需要同步的层次。在该技术方案中,通过显示用于配置元数据需要同步的层次的配置界面,以基于用户的配置操作来确定元数据需要同步的层次,使得用户能够灵活地对需要同步的元数据的层次来进行配置。根据本发明的第二方面,还提出了一种支持分层的元数据同步装置,包括:预处理单元,用于分别根据源数据库中和目标数据库中的元数据描述的对象结构,确定所述对象结构分别对应的源XML结构和目标XML结构;XML生成单元,用于根据配置的元数据需要同步的层次、所述源XML结构和所述目标XML结构,分别将所述源数据库中和所述目标数据库中的所述层次的元数据转换为源XML和目标XML;差异节点确定单元,用于根据所述源XML和所述目标XML确定差异节点,所述差异节点表示所述层次的元数据在从所述源数据库中同步到所述目标数据库中时对应的变更类型;脚本生成单元,用于根据所述差异节点生成对应的目标数据库操作脚本;数据同步单元,用于在所述目标数据库中执行所述目标数据库操作脚本,以将所述层次的元数据在所述源数据库与所述目标数据库之间进行同步。在该技术方案中,通过根据源数据库中和目标数据库中的元数据描述的对象结构,确定源XML结构和目标XML结构,进而根据配置的元数据需要同步的层次以及确定的源XML结构和目标XML结构,将源数据库中和目标数据库中对应层次的元数据转换为源XML和目标XML,以基于源XML和目标XML的对比来进行元数据的同步,使得在进行元数据的同步时,能够考虑到元数据的分层问题,进而能够避免不同层次的元数据之间出现相互覆盖的问题。而通过根据源XML和目标XML确定差异节点,根据差异节点生成对应的目标数据库操作脚本,并在目标数据库中执行目标数据库操作脚本,以将相应层次的元数据在源数据库与目标数据库之间进行同步,使得在进行元数据的同步时,仅需根据源数据库与目标数据库中存在差异的部分生成相应的数据库操作脚本,无需完全删除目标数据库中的所有元数据之后再重新创建元数据,避免了数据资源的浪费,并且能够提高处理器的处理性能。在上述技术方案中,优选地,所述差异节点确定单元具体包括:获取单元,用于基于XMLDiff算法获取所述源XML与所述目标XML之间所有不同的节点;执行单元,用于根据所述所有不同的节点确定所述源XML相对于所述目标XML的所述差异节点,所述差异节点包括更新节点、新增节点和删除节点。在该技术方案中,XMLDiff算法即是将源XML与目标XML进行对比,以获取到二者之间不相同的节点,进而可以确定源XML相对于目标XML的差异节点。具体地,比如源XML和目标XML的一个相同节点的数值不同,那么该差异节点即为更新节点,只需更新相应节点的数值即可;若源XML相比于目标XML增加了一个新的节点,那么该差异节点即为新增节点,需要在目标数据库中增加该节点;若源XML相比于目标XML减少了一个新的节点,那么该差异节点即为删除节点,需要在目标数据库中删除该节点。进一步地,所述的支持分层的元数据同步装置还包括:XML保存单元,用于在所述源数据库中将所述源XML保存为文件;文件移动单元,用于将所述文件移动至所述目标数据库中;所述获取单元具体用于,基于所述XMLDiff算法获取所述文件中的所述源XML与所述目标XML之间所有不同的节点。在该技术方案中,由于源XML是位于源数据库中,而目标XML是位于目标数据库中的,因此通过在源数据库中将源XML保存为文件,并移动至目标数据库中,使得源XML与目标XML之间能够进行对比,以获取到二者之间所有不同的节点。在上述任一技术方案中,优选地,所述的支持分层的元数据同步装置,还包括:标记单元,用于在所述差异节点确定单元确定出所述差异节点之后,在所述源XML中标记出所述差异节点;第一显示单元,用于显示标记有所述差异节点的所述源XML和所述目标XML。在该技术方案中,通过在源XML中标记出源XML与目标XML之间的差异节点,并显示标记有差异节点的源XML和目标XML,使得用户能够清楚直观地得知源XML与目标XML之间存在差异的节点。在上述任一技术方案中,优选地,所述的支持分层的元数据同步装置,还包括:第二显示单元,显示用于配置元数据需要同步的层次的配置界面;层次确定单元,用于基于用户的配置操作,确定所述元数据需要同步的层次。在该技术方案中,通过显示用于配置元数据需要同步的层次的配置界面,以基于用户的配置操作来确定元数据需要同步的层次,使得用户能够灵活地对需要同步的元数据的层次来进行配置。通过以上技术方案,可以避免不同层次的元数据之间出现相互覆盖的问题,同时无需完全删除目标数据库中的所有元数据之后再重新创建元数据,避免了数据资源的浪费,有利于提高处理器的处理性能。附图说明图1示出了根据本发明的第一个实施例的支持分层的元数据同步方法的流程示意图;图2示出了根据本发明的第一个实施例的支持分层的元数据同步装置的示意框图;图3示出了根据本发明的第二个实施例的支持分层的元数据同步方法的流程示意图;图4示出了根据本发明的实施例的配置元数据需要同步的层次的界面示意图;图5示出了根据本发明的实施例的分析得到的XML结构示意图;图6示出了根据本发明的第三个实施例的支持分层的元数据同步方法的流程示意图;图7示出了根据本发明的实施例的源XML与目标XML之间的对比示意图;图8示出了根据本发明的第二个实施例的支持分层的元数据同步装置的示意框图;图9示出了根据本发明的第三个实施例的支持分层的元数据同步装置的示意框图。具体实施方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。图1示出了根据本发明的第一个实施例的支持分层的元数据同步方法的流程示意图。如图1所示,根据本发明的第一个实施例的支持分层的元数据同步方法,包括:步骤S10,分别根据源数据库中和目标数据库中的元数据描述的对象结构,确定所述对象结构分别对应的源XML结构和目标XML结构。步骤S12,根据配置的元数据需要同步的层次、所述源XML结构和所述目标XML结构,分别将所述源数据库中和所述目标数据库中的所述层次的元数据转换为源XML和目标XML。步骤S14,根据所述源XML和所述目标XML确定差异节点,所述差异节点表示所述层次的元数据在从所述源数据库中同步到所述目标数据库中时对应的变更类型。步骤S16,根据所述差异节点生成对应的目标数据库操作脚本。步骤S18,在所述目标数据库中执行所述目标数据库操作脚本,以将所述层次的元数据在所述源数据库与所述目标数据库之间进行同步。在图1所示的技术方案中,通过根据源数据库中和目标数据库中的元数据描述的对象结构,确定源XML结构和目标XML结构,进而根据配置的元数据需要同步的层次以及确定的源XML结构和目标XML结构,将源数据库中和目标数据库中对应层次的元数据转换为源XML和目标XML,以基于源XML和目标XML的对比来进行元数据的同步,使得在进行元数据的同步时,能够考虑到元数据的分层问题,进而能够避免不同层次的元数据之间出现相互覆盖的问题。而通过根据源XML和目标XML确定差异节点,根据差异节点生成对应的目标数据库操作脚本,并在目标数据库中执行目标数据库操作脚本,以将相应层次的元数据在源数据库与目标数据库之间进行同步,使得在进行元数据的同步时,仅需根据源数据库与目标数据库中存在差异的部分生成相应的数据库操作脚本,无需完全删除目标数据库中的所有元数据之后再重新创建元数据,避免了数据资源的浪费,并且能够提高处理器的处理性能。在本发明的一个具体实施例中,上述步骤S14具体包括:基于XMLDiff算法获取所述源XML与所述目标XML之间所有不同的节点;根据所述所有不同的节点确定所述源XML相对于所述目标XML的所述差异节点,所述差异节点包括更新节点、新增节点和删除节点。在该实施例中,XMLDiff算法即是将源XML与目标XML进行对比,以获取到二者之间不相同的节点,进而可以确定源XML相对于目标XML的差异节点。具体地,比如源XML和目标XML的一个相同节点的数值不同,那么该差异节点即为更新节点,只需更新相应节点的数值即可;若源XML相比于目标XML增加了一个新的节点,那么该差异节点即为新增节点,需要在目标数据库中增加该节点;若源XML相比于目标XML减少了一个新的节点,那么该差异节点即为删除节点,需要在目标数据库中删除该节点。进一步地,在基于XMLDiff算法获取所述源XML与所述目标XML之间所有不同的节点的步骤之前,还包括:在所述源数据库中将所述源XML保存为文件;将所述文件移动至所述目标数据库中,以基于所述XMLDiff算法获取所述文件中的所述源XML与所述目标XML之间所有不同的节点。在该技术方案中,由于源XML是位于源数据库中,而目标XML是位于目标数据库中的,因此通过在源数据库中将源XML保存为文件,并移动至目标数据库中,使得源XML与目标XML之间能够进行对比,以获取到二者之间所有不同的节点。在本发明的一个优选实施例中,在根据所述源XML和所述目标XML确定差异节点的步骤之后,还包括:在所述源XML中标记出所述差异节点;显示标记有所述差异节点的所述源XML和所述目标XML。在该实施例中,通过在源XML中标记出源XML与目标XML之间的差异节点,并显示标记有差异节点的源XML和目标XML,使得用户能够清楚直观地得知源XML与目标XML之间存在差异的节点。在本发明的一个优选实施例中,所述的支持分层的元数据同步方法,还包括:显示用于配置元数据需要同步的层次的配置界面;基于用户的配置操作,确定所述元数据需要同步的层次。在该实施例中,通过显示用于配置元数据需要同步的层次的配置界面,以基于用户的配置操作来确定元数据需要同步的层次,使得用户能够灵活地对需要同步的元数据的层次来进行配置。图2示出了根据本发明的第一个实施例的支持分层的元数据同步装置的示意框图。如图2所示,根据本发明的第一个实施例的支持分层的元数据同步装置200,包括:预处理单元202、XML生成单元204、差异节点确定单元206、脚本生成单元208和数据同步单元210。其中,预处理单元202用于分别根据源数据库中和目标数据库中的元数据描述的对象结构,确定所述对象结构分别对应的源XML结构和目标XML结构;XML生成单元204用于根据配置的元数据需要同步的层次、所述源XML结构和所述目标XML结构,分别将所述源数据库中和所述目标数据库中的所述层次的元数据转换为源XML和目标XML;差异节点确定单元206用于根据所述源XML和所述目标XML确定差异节点,所述差异节点表示所述层次的元数据在从所述源数据库中同步到所述目标数据库中时对应的变更类型;脚本生成单元208用于根据所述差异节点生成对应的目标数据库操作脚本;数据同步单元210用于在所述目标数据库中执行所述目标数据库操作脚本,以将所述层次的元数据在所述源数据库与所述目标数据库之间进行同步。在该技术方案中,通过根据源数据库中和目标数据库中的元数据描述的对象结构,确定源XML结构和目标XML结构,进而根据配置的元数据需要同步的层次以及确定的源XML结构和目标XML结构,将源数据库中和目标数据库中对应层次的元数据转换为源XML和目标XML,以基于源XML和目标XML的对比来进行元数据的同步,使得在进行元数据的同步时,能够考虑到元数据的分层问题,进而能够避免不同层次的元数据之间出现相互覆盖的问题。而通过根据源XML和目标XML确定差异节点,根据差异节点生成对应的目标数据库操作脚本,并在目标数据库中执行目标数据库操作脚本,以将相应层次的元数据在源数据库与目标数据库之间进行同步,使得在进行元数据的同步时,仅需根据源数据库与目标数据库中存在差异的部分生成相应的数据库操作脚本,无需完全删除目标数据库中的所有元数据之后再重新创建元数据,避免了数据资源的浪费,并且能够提高处理器的处理性能。在上述技术方案中,优选地,所述差异节点确定单元206具体包括:获取单元2062和执行单元2064。其中,获取单元2062用于基于XMLDiff算法获取所述源XML与所述目标XML之间所有不同的节点;执行单元2064用于根据所述所有不同的节点确定所述源XML相对于所述目标XML的所述差异节点,所述差异节点包括更新节点、新增节点和删除节点。在该技术方案中,XMLDiff算法即是将源XML与目标XML进行对比,以获取到二者之间不相同的节点,进而可以确定源XML相对于目标XML的差异节点。具体地,比如源XML和目标XML的一个相同节点的数值不同,那么该差异节点即为更新节点,只需更新相应节点的数值即可;若源XML相比于目标XML增加了一个新的节点,那么该差异节点即为新增节点,需要在目标数据库中增加该节点;若源XML相比于目标XML减少了一个新的节点,那么该差异节点即为删除节点,需要在目标数据库中删除该节点。进一步地,如图2所示,所述的支持分层的元数据同步装置200还可以还包括:XML保存单元212和文件移动单元214。其中,XML保存单元212用于在所述源数据库中将所述源XML保存为文件;文件移动单元214用于将所述文件移动至所述目标数据库中;所述获取单元2062具体用于,基于所述XMLDiff算法获取所述文件中的所述源XML与所述目标XML之间所有不同的节点。在该技术方案中,由于源XML是位于源数据库中,而目标XML是位于目标数据库中的,因此通过在源数据库中将源XML保存为文件,并移动至目标数据库中,使得源XML与目标XML之间能够进行对比,以获取到二者之间所有不同的节点。进一步地,所述的支持分层的元数据同步装置200还可以包括:标记单元216和第一显示单元218。其中,标记单元216用于在所述差异节点确定单元确定出所述差异节点之后,在所述源XML中标记出所述差异节点;第一显示单元218用于显示标记有所述差异节点的所述源XML和所述目标XML。在该技术方案中,通过在源XML中标记出源XML与目标XML之间的差异节点,并显示标记有差异节点的源XML和目标XML,使得用户能够清楚直观地得知源XML与目标XML之间存在差异的节点。进一步地,所述的支持分层的元数据同步装置200还可以包括:第二显示单元220和层次确定单元222。其中,第二显示单元220显示用于配置元数据需要同步的层次的配置界面;层次确定单元222用于基于用户的配置操作,确定所述元数据需要同步的层次。在该技术方案中,通过显示用于配置元数据需要同步的层次的配置界面,以基于用户的配置操作来确定元数据需要同步的层次,使得用户能够灵活地对需要同步的元数据的层次来进行配置。以下以员工实体记录表信息为例详细说明本发明的技术方案。其中,员工实体的结构如表1和表2所示:entityNameprimaryKeyentityCodelayeremployeepk-entity-employeeEntity-01Layer-01表1其中,表1描述的是员工实体。fieldNameentityPkfieldPkfieldTypewidthEmp-namepk-entity-employeePk-field-emp-namestring100Emp-genderpk-entity-employeePk-field-emp-genderemployeePkinteger表2其中,表2描述的是员工实体字段。如图3所示,根据本发明的第二个实施例的支持分层的元数据同步方法,包括:步骤302,配置元数据导出的层次。具体地,假设标准产品层次为layer-0,行业产品层次为layer-01,客户开发产品层次为layer-02,要导出的层次为layer-01,也即表1中所示的员工实体层。在一个优选实施例中,步骤302具体包括:提供供用户使用的元数据导出层次配置界面,记录用户所选的配置,以确定用户配置的层次。其中,配置界面可以如图4所示。步骤304,分别根据源数据库中和目标数据库中的元数据描述的对象结构,分析出该对象结构分别对应的源XML结构和目标XML结构。其中,XML是一种简单的数据存储语言,其使用一系列简单的标记描述数据。源XML结构和目标XML结构中都包含了元数据对应的层次。源XML结构中的节点名称和元数据层次分别对应元数据所描述的对象结构中的元素名称和元数据层次;目标XML结构中的节点名称和元数据层次也分别对应元数据所描述的对象结构中的元素名称和元数据层次。具体地,根据表1和表2描述的员工实体结构以及步骤302中所配置的元数据层次,可分析得出其对应的XML结构,具体如图5所示。其中,元数据所描述的员工实体结构中的每个元素名称都对应XML结构中的一个节点名称。步骤306,根据源XML结构、目标XML结构和配置的层次,分别将源数据库中和目标数据库中相应层次的元数据转换成源XML和目标XML。需要说明的是上述步骤中所举实例只是为了更好说明根据XML结构如何将元数据转换成XML形式,元数据描述对象并不限于数据库表的形式。步骤308,在源数据库中将源XML保存为文件,并将所述文件迁移到目标数据库中。具体地,将源数据库的元数据转换为源XML形式后保存到文件中,可以便于将源XML通过文件的形式迁移到目标数据库中与目标XML进行比较。步骤310,依据目标XML和保存在文件中的源XML获取差异节点。其中,该差异节点表示元数据需要变更的类型,变更的类型包括新增、更新或删除。具体地,根据目标XML和源XML,采用XMLDiff算法即可得出目标XML和源XML所有不同的节点,然后从这些不同的节点中确定源XML相对于目标XML的差异节点。比如,源XML相比于目标XML有对应的节点所表示的数值不一样,那么差异节点就为更新节点;若有增加的节点,则差异节点就为新增节点;若有减少的节点,则差异节点就为删除节点。也即是说,获取的所有差异节点包括新增节点、更新节点和删除节点中的一种或多种。需要说明的是,在步骤310中,若目标XML和源XML之间不存在不同的节点,也即目标XML与源XML中相应层次的元数据是相同的,无需同步,则结束流程,不再进行后续的操作。步骤312,根据差异节点生成对应的目标数据库操作脚本。具体地,在获取到源XML相对于目标XML的差异节点之后,可以根据源XML相对于目标XML的差异节点生成对应的目标数据库操作脚本,即本发明的技术方案可以只针对差异节点对应的元数据内容来对目标数据库中的元数据进行变更。步骤314,在目标数据库中执行目标数据库操作脚本。执行目标数据库操作脚本即可将目标数据库中需要变更的元数据进行变更,从而实现了目标数据库与源数据库中元数据的同步。如图6所示,根据本发明的第三个实施例的支持分层的元数据同步方法,包括:步骤602,配置元数据导出的层次。具体地,假设标准产品层次为layer-0,行业产品层次为layer-01,客户开发产品层次为layer-02,要导出的层次为layer-01,也即表1中所示的员工实体层。在一个优选实施例中,步骤302具体包括:提供供用户使用的元数据导出层次配置界面,记录用户所选的配置,以确定用户配置的层次。其中,配置界面也可以如图4所示。步骤604,分别根据源数据库中和目标数据库中的元数据描述的对象结构,分析出该对象结构分别对应的源XML结构和目标XML结构。具体地,根据表1和表2描述的员工实体结构以及步骤602中所配置的元数据层次,可分析得出其对应的XML结构,具体如图5所示。步骤606,根据源XML结构、目标XML结构和配置的层次,分别将源数据库中和目标数据库中相应层次的元数据转换成源XML和目标XML。步骤608,在源数据库中将源XML保存为文件,并将所述文件迁移到目标数据库中。具体地,将源数据库的元数据转换为源XML形式后保存到文件中,可以便于将源XML通过文件的形式迁移到目标数据库中与目标XML进行比较。步骤610,依据目标XML和保存在文件中的源XML获取差异节点。其中,该差异节点表示元数据需要变更的类型,变更的类型包括新增、更新或删除。具体地,根据目标XML和源XML,采用XMLDiff算法即可得出目标XML和源XML所有不同的节点,然后从这些不同的节点中确定源XML相对于目标XML的差异节点。需要说明的是,在步骤610中,若目标XML和源XML之间不存在不同的节点,也即目标XML与源XML中相应层次的元数据是相同的,无需同步,则结束流程,不再进行后续的操作。步骤612,根据差异节点生成对应的目标数据库操作脚本。具体地,在获取到源XML相对于目标XML的差异节点之后,可以根据源XML相对于目标XML的差异节点生成对应的目标数据库操作脚本,即本发明的技术方案可以只针对差异节点对应的元数据内容来对目标数据库中的元数据进行变更。步骤614,在源XML中标记出所述的差异节点。步骤616,将目标XML和标记出差异节点的源XML显示在用户界面上。仍以员工实体数据库记录表为例,假设源数据库和目标数据库中的表示员工实体的元数据都已转换成XML形式,并进行了比较。如图7所示为在用户界面上显示的元数据比较结果图,左半部分代表目标XML,右半部分代表源XML,由图7可以看出,源XML相比于目标XML,其中字段Emp-name的width有数据更新,则可以用更新图标(图7中的方框仅为示例)标记。需要说明的所举的具体实例只是为了更好的说明,差异节点还可能有新增节点和删除节点,且新增节点和删除节点也可以用相应的图标进行标记,以便于用户识别。步骤618,接收用户在用户界面点击的变更操作。具体地,用户可以根据界面的显示决定是否进行变更,若需要进行变更,则可以点击差异节点对应的菜单或是变更按钮,处理器即可接收到用户的变更请求。步骤620,依据变更操作触发目标数据库操作脚本的执行。接收到用户的变更请求时,在目标数据库中执行目标数据库操作脚本,从而实现了目标数据库与源数据库中元数据的同步。相应地,本发明还提出了第二个实施例的支持分层的元数据同步装置,具体如图8所示,包括:元数据导出层次配置模块802,用于配置元数据导出的层次;预处理模块804,用于分别根据源数据库中和目标数据中的元数据描述的对象结构,分析出所述的对象结构分别对应的源XML结构和目标XML结构。XML生成模块806,用于根据源XML结构和目标XML结构及配置的层次,分别将源数据库中和目标数据库中的元数据转换成源XML和目标XML(包含了元数据层次)。XML保存模块808,用于在源数据库中将源XML保存为文件,并将所述文件迁移到目标数据库中。差异节点获取模块810,用于依据目标XML和保存在文件中的源XML获取差异节点,所述差异节点表示元数据需要变更的类型,所述变更类型包括新增、更新或删除。脚本生成模块812,用于根据差异节点的内容,生成对应的数据库操作脚本,所述的数据库操作脚本用于变更目标数据库中的元数据。数据变更模块814,用于在目标数据库中执行所述目标数据库操作脚本以实现目标数据库与源数据库中元数据的同步。如图9所示,根据本发明的第三个实施例的支持分层的元数据同步装置,包括:元数据导出层次配置模块902,用于配置元数据导出的层次;预处理模块904,用于分别根据源数据库中和目标数据中的元数据描述的对象结构,分析出所述的对象结构分别对应的源XML结构和目标XML结构。XML生成模块906,用于根据源XML结构和目标XML结构及配置的层次,分别将源数据库中和目标数据库中的元数据转换成源XML和目标XML。XML保存模块908,用于在源数据库中将源XML保存为文件,并将所述文件迁移到目标数据库中。第一获取模块910,用于采用XMLDiff算法获取目标XML和源XML之间所有不同的节点。第二获取模块912,用于从第一获取模块910获取的不同节点中确定目标XML相对于源XML的差异节点。脚本生成模块914,用于根据差异节点的内容,生成对应的数据库操作脚本,所述的数据库操作脚本用于变更目标数据库中的元数据。差异标记模块916,用于在源XML中标记出差异节点。差异显示模块918,用于将标记出差异节点的源XML和目标XML显示在用户界面上。接收请求模块920,用于接收用户在用户界面上点击的变更操作请求。变更触发模块922,用于依据所述变更操作请求触发目标数据库操作脚本的执行。需要说明的是,当第一获取模块910获取不到不同的节点时,即表示目标数据库和源数据库中的元数据相同,此时元数据同步装置还包括:结束模块(图中未示出),用于在第一获取模块910获取不到差异节点时,结束流程。本发明上述实施例的技术方案通过将源数据库中和目标数据库中的元数据转换成XML形式,并通过比较得出目标数据库中哪些元数据需要进行变更,即确定两个XML之间的差异节点,使得能够只针对需要变更的元数据生成数据库操作脚本,进而在目标数据库中执行该脚本进行变更即可,无需删除目标数据库中的所有元数据再重新创建,节约了数据资源,提高了处理器的处理性能,并且解决了不同层次的元数据相互覆盖问题。以上结合附图详细说明了本发明的技术方案,本发明提出了一种新的支持分层的元数据同步方案,可以避免不同层次的元数据之间出现相互覆盖的问题,同时无需完全删除目标数据库中的所有元数据之后再重新创建元数据,避免了数据资源的浪费,有利于提高处理器的处理性能。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1