本发明涉及数据库
技术领域:
:,更具体的是涉及一种实现多种类型的数据库融合使用的方法。
背景技术:
::近几年,各类大数据技术迅猛发展,数据处理量呈现几何级增长,数据类型也从传统结构化数据延伸到实时数据流以及各类非结构化数据,传统数据库单一技术包打天下的局面无法适应复杂多变的海量数据处理,从而出现了各类nosql技术和newsql技术,形成了不同技术解决不同场景应用的局面。现有的数据库环境中,通常根据各自处理的业务特点的不同采用不同的数据库产品管理业务数据,以不同的数据模型描述数据,这样便形成了多种异构数据库并行的情况。这种情况下,在对数据库进行操作时,需要操作多个异构数据库的数据并进行大量分析后才能做出最后的结论。因此,如何从多个分布的、异构的数据库中快速整合数据、实现数据的透明访问成为解决数据库系统瓶颈的重要问题。现有的异构数据库查询方法主要包括以下三种:1、联邦数据库模式:在每两个数据库之间使用数据转换接口实现数据的相互访问,如果系统中有n个异构数据库,就需要建立n*(n-1)个映射才能实现所有异构数据源之间的访问,工作量大,扩展性很差;2、中介模式:利用中介器将用户查询分解成一个或多个相应数据源的查询,再经由包装器向数据库查询和返回结果给中介器,中介器整合结果最终返回给用户;3、数据仓库:将多个异构数据库的数据副本按照一个统一的要求进行处理、转换并存储到数据仓库中,用户需要在多个数据库中获取数据时,直接在数据仓库中就能完成。上述的三种异构数据库查询方法各有所长,但均存在以下两个不足:1、数据的整合在应用层实现,未从数据层的源头出发上述三种查询方法,只是做到了多源异构数据库的数据的整合和展现,原本存放数据的多种数据库并未改变,仍然是分离的、独立的;2、数据库的用户和维护人员的学习成本高各个数据库的语法是各不相同,甚至大相径庭的,在操作和维护这个多源异构数据库系统之前需要使用人员和维护人员熟练掌握多种数据库的语法,学习成本、后期故障排查的时间成本都较高。技术实现要素:本发明的目的在于:为了解决现有的异构数据库查询方法的数据整合只是在应用层实现,未从数据层的源头出发,导致原本存放数据的多种数据库之间仍然分离独立的问题,本发明提供一种实现多种类型的数据库融合使用的方法,从数据层出发,在一个数据库中融合关系数据库、文档数据库和图数据库,实现不同类型和结构的数据的统一管理。本发明为了实现上述目的具体采用以下技术方案:一种实现多种类型的数据库融合使用的方法,包括如下步骤:s1、统一表形式:将关系数据库中的关系表和图数据库中的图数据表统一转换为附带json字段的表形式,对应得到预设关系表结构和预设图数据表结构,以融合文档数据库中的文档数据和其他类型的数据,其中,预设关系表结构包括若干关系表类型记录,预设图数据表结构包括若干图类型记录;s2、填充json字段:从文档数据库中选择json文档,提取json文档的json内容,并将json内容转换为文本形式,建立json内容的bson信息,bson信息以高效的组织形式描述json文本,分别对预设关系表结构和预设图数据表结构中的json字段进行填充;s3、设置虚拟全局地址编码:分别赋予每一个关系表类型记录和图类型记录相对应的唯一的虚拟全局地址编码;s4、标识表空间:对预设关系表结构和预设图数据表结构进行表空间标识。进一步的,所述s1中json字段位于预设关系表结构的若干关系表类型记录和预设图数据表的若干图类型记录的任意位置。进一步的,所述预设图数据表结构包括图数据库节点表和图数据库关系表,图数据库节点表和图数据库关系表分别由若干图类型记录组成,json字段分别位于图数据库节点表和图数据库关系表的每一个记录的任意位置。进一步的,所述s2中填充json字段,包括如下步骤:s2.1:从文档数据库中选择json文档,提取json文档的json内容,并将json内容转换为文本形式,得到json文本;s2.2:分析json内容,建立json内容的bson信息;s2.3:将bson信息和json文本填充到预设关系表结构和预设图数据表结构对应的记录中。进一步的,所述s3中的虚拟全局地址编码的编码空间的建立,包括如下步骤:s3.1:指定虚拟全局地址编码的类型;s3.2:指定虚拟全局地址编码的长度,综合未来数据库容量、虚拟全局地址编码的类型以及当前需求对虚拟全局地址编码的长度进行设置;s3.3:建立虚拟全局地址编码的分发与回收机制,用于增加和删除记录时对记录的虚拟全局地址编码的操作,并对虚拟全局地址编码的分发状态做标记;s3.4:建立虚拟全局地址编码与物理地址的映射关系,并将映射关系存放到内存或缓存中。进一步的,所述s4中的表空间的标识,包括如下步骤:s4.1:建立预设关系表结构和预设图数据表结构的表名称与表数据类型的对应关系;s4.2:建立预设关系表结构和预设图数据表结构的表名称与虚拟全局地址编码的从属关系;s4.3:为预设关系表结构和预设图数据表结构指定命名规则。进一步的,所述s4.3中,指定命名规则前,提前制定关系表与图数据表间的名称矛盾处理机制或按照应用需求在应用层或开发人员自行处理重复名称的矛盾。本发明的有益效果如下:1、本发明从数据层出发,建立各类型表的统一存储结构,在一个数据库中融合关系数据库、文档数据库和图数据库,实现不同类型和结构的数据的统一管理,并提出json字段的合理填充方式,将json数据以字段的形式添加到对应的表单当中,以形成一个逻辑自洽的完整数据库形式。2、本发明从数据库的根源出发,打破多源异构数据库系统中各种数据库相互独立的壁垒,实现传统关系型数据库和nosql的融合,在融合数据库使用过程中无需进行数据的跨数据库传输,大幅降低了异构数据的传输成本,简化应用层和中间件的使用逻辑。3、本发明从数据库整体的层次考虑,对记录建立统一的虚拟全局地址编码的方式,提供统一的定位和存储手段,使得采用统一方式对数据库进行操作处理。4、本发明可根据不同数据的特性选用关系表、文档表、图类型表等不同类型的描述方式,便于合理规划存储方案,减少数据冗余,提升资源利用率。附图说明图1是本发明的预设关系表结构和预设图数据表结构。具体实施方式为了本
技术领域:
:的人员更好的理解本发明,下面结合附图和以下实施例对本发明作进一步详细描述。实施例1如图1所示,本实施例提供一种实现多种类型的数据库融合使用的方法,包括如下步骤:s1、统一表形式:将关系数据库中的关系表和图数据库中的图数据表统一转换为附带json字段的表形式,对应得到预设关系表结构和预设图数据表结构,以融合文档数据库中的文档数据和其他类型的数据,其中,预设关系表结构包括若干关系表类型记录,预设图数据表结构包括图数据库节点表和图数据库关系表,图数据库节点表和图数据库关系表分别由若干图类型记录组成,json字段可以位于若干关系表类型记录和图类型记录的任意位置;本实施例中将json字段分别添加到关系表和图数据表的末尾,即json字段位于若干关系表类型记录和图类型记录的末尾,并应用到所有新添加到数据库中的记录;s2、填充json字段:从文档数据库中选择json文档,提取json文档的json内容,并将json内容转换为文本形式,建立json文本的bson信息,分别对预设关系表结构和预设图数据表结构中的json字段进行填充,包括如下步骤;s2.1:在文档数据库中选择json文档,提取json文档中的json内容,并将json内容转换为文本形式,得到json文本,所述json内容选择的条件根据实际情况人为进行指定,比如选择p_id=1的json文本,提取json内容;s2.2:分析json内容,建立json内容的bson信息,所述bson信息包括描述json内容中任意字段的起始位置、结束位置和建立字段间的排列组织关系;json内容中可以包含字符串、数字、数组,也可以内嵌json内容;s2.3:将bson信息和json文本填充到对应的记录中,由于仅指定了json字段位于记录的末端,而没有指定具体的记录,本实施例中的对应关系根据具体情况人为指定,比如,将该有效字符串添加到预设关系表结构中age=20的记录中;若没有指定字符串和记录的对应关系,则新增一个记录项,除了json字段外其他字段为空或默认属性;s3、设置虚拟全局地址编码:分别赋予每一个关系表类型记录和图类型记录相对应的唯一的虚拟全局地址编码,每一个记录进入数据库的关系表或图数据表时,赋予它一个唯一的虚拟全局地址编码,json字段在表中可见,虚拟全局地址编码在表中不可见,虚拟全局地址编码的编码空间的建立,包括如下步骤:s3.1:指定虚拟全局地址编码的类型,可以采用纯粹的数字编码、英文编码、二者混用的编码或者其他可用的编码类型;s3.2:指定虚拟全局地址编码的长度,综合未来数据库容量、虚拟全局地址编码的类型以及当前需求对虚拟全局地址编码的长度进行设置;s3.3:建立虚拟全局地址编码的分发与回收机制,用于增加和删除记录时对记录的虚拟全局地址编码的操作,并对虚拟全局地址编码的分发状态做标记,例如可以建立可用地址编码表,在表中将正在使用的编码标记为1,未被使用、可用于分发的编码标记为0;s3.4:建立数据库记录、虚拟全局地址编码、物理地址的唯一映射关系,并将映射关系存放到内存或缓存中;s4、标识表空间:每一个数据表都需要一个唯一的名称进行标识,同时需要用表内记录来唯一标识数据表,对预设关系表结构和预设图数据表结构进行表空间标志,包括如下步骤:s4.1:建立预设关系表结构和预设图数据表结构的表名称与表数据类型的对应关系;s4.2:建立预设关系表结构和预设图数据表结构的表名称与虚拟全局地址编码的从属关系,比如表“table_1”包含虚拟全局地址编码为“12297829382473034648”与“32394225382473063785”两条记录;s4.3:为预设关系表结构和预设图数据表结构指定命名规则;指定命名规则前,提前制定关系表与图数据表间的名称矛盾处理机制或按照应用需求在应用层或开发人员自行处理重复名称的矛盾。本实施例从数据层出发,建立各类型表的统一存储结构,在一个数据库中融合关系数据库、文档数据库和图数据库,实现不同类型和结构的数据的统一管理,并提出json字段的合理填充方式,将json数据以字段的形式添加到对应的表单当中,形成了一个逻辑自洽的完整数据库形式。以上所述,仅为本发明的较佳实施例,并不用以限制本发明,本发明的专利保护范围以权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。当前第1页12当前第1页12