1.本技术涉及数据处理技术领域,尤其涉及一种异构数据库的数据存储方法、数据查询方法及相关装置。
背景技术:2.随着信息时代的快速发展,各种场景下产生的数据越来越多,为了满足不同场景的需求,可以为不同场景或者不同业务下的数据构建对应的数据库,这样一来,数据库的类型越来越多。在某种场景下,用户需要查询的数据可能被存储在不同的数据库中。
3.现有数据存储方式,不便于后续数据查询。比如,为了查询不同数据库中的数据,用户需要编写符合不同数据库的查询语句,一一到不同数据库中进行查询。不仅导致查询速度很慢,还要求用户具有查询语句编写能力。
4.因此,如何以一种方便用户查询的方式存储数据成为当前数据处理领域急需解决的技术问题之一。
技术实现要素:5.本技术实施例提供了一种异构数据库的数据存储方法、数据查询方法及相关装置,将异构数据库中数据以统一的数据存储结构整合存储到数据存储系统中,这种存储方式实现了对数据库中数据的统一管理,并且后续如果用户想要查询数据时,可以直接在数据存储系统中进行查询即可,无需构造适合不同数据库的查询语句,可在一定程度上提高查询效率。
6.一方面,本技术实施例提供了一种异构数据库的数据存储方法,应用于数据存储系统,所述数据存储系统包括多个存储索引,一个存储索引中包括多个存储节点,一个存储节点包括至少一个分片,每个分片用于存储数据。数据存储方法包括:获取多个数据库内的数据;所述多个数据库中存在至少两个数据库具有不同的数据存储结构;将所述多个数据库内的数据按照所述数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到所述数据存储系统的分片中。
7.一方面,本技术实施例还提供了一种异构数据库的数据查询方法,包括:获取用户针对数据存储系统输入的数据查询文本;所述数据存储系统包括多个存储索引,一个存储索引包括多个存储节点,一个存储节点中包括至少一个分片,每个分片用于存储数据;所述数据存储系统用于存储来自多个数据库的数据,所述多个数据库中存在至少两个数据库具有不同的数据存储结构;所述多个数据库中的数据按照本技术提供的异构数据库的数据存储方法被整合存储到所述数据存储系统中;对所述数据查询文本进行查询关键词分词处理,并将分词处理得到的分词添加到关键词序列;基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到并输
出检索结果。
8.一方面,本技术实施例提供了一种异构数据库的数据存储装置,应用于数据存储系统,所述数据存储系统包括多个存储索引,一个存储索引中包括多个存储节点,一个存储节点包括至少一个分片,每个分片用于存储数据,所述数据存储包括:获取单元,用于获取多个数据库内的数据;所述多个数据库中存在至少两个数据库具有不同的数据存储结构;处理单元,用于将所述多个数据库内的数据按照所述数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到所述数据存储系统的分片中。
9.一方面,本技术实施例提供了一种异构数据库的数据查询装置,包括:获取单元,用于获取用户针对数据存储系统输入的数据查询文本;所述数据存储系统包括多个存储索引,一个存储索引包括多个存储节点,一个存储节点中包括至少一个分片,每个分片用于存储数据;所述存储系统用于存储来自多个数据库的数据,所述多个数据库中存在至少两个数据库具有不同的数据存储结构;所述多个数据库中的数据按照本技术提供的异构数据库的数据存储方法被整合存储到所述数据存储系统中;处理单元,用于对所述数据查询文本进行查询关键词分词处理,并将分词处理得到的分词添加到关键词序列;所述处理单元,还用于基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到并输出检索结果。
10.一方面,本技术实施例提供了一种数据处理设备,包括:处理器,适用于实现一条或多条计算机程序;计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由处理器加载并执行:获取多个数据库内的数据;所述多个数据库中存在至少两个数据库具有不同的数据存储结构;将所述多个数据库内的数据按照所述数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到所述数据存储系统的分片中。
11.或者,所述一条或多条计算机程序还适于由处理器加载并执行:获取用户针对数据存储系统输入的数据查询文本;所述数据存储系统包括多个存储索引,一个存储索引包括多个存储节点,一个存储节点中包括至少一个分片,每个分片用于存储数据;所述数据存储系统用于存储来自多个数据库的数据,所述多个数据库中存在至少两个数据库具有不同的数据存储结构;所述多个数据库中的数据按照本技术提供的异构数据库的数据存储方法被整合存储到所述数据存储系统中;对所述数据查询文本进行查询关键词分词处理,并将分词处理得到的分词添加到关键词序列;基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到并输出检索结果。
12.一方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被数据处理设备的处理器执行时,用于执行:获取多个数据库内的数据;所述多个数据库中存在至少两个数据库具有不同的数
据存储结构;将所述多个数据库内的数据按照所述数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到所述数据存储系统的分片中。
13.或者,所述计算机程序被数据处理设备的处理器执行时,还用于执行:获取用户针对数据存储系统输入的数据查询文本;所述数据存储系统包括多个存储索引,一个存储索引包括多个存储节点,一个存储节点中包括至少一个分片,每个分片用于存储数据;所述数据存储系统用于存储来自多个数据库的数据,所述多个数据库中存在至少两个数据库具有不同的数据存储结构;所述多个数据库中的数据按照本技术提供的异构数据库的数据存储方法被整合存储到所述数据存储系统中;对所述数据查询文本进行查询关键词分词处理,并将分词处理得到的分词添加到关键词序列;基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到并输出检索结果。
14.一方面,本技术实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,该计算机程序存储在计算机存储介质中;数据处理设备的处理器从计算机存储介质中读取计算机程序,该处理器执行计算机程序,使得数据处理设备执行上述的异构数据库的数据存储方法以及异构数据库的数据查询方法。
15.本技术实施例中提出了一个用于存储数据的数据存储系统,该数据存储系统中包括多个存储索引,一个存储索引中包括多个存储节点,每个存储节点又包括至少一个分片,数据存储系统中的数据存储在分片中。数据存储系统的各个分片中存储的数据来自于多个数据库。本技术实施例中,将多个数据库中的数据存储到数据存储系统,具体步骤是,首先获取到多个数据库中的数据,这多个数据库可以是异构数据库,所谓异构数据库是指数据存储结构不同的数据库;然后将多个数据库内的数据按照数据存储系统对应的数据存储结构及逆行异构数据整合处理,并将异构整合和处理后的数据存储到数据存储系统的分片中。
16.可见,本技术提供的数据存储方法,实现了对异构数据库中数据的统一存储,如此一来,当用户需要进行数据查询时,只需要输入针对数据存储系统的数据查询文本即可,无需针对不同数据库构建多个查询语句,实现了简单、快捷的数据查询,提高了数据查询效率。
附图说明
17.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是本技术实施例提供的一种数据处理系统的结构示意图;图2是本技术实施例提供的一种异构数据库的数据存储方法的流程示意图;图3是本技术实施例提供的一种分片合并处理的示意图;图4是本技术实施例提供的一种异构数据库的数据查询方法的流程示意图;图5是本技术实施例提供的一种异构数据库的数据存储装置的结构示意图;
图6是本技术实施例提供的一种异构数据库的数据查询装置的结构示意图;图7是本技术实施例提供的一种数据处理设备的结构示意图。
具体实施方式
19.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。需要说明的是,本技术在下述描述中凡是涉及到对象在社交应用中的各种信息,比如头像标识、虚拟形象以及名称标识等等,均是经过相应对象的允许后获取的。
20.为了解决异构数据库中数据存储以及数据查询过程中存在的问题,本技术实施例提供了一种异构数据库的数据存储方案,具体实现中,将异构数据库中的数据提取出来,然后按照数据存储系统所支持的数据存储结构对这些数据进行异构整合处理,最后将异构整合后的数据存储到数据存储系统,实现了对异构数据库中数据进行统一管理和存储。所谓的异构数据库是指具有不同数据存储结构的多个数据库,换句话说,这多个数据库中存在至少两个数据库的数据结构不相同就可以称为是异构数据库。相应的,本技术还提供了一种异构数据库的数据查询方案,当用户想要查询数据时,只需要输入针对数据存储系统的数据查询文本即可,无需构建针对不同数据库的查询语句,就可以实现对多个数据库中数据的查询。
21.上述异构数据库的数据存储方案以及异构数据库的数据查询方案可均由同一个数据处理设备执行,或者由不同数据处理设备执行。假设数据存储方案和数据查询方案均由同一个数据处理设备执行,该数据处理设备可以是终端或者服务器。其中,终端可以包括手机、笔记本电脑、车载终端等设备,服务器可以指独立的物理服务器、由多个服务器组成的服务器集群,或者能够进行云计算的云服务器。
22.基于上述的数据存储方案以及数据查询方案,本技术实施例提供了一种数据处理系统,参见图1,为本技术实施例提供的一种数据处理系统的结构示意图。在图1所示的数据处理系统中,可以包括异构数据库101、数据存储系统102,数据处理设备103以及用户终端104。
23.其中,异构数据库可以是oracle、mysql、sqlserver、access、mongodb等常见数据库,本技术只是列举一些,对于具体的数据库不做具体限定。数据存储系统102中包括多个存储索引,比如存储索引1和存储索引2,每个存储索引中包括多个存储节点,比如存储索引1中包括存储节点1、存储节点2以及存储节点3,每个存储节点中包括多个分片,每个分片适用于存储数据。
24.不同的数据库中以相应的数据存储结构存储数据,当需要对各个数据库中的数据整合存储时,数据处理设备103从101处获取各个数据库中的数据,然后按照数据存储系统的数据存储结构对各个数据库的数据进行异构数据整合处理,并将处理后的数据存储在数据存储系统的各个分片中。
25.当用户需要对多个数据库中的数据进行查询时,用户通过用户终端104输入数据查询文本,数据处理设备103从用户终端104获取到数据查询文本之后,对数据查询文本进行分词处理,并将分词处理得到的分词添加到关键词序列;进一步的,基于关键词序列在数据存储系统102的多个存储索引中进行检索,得到检索结果后,可以将检索结果传输给用户终端104,由用户终端104将检索结果显示给用户。
26.上述的数据处理系统中,通过一个数据存储系统,将异构数据库中的数据整合存储,以便于用户可以直接在数据存储系统中进行数据检索和查询,无需用户构建适于不同数据库的查询语句,方便用户查询,降低数据查询门槛,也减轻了各个异构数据库的查询压力,提升查询效率。
27.基于上述的数据处理系统,本技术实施例提供了一种异构数据库的数据处理方法,参见图2,为本技术实施例提供的一种异构数据库的数据处理方法的流程示意图。图2所示的数据处理方法可包括如下步骤:步骤s201、获取多个数据库内的数据。
28.其中,这多个数据库中存在至少两个数据库具有不同的数据存储结构,也就是说,这多个数据库是异构数据库。各个数据库,可能由于存储数据的类型不同,导致数据存储结构不同。在每个数据库中,数据可以是以表格形式存储的,因此,步骤s201中获取多个数据库内的数据,可以包括:获取多个数据库的表信息,表信息可以包括表名称、表注释说明、字段类型、字段说明、字段名称、数据内容等信息。
29.在一个实施例中,获取多个数据库内的数据,可以包括:向多个数据库发送数据获取请求;各个数据库响应该获取请求,并向数据处理设备回复各自的数据。
30.在另一个实施例中,为每个数据库设置一个数据整合周期,当每个数据库的数据整合周期到达时,每个数据库自动向数据存储设备发送各自的数据。其中,每个数据库对应的数据整合周期可以是基于每个数据库对应业务的数据产生量确定的,比如,一个数据库对应的业务,其产生数据比较频繁,那么该数据库对应的数据整合周期就可以设置得短一些,如果一个数据库对应的业务产生数据频率不高,那么为该数据库设置的数据整合周期就可以长一些。如此一来,既可以保证每个数据库中的数据可以异步、在不影响业务正常运行的情况下整合存储到数据存储系统,又可以基于每个数据库的数据产生特点具有针对性的整合数据,避免各个数据库与数据存储设备之间交互资源的浪费。
31.步骤s202、将多个数据库内的数据按照数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到数据存储系统的分片中。
32.其中,数据存储系统是用于存储各个数据库中的数据的,数据存储系统的系统结构可参见图1中102所示,数据存储系统包括多个存储索引,一个存储索引中包括多个存储节点,一个存储节点包括至少一个分片,每个分片都用于存储数据。也就是说,分片是数据存储系统的最小单位。
33.在数据存储系统中一个存储索引对应一个数据类型,数据存储系统对应的数据存储结构可以是指:存储索引-存储方式-文档-字段,其中,存储索引就是指数据存储系统中的多个存储、存储方式是数据在分片中的存储方式,任意一个存储索引对应的文档是用于记录存储在该任意一个存储索引各个分片中数据包括的各个字段。
34.简单来说,数据存储系统对应的数据存储结构就是用于反映存储索引、存储类型、文档以及字段四者之间的关联关系。一个存储索引可能对应一种或多种存储方式,该存储索引对应的文档中用于记录存储在该存储索引各个分片中的数据对应的字段。
35.基于上述,步骤s202中将多个数据库内的数据按照数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到数据存储系统的分片中,可包括:
针对多个数据库中的任意一个数据,基于任意一个数据的数据类型以及每个存储索引对应的数据类型为任意一个数据确定对应的目标存储索引;采用与任意一个数据类型相匹配的存储方式将意一个数据存入到目标存储索引的任意一个分片中,并将该任意一个数据对应的字段记录在目标存储索引中。
36.其中,任意一个数据类型相匹配的存储方式可包括如下任意一种或多种:倒排索引存储方式、列式存储方式以及域值存储方式。其中,倒排索引存储方式inverted index主要规则是一个有序的数据字典dictionary(包括关键词term和它出现的频率)和与单词term对应的postings(即存在这个单词的文件),当搜索的时候,首先将搜索的内容分解,然后在字典里找到对应term,从而查找到与搜索相关的文件内容。
37.例如当我们想要查找“c”开头的单词时,可以简单地通过二分查找(binary search)在inverted index表中找到例如“choice”、“coming”这样的词。
38.域值存储方式stored fields主要是满足对特定标题的查找,stored fields是一个简单的键值对key-value,它将原始数据存储为json文件。列式存储方式document values提供数据的排序、聚合等功能,满足特定情况下的检索。当用户检索时,会检索全部的分片,将每一个符合特征的分片返回,并呈现给用户,如果用户自行定义了分词,则在最初存储的时候将分词特征写入索引,检索时根据交并集原则获取每一个索引的标识,并根据term相似度得分进行联想检索和呈现。
39.在一个实施例中,为了节省数据处理设备的利用率问题,本技术实施例在数据存储系统中,无论哪种存储方式下,可以采用公共前缀和后缀的方法存储,以降低存储空间。比如,对于数据存储系统中均是以ab作为开头的数据,可以把ab去掉;再如,对于数据存储系统中均是以fm结束的数据,可以把fm去掉。
40.在另一个实施例中,本技术实施例采用成熟的压缩技术,将数据进行压缩存储,这样一来,也可以节省存储空间。
41.在其他实施例中,为了更进一步节省数据处理设备的利用率,本技术实施例还可以对数据存储系统中的存储索引进行筛查并删除意义不大的存储索引。可选的,可以基于每个存储索引的使用频率以及数据量进行筛查。具体地,确定每个存储索引在预设时间段内的使用频率;若任意一个存储索引在预设时间段的使用频率小于频率阈值,则获取任意一个存储索引下存储的数据量;如果任意一个存储索引下的数据量小于数据量阈值,则删除存储索引以及存储在存储索引下的数据。
42.应当理解的,每个存储索引的每个节点中的分片会随着时间以及存入每个节点中的数据不断增加。那么随着时间的增长,将会产生很多的分片。数据处理设备会严格限制每个存储节点中分片的数量,若任意一个分片内的任意一个节点中分片的数量超过预设分片数量值,则对任意一个分片内的部分分片进行合并处理,得到新的分片,并将参与合并处理的分片删除。例如,参见图3,为本技术实施例提供的一种分片合并处理的示意图,假设某个分片中分片1
……
分片n,这些分片是需要合并的,那么就将这些分片进行合并处理,得到一个新分片,随后,将分片1
……
分片n删除处理。
43.合并处理时需要保证合并后得到新的分片中存储的数据量满足预先设置的合并分片数据量阈值。预设分片数量值以及合并分片数据量阈值,均是与分片所在的存储索引相关的。不同存储索引,由于存储的数据类型不同,可以依据需要设置各自对应预设分片数
量以及合并分片数量阈值,本技术实施例不做具体限定。
44.本技术实施例中提出了一个用于存储数据的数据存储系统,该数据存储系统中包括多个存储索引,一个存储索引中包括多个存储节点,每个存储节点又包括至少一个分片,数据存储系统中的数据存储在分片中。数据存储系统的各个分片中存储的数据来自于多个数据库。本技术实施例中,将多个数据库中的数据存储到数据存储系统,具体步骤是,首先获取到多个数据库中的数据,这多个数据库可以是异构数据库,所谓异构数据库是指数据存储结构不同的数据库;然后将多个数据库内的数据按照数据存储系统对应的数据存储结构及逆行异构数据整合处理,并将异构整合和处理后的数据存储到数据存储系统的分片中。
45.可见,本技术提供的数据存储方法,实现了对异构数据库中数据的统一存储,如此一来,当用户需要进行数据查询时,只需要输入针对数据存储系统的数据查询文本即可,无需针对不同数据库构建多个查询语句,实现了简单、快捷的数据查询,提高了数据查询效率。
46.基于上述的数据存储方法,本技术实施例提供了一种异构数据库的数据查询方法,参见图4,为本技术实施例提供的一种异构数据库的数据处理方法的流程示意图。图4所示的数据查询方法包括如下步骤:步骤s401、获取用户针对数据存储系统输入的数据查询文本。
47.其中,数据存储系统的具体结构可参见图1中数据存储系统102以及图2实施例中步骤s202中的描述,在此不再赘述。
48.在一个实施例中,数据处理设备可以通过用户终端为用户提供一个查询入口,用户点击该查询入口后可以输入数据查询文本,然后用户终端将用户输入的数据查询文本发送给数据处理设备。
49.该数据查询文本可以是指用户通过用户终端直接输入的一个词、一段文本,或者,数据查询文本还可以是将用户通过用户终端输入的一段拼音进行语音转文本处理后得到的。
50.步骤s402、对数据查询文本进行查询关键词分词处理,并将分词处理得到的分词添加到关键词序列。
51.在一个实施例中,数据处理设备可以通过一个分词模型对数据查询文本进行关键词分词处理;或者,数据处理设备还可以通过结巴分词等一些分词算法对数据查询文本进行关键词分词处理,对于具体的分词方式,可以依据实际需求进行设置,本技术不做具体限定。
52.可选的,关键词序列中除了包括对数据查询文本进行查询关键词分词处理后得到的分词之外,还可以包括用户指定的分词。应当理解的,对于不同用户而言,对分词的要求可能不同,为了提高分词的准确性,可以让用户在输入数据查询文本时,自己输入对该数据查询文本的分词,或者获取用户常用的一些分词中与当前数据查询文本相关的分词。
53.步骤s403、基于关键词序列在数据存储系统的多个存储索引中进行检索,得到并输出检索结果。
54.可选的,基于关键词序列在数据存储系统的多个存储索引中进行检索,具体可以包括:将关键词序列中的各个关键词依次组合,在多个存储索引中查找包括每个组合的数
据,最后将查询到的这些数据作为检索结果进行输出。
55.其中,将关键词序列中的各个关键词依次组合是指:将关键词序列中所有分词进行组合,查询包括所有分词的数据;然后再将关键词序列中除去一个分词,将其他分词进行组合,查询包括该次组合的数据;以此类推,得到所有检索结果。
56.每个检索结果可以对应一个存储索引,检索结果对应的存储索引用于表示该检索结果是在该存储索引中查询到的。另外,由于检索结果可以按照基于多少个分词检索到的进行得分计算,分数越高的检索结果,排序越靠前,分词的数量越多,得分越高。
57.由前述可知,每个存储索引对应一种数据类型,在进行数据检索时,可以先确定要检索的数据在存储时是被存储到哪个存储索引中的,然后到相应的存储索引中进行检索,如此一来,可以节省检索时间,进而提高检索效率。并且,前述也提到,每个数据在存储时采用了不同的存储方式,那么在检索时,也要采用与存储方式相对应的查询方式进行查询。
58.基于此,基于关键词序列在数据存储系统的多个存储索引中进行检索,得到检索结果,可以包括:确定所述用户所要查询数据的目标数据类型以及目标存储方式,并确定与所述目标数据类型对应的存储索引;在所述与所述目标数据类型对应的存储索引下各个节点中,按照所述目标存储方式对应的查询方式检测所述关键词序列中各个关键词,得到并输出检索结果。
59.通过上述步骤s401-步骤s403的描述,假设数据处理设备包括中介器/综合包装器和数据库操作模块,本技术提出一种数据查询的具体应用场景,如下:用户终端通过浏览器显示一个查询入口,当用户在查询入口输入了数据查询文本时,浏览器向应用层统一接口发送查询请求;应用层通过一接口收到查询请求后进行分析执行,转化为查询参数(即数据查询文本),中介器得到查询参数后,到序列化的文档(也就是各个存储索引对应的文档)中查找,并通过查询规则进行api分解,生成符合此次查询特征的分词子元素,并放入队列之中执行命中匹配;综合包装器通过数据库操作模块,从队列中将全部命中结果进行相似度匹配,最终将响应后数据结果发送给综合包装器,然后将检索结果转换成json文档,最后将统一的查询结果发送给用户终端。
60.本技术实施例中,提出了一个用于存储数据的数据存储系统,该数据存储系统中包括多个存储索引,一个存储索引中包括多个存储节点,每个存储节点又包括至少一个分片,数据存储系统中的数据存储在分片中。数据存储系统中的数据是将各个数据库中的数据采用数据存储系统对应的数据存储结构进行异构数据整合处理后存储的。数据存储系统的各个分片中存储的数据来自于多个数据库。当需要进行数据查询时,首先需要对用户输入的数据查询文本进行检索关键词分词处理,并将分词处理得到的分词存储到关键词序列中,进而,基于关键词序列在数据存储系统的各个存储索引中进行检索,得到检索结果。
61.采用上述的数据存储以及数据查询方法,为异构数据库检索提供了便利,并且,由于数据存储系统的内存机制和索引机制的使用,能够根据检索的分词快速检索到检索结果,提升了检索速度。
62.另外,本技术的数据查询方法不仅减轻了对数据库的依赖,还能查询数据库难以实现的操作。例如,开发人员通常使用数据库来查询表内数据,但当要查询表结构、字段类型时,往往需要查找系统表,并使用多个语句关联才能得到结果,本技术的数据查询方法能实现像检索表内容一样,检索结构信息。
63.此外,本技术的数据存储和数据查询方法,利用了内容和非关系型数据库的特点快速实现内容检索,查询的最小单元是数据存储系统中的文档,这些文档以硬盘作为载体,以内容为检索媒介,统一将各个异构数据库中的数据进行整合,实现跨平台数据检索。
64.基于上述基于数据存储方法实施例,本技术实施例提供了一种异构数据库的数据存储装置,参见图5,为本技术实施例提供的一种异构数据库的数据存储装置的示意图。图5所示的数据存储装置应用于数据存储系统,所述数据存储系统包括多个存储索引,一个存储索引中包括多个存储节点,一个存储节点包括至少一个分片,每个分片用于存储数据,数据存储装置可运行如下单元:获取单元501,用于获取多个数据库内的数据;所述多个数据库中存在至少两个数据库具有不同的数据存储结构;处理单元502,用于将所述多个数据库内的数据按照所述数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到所述数据存储系统的分片中。
65.在一个实施例中,一个存储索引对应一个数据类型,所述数据存储系统对应的数据存储结构包括:存储索引-存储方式-文档-字段;任意一个存储索引对应的文档是用于记录存储在所述任意一个存储索引各个分片中数据包括的各个字段;所述处理单元502在将所述多个数据库内的数据按照所述数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到所述数据存储系统的分片中时,执行如下步骤:针对所述多个数据库中的任意一个数据,基于所述任意一个数据的数据类型以及每个存储索引对应的数据类型为所述任意一个数据确定对应的目标存储索引;采用与所述任意一个数据类型相匹配的存储方式将所述任意一个数据存入到所述目标存储索引的任意一个分片中,并将所述任意一个数据对应的字段记录在所述目标存储索引对应的文档中。
66.在一个实施例中,所述任意一个数据类型相匹配的存储方式包括如下任意一种或多种:倒排索引存储方式、列式存储方式以及域值存储方式。
67.在一个实施例中,所述处理单元502还用于执行:确定每个存储索引在预设时间段内的使用频率;若任意一个存储索引在所述预设时间段内的使用频率小于频率阈值,则获取所述任意一个存储索引下存储的数据量;如果所述任意一个存储索引下的数据量小于数量阈值,则删除所述存储索引以及存储在所述存储索引中的数据。
68.在一个实施例中,每个存储索引的每个节点中的分片随着时间以及存入每个节点中数据不断增加;所述处理单元502还用于执行:针对任意一个存储索引,若所述任意一个存储索引中的任意一个节点中分片的数量超过预设分片数量值,则对所述任意一个节点内的部分分片进行合并处理,得到新的分片,并将参与所述合并处理的分片删除;新的分片中存储的数据量满足预先设置的合并分片数据量阈值。
69.本技术实施例中提出了一个用于存储数据的数据存储系统,该数据存储系统中包
括多个存储索引,一个存储索引中包括多个存储节点,每个存储节点又包括至少一个分片,数据存储系统中的数据存储在分片中。数据存储系统的各个分片中存储的数据来自于多个数据库。本技术实施例中,将多个数据库中的数据存储到数据存储系统,具体步骤是,首先获取到多个数据库中的数据,这多个数据库可以是异构数据库,所谓异构数据库是指数据存储结构不同的数据库;然后将多个数据库内的数据按照数据存储系统对应的数据存储结构及逆行异构数据整合处理,并将异构整合和处理后的数据存储到数据存储系统的分片中。
70.可见,本技术提供的数据存储方法,实现了对异构数据库中数据的统一存储,如此一来,当用户需要进行数据查询时,只需要输入针对数据存储系统的数据查询文本即可,无需针对不同数据库构建多个查询语句,实现了简单、快捷的数据查询,提高了数据查询效率。
71.基于上述的数据查询方法实施例,本技术实施例提供了一种异构数据库的数据查询装置。参见图6,为本技术实施例提供的一种异构数据库的数据查询装置的结构示意图。图6所示的数据查询装置可运行如下单元:获取单元601,用于获取用户针对数据存储系统输入的数据查询文本;所述数据存储系统包括多个存储索引,一个存储索引包括多个存储节点,一个存储节点中包括至少一个分片,每个分片用于存储数据;所述存储系统用于存储来自多个数据库的数据,所述多个数据库中存在至少两个数据库具有不同的数据存储结构;所述多个数据库中的数据按照权利要求1-5任一项所述的方法被整合存储到所述数据存储系统中;处理单元602,用于对所述数据查询文本进行查询关键词分词处理,并将分词处理得到的分词添加到关键词序列;所述处理单元602,还用于基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到并输出检索结果。
72.在一个实施例中,所述处理单元602在基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到检索结果时,执行如下步骤:确定所述用户所要查询数据的目标数据类型以及目标存储方式,并确定与所述目标数据类型对应的存储索引;在所述与所述目标数据类型对应的存储索引下各个节点中,按照所述目标存储方式对应的查询方式检测所述关键词序列中各个关键词,得到并输出检索结果。
73.在一个实施例中,所述处理单元602在基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到检索结果时,执行如下步骤:在所述多个存储索引中检索包括所述关键词序列中任意一个或多个分词的数据,并将与所述关键词序列相匹配的数据以及该数据所在的存储索引标识作为检索结果进行输出。
74.本技术实施例中,提出了一个用于存储数据的数据存储系统,该数据存储系统中包括多个存储索引,一个存储索引中包括多个存储节点,每个存储节点又包括至少一个分片,数据存储系统中的数据存储在分片中。数据存储系统中的数据是将各个数据库中的数据采用数据存储系统对应的数据存储结构进行异构数据整合处理后存储的。数据存储系统的各个分片中存储的数据来自于多个数据库。当需要进行数据查询时,首先需要对用户输
入的数据查询文本进行检索关键词分词处理,并将分词处理得到的分词存储到关键词序列中,进而,基于关键词序列在数据存储系统的各个存储索引中进行检索,得到检索结果。
75.采用上述的数据存储以及数据查询方法,为异构数据库检索提供了便利,并且,由于数据存储系统的内存机制和索引机制的使用,能够根据检索的分词快速检索到检索结果,提升了检索速度。
76.另外,本技术的数据查询方法不仅减轻了对数据库的依赖,还能查询数据库难以实现的操作。例如,开发人员通常使用数据库来查询表内数据,但当要查询表结构、字段类型时,往往需要查找系统表,并使用多个语句关联才能得到结果,本技术的数据查询方法能实现像检索表内容一样,检索结构信息。
77.基于上述的数据存储方法实施例以及数据查询方法实施例,本技术还提供了一种数据处理设备,参见图7,为本技术实施例提供的一种数据处理设备的结构示意图。图7所示的数据处理设备包括处理器701、输入接口702、输出接口703以及计算机存储介质704。其中,处理器701、输入接口702、输出接口703以及计算机存储介质704可通过总线或其他方式连接。
78.计算机存储介质704可以存储在数据处理设备的存储器中,所述计算机存储介质704用于存储计算机程序,所述处理器701用于执行所述计算机存储介质704存储的计算机程序。处理器701(或称cpu(central processing unit,中央处理器))是数据处理设备的计算核心以及控制核心,其适于实现一条或多条计算机程序,具体适于加载并执行:获取多个数据库内的数据;所述多个数据库中存在至少两个数据库具有不同的数据存储结构;将所述多个数据库内的数据按照所述数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到所述数据存储系统的分片中。
79.本技术实施例中提出了一个用于存储数据的数据存储系统,该数据存储系统中包括多个存储索引,一个存储索引中包括多个存储节点,每个存储节点又包括至少一个分片,数据存储系统中的数据存储在分片中。数据存储系统的各个分片中存储的数据来自于多个数据库。本技术实施例中,将多个数据库中的数据存储到数据存储系统,具体步骤是,首先获取到多个数据库中的数据,这多个数据库可以是异构数据库,所谓异构数据库是指数据存储结构不同的数据库;然后将多个数据库内的数据按照数据存储系统对应的数据存储结构及逆行异构数据整合处理,并将异构整合和处理后的数据存储到数据存储系统的分片中。
80.可见,本技术提供的数据存储方法,实现了对异构数据库中数据的统一存储,如此一来,当用户需要进行数据查询时,只需要输入针对数据存储系统的数据查询文本即可,无需针对不同数据库构建多个查询语句,实现了简单、快捷的数据查询,提高了数据查询效率。
81.或者,处理器701其适于实现一条或多条计算机程序,具体适于加载并执行:获取用户针对数据存储系统输入的数据查询文本;所述数据存储系统包括多个存储索引,一个存储索引包括多个存储节点,一个存储节点中包括至少一个分片,每个分片用于存储数据;所述数据存储系统用于存储来自多个数据库的数据,所述多个数据库中存在至少两个数据库具有不同的数据存储结构;所述多个数据库中的数据按照前述图2实施例
所示的数据存储方法被整合存储到所述数据存储系统中;对所述数据查询文本进行查询关键词分词处理,并将分词处理得到的分词添加到关键词序列;基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到检索结果。
82.本技术实施例中,提出了一个用于存储数据的数据存储系统,该数据存储系统中包括多个存储索引,一个存储索引中包括多个存储节点,每个存储节点又包括至少一个分片,数据存储系统中的数据存储在分片中。数据存储系统中的数据是将各个数据库中的数据采用数据存储系统对应的数据存储结构进行异构数据整合处理后存储的。数据存储系统的各个分片中存储的数据来自于多个数据库。当需要进行数据查询时,首先需要对用户输入的数据查询文本进行检索关键词分词处理,并将分词处理得到的分词存储到关键词序列中,进而,基于关键词序列在数据存储系统的各个存储索引中进行检索,得到检索结果。
83.采用上述的数据存储以及数据查询方法,为异构数据库检索提供了便利,并且,由于数据存储系统的内存机制和索引机制的使用,能够根据检索的分词快速检索到检索结果,提升了检索速度。
84.另外,本技术的数据查询方法不仅减轻了对数据库的依赖,还能查询数据库难以实现的操作。例如,开发人员通常使用数据库来查询表内数据,但当要查询表结构、字段类型时,往往需要查找系统表,并使用多个语句关联才能得到结果,本技术的数据查询方法能实现像检索表内容一样,检索结构信息。
85.本技术实施例还提供了一种计算机存储介质(memory),所述计算机存储介质是数据处理设备的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括数据处理设备的内置存储介质,当然也可以包括数据处理设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了数据处理设备的操作系统。并且,在该存储空间中还存放了适于被处理器701加载并执行的一条或多条的计算机程序。需要说明的是,此处的计算机存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
86.在一个实施例中,所述计算机存储介质中存储的一条或多条计算机程序可由处理器701加载并执行:获取多个数据库内的数据;所述多个数据库中存在至少两个数据库具有不同的数据存储结构;将所述多个数据库内的数据按照所述数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到所述数据存储系统的分片中。
87.在一个实施例中,一个存储索引对应一个数据类型,所述数据存储系统对应的数据存储结构包括:存储索引-存储方式-文档-字段;任意一个存储索引对应的文档是用于记录存储在所述任意一个存储索引各个分片中数据包括的各个字段;所述处理器701在将所述多个数据库内的数据按照所述数据存储系统对应的数据存储结构进行异构数据整合处理,并将异构整合处理后的数据存储到所述数据存储系统的分片中时,执行如下步骤:针对所述多个数据库中的任意一个数据,基于所述任意一个数据的数据类型以及
每个存储索引对应的数据类型为所述任意一个数据确定对应的目标存储索引;采用与所述任意一个数据类型相匹配的存储方式将所述任意一个数据存入到所述目标存储索引的任意一个分片中,并将所述任意一个数据对应的字段记录在所述目标存储索引对应的文档中。
88.在一个实施例中,所述任意一个数据类型相匹配的存储方式包括如下任意一种或多种:倒排索引存储方式、列式存储方式以及域值存储方式。
89.在一个实施例中,所述处理器701还用于执行:确定每个存储索引在预设时间段内的使用频率;若任意一个存储索引在所述预设时间段内的使用频率小于频率阈值,则获取所述任意一个存储索引下存储的数据量;如果所述任意一个存储索引下的数据量小于数量阈值,则删除所述存储索引以及存储在所述存储索引中的数据。
90.在一个实施例中,每个存储索引的每个节点中的分片随着时间以及存入每个节点中数据不断增加;所述处理器701还用于执行:针对任意一个存储索引,若所述任意一个存储索引中的任意一个节点中分片的数量超过预设分片数量值,则对所述任意一个节点内的部分分片进行合并处理,得到新的分片,并将参与所述合并处理的分片删除;新的分片中存储的数据量满足预先设置的合并分片数据量阈值。
91.在其他实施例中,所述计算机存储介质中存储的一条或多条计算机程序可由处理器701加载并执行:获取用户针对数据存储系统输入的数据查询文本;所述数据存储系统包括多个存储索引,一个存储索引包括多个存储节点,一个存储节点中包括至少一个分片,每个分片用于存储数据;所述数据存储系统用于存储来自多个数据库的数据,所述多个数据库中存在至少两个数据库具有不同的数据存储结构;所述多个数据库中的数据按照前述图2所示的数据存储方法被整合存储到所述数据存储系统中;对所述数据查询文本进行查询关键词分词处理,并将分词处理得到的分词添加到关键词序列;基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到检索结果。
92.在一个实施例中,所述处理器701在基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到检索结果时,执行如下步骤:确定所述用户所要查询数据的目标数据类型以及目标存储方式,并确定与所述目标数据类型对应的存储索引;在所述与所述目标数据类型对应的存储索引下各个节点中,按照所述目标存储方式对应的查询方式检测所述关键词序列中各个关键词,得到并输出检索结果。
93.在一个实施例中,所述处理器701在基于所述关键词序列在所述数据存储系统的多个存储索引中进行检索,得到检索结果时,执行如下步骤:在所述多个存储索引中检索包括所述关键词序列中任意一个或多个分词的数据,并将与所述关键词序列相匹配的数据以及该数据所在的存储索引标识作为检索结果进行输出。
94.本技术实施例中,提出了一个用于存储数据的数据存储系统,该数据存储系统中包括多个存储索引,一个存储索引中包括多个存储节点,每个存储节点又包括至少一个分片,数据存储系统中的数据存储在分片中。数据存储系统中的数据是将各个数据库中的数据采用数据存储系统对应的数据存储结构进行异构数据整合处理后存储的。数据存储系统的各个分片中存储的数据来自于多个数据库。当需要进行数据查询时,首先需要对用户输入的数据查询文本进行检索关键词分词处理,并将分词处理得到的分词存储到关键词序列中,进而,基于关键词序列在数据存储系统的各个存储索引中进行检索,得到检索结果。
95.采用上述的数据存储以及数据查询方法,为异构数据库检索提供了便利,并且,由于数据存储系统的内存机制和索引机制的使用,能够根据检索的分词快速检索到检索结果,提升了检索速度。
96.另外,本技术的数据查询方法不仅减轻了对数据库的依赖,还能查询数据库难以实现的操作。例如,开发人员通常使用数据库来查询表内数据,但当要查询表结构、字段类型时,往往需要查找系统表,并使用多个语句关联才能得到结果,本技术的数据查询方法能实现像检索表内容一样,检索结构信息。