一种数据存储和查询的方法和装置的制造方法

文档序号:10612795阅读:920来源:国知局
一种数据存储和查询的方法和装置的制造方法【专利摘要】本发明实施例提供一种数据存储和查询的方法和装置,依据预设的副本实例类型创建各个副本;注册创建副本的数据服务器的注册信息;接收原始数据,依据注册信息,将原始数据发送至数据服务器;接收原始数据,并将原始数据写入副本中;接收查询命令,解析查询命令,获得查询命令的特征,依据特征,在副本中选择与特征对应的副本执行查询命令,并反馈查询结果。通过本发明实施例提供的方法和装置,可以针对不同的查询特征,采用不同的副本存储原始数据;不需要维护多个存储集群,简化了运维操作;在查询过程中,动态分析查询语句的特征,依据查询语句的特征,选择相应的副本执行查询命令;从而针对查询语句提供最优的检索性能,提高了查询的效率。【专利说明】一种数据存储和查询的方法和装置
技术领域
[0001]本发明涉及车联网
技术领域
,特别是涉及一种数据存储和查询的方法和装置。【
背景技术
】[0002]车联网是物联网领域的一个典型应用,其主要基于S0A(Service_0rientedArchitecture,面向服务的体系结构)架构的应用定制服务。涉车信息资源是国家战略资源,其应用将对我国国民经济活动和社会管理服务产生重大影响,对构建中国物联网,发挥基础性支撑作用。[0003]在车联网系统中,如何对涉车数据进行管理是必须解决的关键问题。车联网数据存储及复杂查询系统作为车联网后台的数据处理子系统,管理整个涉车信息资源,为上层云平台的各种应用提供查询服务和为数据挖掘分析提供支持。[0004]车联网的原始数据可以按照不同的特点划分为两个集合。集合一主要是动态数据,主要包括车辆的行驶信息,该集合数据是不断动态增加的,一般不涉及删除和修改操作,因此,动态数据的数据量较为庞大(TB级);集合二主要是静态数据,包含基站、车辆等的相关信息,该静态数据和动态数据相比,只存在极少的修改,因此,静态数据的数据量相对较小。[0005]目前,管理原始数据的方法是,首先在物理数据集中存储一份原始数据,然后再建立多维度索引,面向多样性分析。[0006]这种方案的优点是:只保持一份原始数据,则根据需求随时建立索引。但对于动态数据这样的大规模数据则无法适应,因为数据库的索引对于动态数据存储和查询上先天不足,会产生索引碎片、拖慢写入性能、索引过大、无法载入内存等问题。[0007]因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何存储原始数据,并且快速查询原始数据。【
发明内容】[0008]本发明实施例提供一种数据存储和查询的方法和装置,用以解决现有技术中查询大规模动态原始数据效率较低的技术问题。[0009]为了解决上述问题,本发明实施例公开了一种数据存储和查询的方法,包括:[0010]依据预设的副本实例类型,创建各个副本;[0011]注册创建所述副本的数据服务器的注册信息;[0012]接收原始数据,依据所述注册信息,将所述原始数据发送至所述数据服务器;[0013]所述数据服务器接收所述原始数据,并将所述原始数据写入所述副本中;[0014]接收查询命令,解析所述查询命令,获得所述查询命令的特征,依据所述特征,在所述副本中选择与所述特征对应的副本执行所述查询命令,并反馈查询结果。[0015]优选地,所述预设的副本实例类型包括:[0016]精确查询副本实例、时序范围查询副本实例和离线批量查询副本实例;[0017]则所述依据预设的副本实例类型,创建各个副本,包括:[0018]依据所述精确查询副本实例,创建keyvalue副本;[0019]依据所述时序范围查询副本实例,创建sortedtable副本;[0020]依据所述离线批量查询副本实例,创建file文件存储副本。[0021]优选地,所述注册信息包括:[0022]数据服务器的地址和数据服务器的表结构信息;[0023]则所述接收原始数据,依据所述注册信息,将所述原始数据发送至所述数据服务器,包括:[0024]接收所述原始数据,依据所述数据服务器的地址和所述数据服务器的表结构信息,将所述原始数据发送至所述数据服务器。[0025]优选地,所述数据服务器接收所述原始数据,并将所述原始数据写入所述副本中,包括:[0026]所述数据服务器依据所述数据服务器的表结构信息,获取与所述数据服务器的表结构信息对应的副本位置;[0027]所述数据服务器依据所述副本位置,将所述原始数据并行写入所述副本中。[0028]优选地,所述接收查询命令,解析所述查询命令,获得所述查询命令的特征,依据所述特征,在所述副本中选择与所述特征对应的副本执行所述查询命令,并反馈查询结果,包括:[0029]接收查询命令,并解析所述查询命令,获得所述查询命令的谓词;[0030]分析所述查询命令的谓词的类型,若所述谓词属于精确查询类型,则选择keyvalue副本执行所述查询命令,并反馈所述查询结果;[0031]若所述查询命令的谓词属于范围查询类型,则选择sortedtable副本执行所述查询命令,并反馈所述查询结果;[0032]若所述查询命令的谓词属于离线批量查询类型,则选择file文件存储副本执行所述查询命令,并反馈所述查询结果。[0033]优选地,在所述依据预设的副本实例类型,创建相应的副本实例之后,还包括:[0034]将各个所述副本保存在不同的磁盘上。[0035]为了解决上述问题,本发明实施例还公开了一种数据存储和查询的装置,包括:[0036]副本创建模块,用于依据预设的副本实例类型,创建各个副本;[0037]注册信息模块,用于注册创建所述副本的数据服务器的注册信息;[0038]原始数据接收模块,用于接收原始数据,依据所述注册信息,将所述原始数据发送至所述数据服务器;[0039]原始数据写入模块,设置于所述数据服务器中,用于接收所述原始数据,并将所述原始数据写入所述副本中;[0040]查询命令接收模块,用于接收查询命令,解析所述查询命令,获得所述查询命令的特征,依据所述特征,在所述副本中选择与所述特征对应的副本执行所述查询命令,并反馈查询结果。[0041]优选地,所述预设的副本实例类型包括:[0042]精确查询副本实例、时序范围查询副本实例和离线批量查询副本实例;[0043]则所述副本创建模块具体用于,依据所述精确查询副本实例,创建keyvalue副本;依据所述时序范围查询副本实例,创建sortedtable副本;依据所述离线批量查询副本实例,创建file文件存储副本。[0044]优选地,所述注册信息包括:数据服务器的地址和数据服务器的表结构信息;[0045]则所述原始数据接收模块,具体用于接收所述原始数据,依据所述数据服务器的地址和所述数据服务器的表结构信息,将所述原始数据发送至所述数据服务器。[0046]优选地,所述原始数据写入模块,包括:[0047]副本位置获取单元,用于依据所述数据服务器的表结构信息,获取与所述数据服务器的表结构信息对应的副本位置;[0048]原始数据写入单元,用于依据所述副本位置,将所述原始数据并行写入所述副本中。[0049]优选地,所述查询命令的特征为查询命令的谓词;[0050]所述查询命令接收模块包括:[0051]谓词获取单元,用于接收查询命令,并解析所述查询命令,获得所述查询命令的谓词;[0052]谓词类型分析单元,用于分析所述查询命令的谓词的类型,若所述谓词属于精确查询类型,则选择keyvalue副本执行所述查询命令,并反馈所述查询结果;[0053]若所述查询命令的谓词属于范围查询类型,则选择sortedtable副本执行所述查询命令,并反馈所述查询结果;[0054]若所述查询命令的谓词属于离线批量查询类型,则选择file文件存储副本执行所述查询命令,并反馈所述查询结果。[0055]优选地,所述装置还包括:[0056]副本保存模块,用于将各个所述副本保存在不同的磁盘上。[0057]本发明实施例提供的一种数据存储和查询的方法和装置,可以针对不同的查询特征,采用不同的副本存储原始数据;不需要维护多个存储集群,简化了运维操作;在查询过程中,动态分析查询语句的特征,依据查询语句的特征,选择相应的副本执行查询命令;从而针对查询语句提供最优的检索性能,提高了查询的效率。【附图说明】[0058]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0059]图1是本发明实施例一提供的一种数据存储和查询的方法的流程示意图;[0060]图2是本发明实施例二提供的一种数据存储和查询的装置的结构示意图。【具体实施方式】[0061]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0062]实施例一[0063]图1,示出了本发明实施例一提供的一种数据存储和查询的方法的流程示意图。[0064]本发明实施例提供了一种数据存储和查询的方法,如图1所示,可以包括以下步骤:[0065]步骤S101,依据预设的副本实例类型,创建各个副本。[0066]在本步骤中,管理服务器可以依据预设的副本实例类型,指定数据服务器创建副本。优选地是,可以将各个副本保存在不同的磁盘上以避免10负载争抢。其中,预设的副本实例类型可以是用户指定的副本实例类型,例如:精确查询副本实例、时序范围查询副本实例和离线批量查询副本实例;依据精确查询副本实例,创建keyvalue副本;依据时序范围查询副本实例,创建sortedtable副本;依据离线批量查询副本实例,创建file文件存储副本。[0067]步骤S102,注册创建副本的数据服务器的注册信息。[0068]在本步骤中,数据服务器可以在接入服务器上注册注册信息。注册信息可以包括:数据服务器的地址和数据服务器的表结构信息。通过数据服务器的表结构信息接入服务器可以获知数据服务器的表结构信息对应的副本地址,从而可以在接入原始数据的时候,将原始数据发送到相应副本所在的数据服务器上。[0069]步骤S103,接收原始数据,依据注册信息,将原始数据发送至数据服务器。[0070]在本步骤中,接收原始数据,依据数据服务器的地址和数据服务器的表结构信息,将原始数据发送至数据服务器。[0071]步骤S104,数据服务器接收原始数据,并将原始数据写入副本中。[0072]在本步骤中,数据服务器依据数据服务器的表结构信息,获取与数据服务器的表结构信息对应的副本位置;数据服务器依据副本位置,将原始数据并行写入副本中。[0073]步骤S105,接收查询命令,解析查询命令,获得查询命令的特征,依据特征,在副本中选择与特征对应的副本执行查询命令,并反馈查询结果。[0074]在本步骤中,查询命令可以是SQL语句,在接收查询命令,解析查询命令之后,可以生成逻辑执行计划,该逻辑执行计划的内容是:依据特征,寻找查询开销最小的副本;在执行逻辑计划之后,可以生成物理执行计划,物理执行计划的内容是选择物理数据节点和执行副本。[0075]接收查询命令,并解析查询命令,获得查询命令的谓词;分析查询命令的谓词的类型,若谓词属于精确查询类型,则选择keyvalue副本执行查询命令,并反馈查询结果;若查询命令的谓词属于范围查询类型,则选择sortedtable副本执行查询命令,并反馈查询结果;若查询命令的谓词属于离线批量查询类型,则选择file文件存储副本执行查询命令,并反馈查询结果。[0076]例如:选择kv畐lj本执行:select*fromcar_pass_tablewherecar_no='京A000000,;[0077]选择sortedtable副本执行:selectcount(*)fromcar_pass_tablewherepass_timebetween'2015-05-0100:00:00,and,2015-05-0200:00:00';[0078]选择file文件存储副本执行:selectcount(*)fromcar_pass_table〇[0079]通过本发明实施例一提供的一种数据存储和查询的方法,可以针对不同的查询特征,采用不同的副本存储原始数据;不需要维护多个存储集群,简化了运维操作;在查询过程中,动态分析查询语句的特征,依据查询语句的特征,选择相应的副本执行查询命令;从而针对查询语句提供最优的检索性能,提高了查询的效率。[0080]在上述步骤S101中,可以通过建表语句设定预设的副本实例类型,仓I」建keyvalue副本、sortedtable副本和file文件存储副本的建表语句如下所示:[0081][0082]实施例二[0083]图2本发明实施例二提供的一种数据存储和查询的装置的结构示意图。[0084]本发明实施例二提供了一种数据存储和查询的装置,可以执行本发明实施例一所提供的数据存储和查询的装置,如图2所示,该装置可以包括以下模块:副本创建模块21、注册信息模块22、原始数据接收模块23、原始数据写入模块24和查询命令接收模块25。[0085]在本发明实施例二中,副本创建模块21,用于依据预设的副本实例类型,创建各个副本;注册信息模块22,用于注册创建副本的数据服务器的注册信息;原始数据接收模块23,用于接收原始数据,依据注册信息,将原始数据发送至数据服务器;原始数据写入模块24,设置于数据服务器中,用于接收原始数据,并将原始数据写入副本中;查询命令接收模块25,用于接收查询命令,解析查询命令,获得查询命令的特征,依据特征,在副本中选择与特征对应的副本执行查询命令,并反馈查询结果。[0086]在副本创建模块21中,可以依据预设的副本实例类型,指定数据服务器创建副本。优选地是,该装置还可以包括:副本保存模块,用于将各个副本保存在不同的磁盘上可以将各个副本保存在不同的磁盘上以避免10负载争抢。其中,预设的副本实例类型可以是用户指定的副本实例类型,例如:精确查询副本实例、时序范围查询副本实例和离线批量查询副本实例;依据精确查询副本实例,创建keyvalue副本;依据时序范围查询副本实例,创建sortedtable副本;依据离线批量查询副本实例,创建file文件存储副本。[0087]在注册信息模块22中,可以在接入服务器上注册注册信息。注册信息可以包括:数据服务器的地址和数据服务器的表结构信息。通过数据服务器的表结构信息接入服务器可以获知数据服务器的表结构信息对应的副本地址,从而可以在接入原始数据的时候,将原始数据发送到相应副本所在的数据服务器上。[0088]在原始数据接收模块23中,接收原始数据,依据数据服务器的地址和数据服务器的表结构信息,将原始数据发送至数据服务器。[0089]在原始数据写入模块24中,原始数据写入模块24可以包括:副本位置获取单元和原始数据写入单元;副本位置获取单元,用于依据数据服务器的表结构信息,获取与数据服务器的表结构信息对应的副本位置;原始数据写入单元,用于依据副本位置,将原始数据并行与入副本中。[0090]在查询命令接收模块25中,查询命令可以是SQL语句,在接收查询命令,解析查询命令之后,可以生成逻辑执行计划,该逻辑执行计划的内容是:依据特征,寻找查询开销最小的副本;在执行逻辑计划之后,可以生成物理执行计划,物理执行计划的内容是选择物理数据节点和执行副本。[0091]在查询命令接收模块25中,查询命令的特征为查询命令的谓词;则查询命令接收模块可以包括:谓词获取单元和谓词类型分析单元;[0092]其中,谓词获取单元,用于接收查询命令,并解析查询命令,获得查询命令的谓词;谓词类型分析单元,用于分析查询命令的谓词的类型,若谓词属于精确查询类型,则选择keyvalue副本执行查询命令,并反馈查询结果;若查询命令的谓词属于范围查询类型,则选择sortedtable副本执行查询命令,并反馈查询结果;若查询命令的谓词属于离线批量查询类型,则选择file文件存储副本执行查询命令,并反馈查询结果。[0093]通过本发明实施例二提供的一种数据存储和查询的装置,可以针对不同的查询特征,采用不同的副本存储原始数据;不需要维护多个存储集群,简化了运维操作;在查询过程中,动态分析查询语句的特征,依据查询语句的特征,选择相应的副本执行查询命令;从而针对查询语句提供最优的检索性能,提高了查询的效率。[0094]以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。[0095]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。[0096]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。【主权项】1.一种数据存储和查询的方法,其特征在于,包括:依据预设的副本实例类型,创建各个副本;注册创建所述副本的数据服务器的注册信息;接收原始数据,依据所述注册信息,将所述原始数据发送至所述数据服务器;所述数据服务器接收所述原始数据,并将所述原始数据写入所述副本中;接收查询命令,解析所述查询命令,获得所述查询命令的特征,依据所述特征,在所述副本中选择与所述特征对应的副本执行所述查询命令,并反馈查询结果。2.根据权利要求1所述的方法,其特征在于,所述预设的副本实例类型包括:精确查询副本实例、时序范围查询副本实例和离线批量查询副本实例;则所述依据预设的副本实例类型,创建各个副本,包括:依据所述精确查询副本实例,创建keyvalue副本;依据所述时序范围查询副本实例,创建sortedtable副本;依据所述离线批量查询副本实例,创建file文件存储副本。3.根据权利要求1所述的方法,其特征在于,所述注册信息包括:数据服务器的地址和数据服务器的表结构信息;则所述接收原始数据,依据所述注册信息,将所述原始数据发送至所述数据服务器,包括:接收所述原始数据,依据所述数据服务器的地址和所述数据服务器的表结构信息,将所述原始数据发送至所述数据服务器。4.根据权利要求3所述的方法,其特征在于,所述数据服务器接收所述原始数据,并将所述原始数据写入所述副本中,包括:所述数据服务器依据所述数据服务器的表结构信息,获取与所述数据服务器的表结构信息对应的副本位置;所述数据服务器依据所述副本位置,将所述原始数据并行写入所述副本中。5.根据权利要求1所述的方法,其特征在于,所述接收查询命令,解析所述查询命令,获得所述查询命令的特征,依据所述特征,在所述副本中选择与所述特征对应的副本执行所述查询命令,并反馈查询结果,包括:接收查询命令,并解析所述查询命令,获得所述查询命令的谓词;分析所述查询命令的谓词的类型,若所述谓词属于精确查询类型,则选择keyvalue副本执行所述查询命令,并反馈所述查询结果;若所述查询命令的谓词属于范围查询类型,则选择sortedtable副本执行所述查询命令,并反馈所述查询结果;若所述查询命令的谓词属于离线批量查询类型,则选择file文件存储副本执行所述查询命令,并反馈所述查询结果。6.根据权利要求1所述的方法,其特征在于,在所述依据预设的副本实例类型,创建相应的副本实例之后,还包括:将各个所述副本保存在不同的磁盘上。7.-种数据存储和查询的装置,其特征在于,包括:副本创建模块,用于依据预设的副本实例类型,创建各个副本;注册信息模块,用于注册创建所述副本的数据服务器的注册信息;原始数据接收模块,用于接收原始数据,依据所述注册信息,将所述原始数据发送至所述数据服务器;原始数据写入模块,设置于所述数据服务器中,用于接收所述原始数据,并将所述原始数据写入所述副本中;查询命令接收模块,用于接收查询命令,解析所述查询命令,获得所述查询命令的特征,依据所述特征,在所述副本中选择与所述特征对应的副本执行所述查询命令,并反馈查询结果。8.根据权利要求7所述的装置,其特征在于,所述预设的副本实例类型包括:精确查询副本实例、时序范围查询副本实例和离线批量查询副本实例;则所述副本创建模块具体用于,依据所述精确查询副本实例,创建keyvalue副本;依据所述时序范围查询副本实例,创建sortedtable副本;依据所述离线批量查询副本实例,创建file文件存储副本。9.根据权利要求7所述的装置,其特征在于,所述注册信息包括:数据服务器的地址和数据服务器的表结构信息;则所述原始数据接收模块,具体用于接收所述原始数据,依据所述数据服务器的地址和所述数据服务器的表结构信息,将所述原始数据发送至所述数据服务器。10.根据权利要求9所述的装置,其特征在于,所述原始数据写入模块,包括:副本位置获取单元,用于依据所述数据服务器的表结构信息,获取与所述数据服务器的表结构信息对应的副本位置;原始数据写入单元,用于依据所述副本位置,将所述原始数据并行写入所述副本中。11.根据权利要求7所述的装置,其特征在于,所述查询命令的特征为查询命令的谓词;所述查询命令接收模块包括:谓词获取单元,用于接收查询命令,并解析所述查询命令,获得所述查询命令的谓词;谓词类型分析单元,用于分析所述查询命令的谓词的类型,若所述谓词属于精确查询类型,则选择keyvalue副本执行所述查询命令,并反馈所述查询结果;若所述查询命令的谓词属于范围查询类型,则选择sortedtable副本执行所述查询命令,并反馈所述查询结果;若所述查询命令的谓词属于离线批量查询类型,则选择file文件存储副本执行所述查询命令,并反馈所述查询结果。12.根据权利要求7所述的装置,其特征在于,还包括:副本保存模块,用于将各个所述副本保存在不同的磁盘上。【文档编号】G06F17/30GK105975468SQ201510799048【公开日】2016年9月28日【申请日】2015年11月18日【发明人】康华,陈轶飞,杜熙【申请人】乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1