一种基于有向图结构的数据集成方法
技术领域
本发明涉及数据集成领域,尤其涉及一种基于有向图结构的数据集成方法。
背景技术
在“互联网+”、中国制造2025提出后,大数据的重要价值被发现,相关的应用正改变着诸多方面。而大数据分析的质量和有效性在很大程度上依赖于对各个环节数据的整合与集成质量。因此,如何将分散、分布、异构的各“小”数据进行整合,集成为有效的“大”数据以全面共享和支持大数据应用已成为当前需要解决的核心关键问题,也是大数据应用的前提和基础。
数据集成是将分散存放在“数据孤岛”中且在数据模式、格式、结构、表示、特点等方面存在差异的数据在逻辑上或物理上有机地集中,从而提供全面的数据共享服务。其核心关键主要是在不改变分布自治异构数据源原始模式的前提下,用一种统一的模式描述各数据源数据,以消除多源异构数据的多模式冲突,形成统一描述且无冲突的全局模式,屏蔽模式的异构性,维护数据源整体的一致性;以及消解统一描述的各模式间结构冲突这两大难点问题。企业往往渴望能够集成各异构的数据源,以便进行数据共享及数据挖掘等工作。
在数据集成过程中,由于将数据源模式转换为公共模式是第一步,且其后的结构冲突的消除是以公共模式为基础,因此不同的公共模式对数据集成的难易程度影响很大,需要重点考虑。传统的数据集成方法,主要是以XML Schema作为公共模式,使用XML语言描述各异构的数据源模式形成XML文档,然后对XML文档进行更改操作以消除数据源模式间的模式以及结构冲突,形成全局数据集,但其并未对XML模式进行良好的约束,导致模式复杂以及编程实现困难。或者是通过不规则的树形结构为公共模式描述各异构数据源,然后对树形结构进行树节点以及树枝的变化操作消除冲突形成全局数据集,但其树形结构重复节点过多导致消耗存储太多,性能不佳。因此这些方法存在适用范围窄,实现难度大,付出成本高,实用性不高等缺陷。
发明内容
本发明的目的在于提供一种基于有向图结构的数据集成方法,具有节省存储、提高通信效率、性能高、适用范围广的优点。
本发明的上述目的是通过以下技术方案得以实现的:
一种基于有向图结构的数据集成方法,包括适配器、融合器、分析器和集成引擎解析器,还包括以下步骤:
S1、适配器找出数据源注册信息且连接各异构数据源,并通过各异构数据源的元数据库获得描述各异构数据的数据源模式,通过图形结构将数据源模式进行模式转换,转换为公共模式集,消除模式表示冲突,数据源模式包括数据库名、表名、字段名、数据类型和主外键;
S2、通过适配器获得的数据源模式信息按模式转换规则以及转换流程转换为模式图上对应的节点,模式图包括第一层节点、第二层节点、第三层节点和第四层节点,将数据库名映射为无入度的第一层节点,将各数据表名映射为入度为1的第二层节点,将表中各字段名映射为入度出度都等于1的第三层节点,将各字段的数据类型映射为无出度的第四层节点,各相同信息映射为相同节点,形成对应于数据源模式的模式图集合,并按需要进行调整,将在适配器中形成的模式图描述的数据源模式通过接口与数据集成引擎中的融合器通信;
S3、在分析器中对模式图集的各个元素进行对比,发现结构和语义冲突并按预定义的模式图操作完成相应操作,即消除各模式间的结构冲突,形成完整、统一、无冲突的全局模式,将相应的操作的更改为映射规则,对节点集和边集进行操作,操作包括针对单个模式图中节点值的修改、删除节点及与之关联的边集、增加对应边集的节点、修改对应的节点、增加边集以及针对模式图节点之间的合并、替换、节点的嫁接操作,单个模式图中的节点合并表示将数据源中存在合并等价关系的数据映射为模式图上同一节点,可消除单个数据源数据的冲突,模式图间节点的合并与嫁接操作代表数据源间数据存在等价关系的数据映射为模式图中同一节点,用于消除数据源间的数据冲突;
S4、将全局模式作为数据中心的数据模式,将数据源的数据按照全局模式与映射规则集的约束迁移到数据中心,完成数据的集成。
进一步,所述步骤S4中的映射规则集是在集成过程中自动对比生成,主要记录模式图操作所做的各种更改,包括对单个模式图节点及边集的操作以及模式图间对节点集以及边集的操作,据此映射规则,可以保持数据源局部模式以及全局模式的相互映射,保持两者的独立性。
进一步,所述步骤S2还包括以下步骤:
S201、查找注册信息;
S202、连接数据源;
S203、获取元数据集;
S204、若元数据集的数据库名集合为空,则断开连接,结束操作否则进行下一步骤;
S205、将数据库名映射为模式图的第一层节点;
S206、表名集合为空则返回步骤S204,否为进行下一步;
S207、获取集合元素对应的表名元数据集;
S208、表名映射为模式图的第二层节点;
S209、字段合集为空,则返回步骤S206,否则进行下一步;
S210、获取集合元素对应的字段名元数据集;
S211、字段映射为模式图第三层节点;
S212、获取字段类型及其约束条件;
S213、映射为模式图第四层节点;
S214、添加到模式图集合,进行步骤S206。
综上所述,本发明具有以下有益效果:
本专利提出的具有良好约束条件的有向图作为公共模式对各异构数据模式进行统一描述与表示,消除了异构模式描述与表示的差异;然后将各异构的数据源模式转换成使用模式图描述的形式,形成了数据源的模式图集;并通过对图形结构节点集及边集定义变换操作以及等价条件,模式图相互比对自动生成映射规则文档集以消除模式间冲突,重组为全局模式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的整体流程图;
图2是本发明实施例的数据集成流程示意图;
图3是本发明实施例的模式图结构示意图;
图4是本发明实施例的模式转换流程示意图;
图5是本发明实施例的单模式图节点及边集操作示意图;
图6是本发明实施例的模式图间节点及边集操作示意图。
具体实施方式
在下面的详细描述中,提出了许多具体细节,以便于对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好地理解。
下面将结合附图,对本发明实施例的技术方案进行描述。
实施例:
如图1所示,一种基于有向图结构的数据集成方法,包括适配器、融合器、分析器和集成引擎解析器,还包括以下步骤:
S1、如图1和图2所示,适配器找出数据源注册信息且连接各异构数据源,并通过各异构数据源的元数据库获得描述各异构数据的数据源模式,通过图形结构将数据源模式进行模式转换,转换为公共模式集,消除模式表示冲突,数据源模式包括数据库名、表名、字段名、数据类型和主外键;
S2、如图2和图3所示,通过适配器获得的数据源模式信息按模式转换规则以及转换流程转换为模式图上对应的节点,模式图包括第一层节点、第二层节点、第三层节点和第四层节点,将数据库名映射为无入度的第一层节点,将各数据表名映射为入度为1的第二层节点,将表中各字段名映射为入度出度都等于1的第三层节点,将各字段的数据类型映射为无出度的第四层节点,各相同信息映射为相同节点,形成对应于数据源模式的模式图集合,并按需要进行调整,将在适配器中形成的模式图描述的数据源模式通过接口与数据集成引擎中的融合器通信;
S3、如图5和图6所示,在分析器中对模式图集的各个元素进行对比,发现结构和语义冲突并按预定义的模式图操作完成相应操作,即消除各模式间的结构冲突,形成完整、统一、无冲突的全局模式,将相应的操作的更改为映射规则,对节点集和边集进行操作,操作包括针对单个模式图中节点值的修改、删除节点及与之关联的边集、增加对应边集的节点、修改对应的节点、增加边集以及针对模式图节点之间的合并、替换、节点的嫁接操作,单个模式图中的节点合并表示将数据源中存在合并等价关系的数据映射为模式图上同一节点,可消除单个数据源数据的冲突,模式图间节点的合并与嫁接操作代表数据源间数据存在等价关系的数据映射为模式图中同一节点,用于消除数据源间的数据冲突;
S4、将全局模式作为数据中心的数据模式,将数据源的数据按照全局模式与映射规则集的约束迁移到数据中心,完成数据的集成。
步骤S4中的映射规则集是在集成过程中自动对比生成,主要记录模式图操作所做的各种更改,包括对单个模式图节点及边集的操作以及模式图间对节点集以及边集的操作,据此映射规则,可以保持数据源局部模式以及全局模式的相互映射,保持两者的独立性。
如图4所示,步骤S2还包括以下步骤:
S201、查找注册信息;
S202、连接数据源;
S203、获取元数据集;
S204、若元数据集的数据库名集合为空,则断开连接,结束操作否则进行下一步骤;
S205、将数据库名映射为模式图的第一层节点;
S206、表名集合为空则返回步骤S204,否为进行下一步;
S207、获取集合元素对应的表名元数据集;
S208、表名映射为模式图的第二层节点;
S209、字段合集为空,则返回步骤S206,否则进行下一步;
S210、获取集合元素对应的字段名元数据集;
S211、字段映射为模式图第三层节点;
S212、获取字段类型及其约束条件;
S213、映射为模式图第四层节点;
S214、添加到模式图集合,进行步骤S206。
本专利提出的具有良好约束条件的有向图作为公共模式对各异构数据模式进行统一描述与表示,消除了异构模式描述与表示的差异;然后将各异构的数据源模式转换成使用模式图描述的形式,形成了数据源的模式图集;并通过对图形结构节点集及边集定义变换操作以及等价条件,模式图相互比对自动生成映射规则文档集以消除模式间冲突,重组为全局模式。
以上实施例仅用以说明本发明的技术方案,而非对发明的保护范围进行限制。显然,所描述的实施例仅仅是本发明部分实施例,而不是全部实施例。基于这些实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明所要保护的范围。
尽管参照上述实施例对本发明进行了详细的说明,本领域普通技术人员依然可以在不冲突的情况下,不作出创造性劳动对本发明各实施例中的特征根据情况相互组合、增删或作其他调整,从而得到不同的、本质未脱离本发明的构思的其他技术方案,这些技术方案也同样属于本发明所要保护的范围。