CN105488043A - 基于Key-Value数据块的数据查询方法及系统 - Google Patents
基于Key-Value数据块的数据查询方法及系统 Download PDFInfo
- Publication number
- CN105488043A CN105488043A CN201410470344.9A CN201410470344A CN105488043A CN 105488043 A CN105488043 A CN 105488043A CN 201410470344 A CN201410470344 A CN 201410470344A CN 105488043 A CN105488043 A CN 105488043A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- value
- key
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明提出一种基于Key-Value数据块的数据查询方法及系统。根据感知数据具有的属性选取数据聚集的维度,将具有共性即具有同一属性维度的感知数据进行聚类,并将其集中存储在同一数据块中,将选取的数据聚集维度作为数据块对应的属性信息;数据块内部的数据采用Key-Value数据格式存储和管理;数据块的存储位置及其对应的属性信息采用关系型数据库进行存储和管理。本发明以实现在较少数量计算机情况下就能够对海量物联网感知数据进行高效读写,并可根据业务规模方便地进行扩展。
Description
技术领域
本发明涉及物联网、数据库和云计算技术领域,特别是涉及一种基于Key-Value数据块的数据查询方法及系统。
背景技术
物联网在智慧城市、智能交通、工业监测、食品溯源等各领域都有着广泛的应用,近年来得到了迅速的发展。物联网通过射频识别、红外感应器、全球定位系统、激光扫描器、气体感应器等信息传感设备,按约定的协议,把任何物品与网络连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
物联网的一个特点是对各种感知技术的广泛应用。物联网上部署了多种类型传感器,每个传感器都是一个信息源。传感器按一定的频率周期采集环境信息,不断更新数据。物联网采集的感知数据具有如下特点:
数据具有结构化特征,并且数据类型比较简单;数据总量非常大,呈现出海量特征,数据条目数量常常超过数十亿条,存储量常常达到TB以上级别;生成的数据具有时间属性,数据生成速度快,并发量高,对数据的存储要求比较高;数据变化部分主要为传感器数据,数据条目间存在大量重复属性信息;数据往往是“一次存储,多次应用”,数据存储后常常不再修改,但是在数据应用时需要经常查询数据,对数据的查询要求比较高,数据并发量高。如何对这些数据进行高效的存储、管理和检索,从中获取有用的信息,进而提供智能决策,是物联网面临的关键问题之一。
关系型数据库经过几十年的发展,已经成为一个成熟的数据管理和分析技术,是存储管理结构化数据的最有效手段。它是建立在关系型数据库模型基础上的数据库,其借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。结构化查询语言SQL是访问关系型数据库的标准接口,大量使用多表连接操作,通用性强。随着数据规模的扩大,关系型数据库可以采用分区技术进行扩充,表由多个物理文件组成,当单个节点的能力抵达上限时,就得通过多服务器节点来分发负载。这时关系型数据库的复杂性就开始影响其潜在的扩展规模了。分布式中的单点故障问题、跨节点多表格间连接操作的支持等都存在极大困难。由于关系型数据库追求的是高度一致性、正确性,系统扩展的代价较高,因此在面对海量数据处理时遇到了瓶颈。
随着互联网web2.0网站的兴起,非关系型的数据库成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。NoSQL是非关系型数据存储的广义定义,数据存储不需要固定的表结构,通常也不存在连接操作,采用Key-Value数据模型(根据给定的Key值,查找对应的Value值),在超大型数据存取上具备关系型数据库无法比拟的性能优势,如Google的BigTable与Amazon的Dynamo等。这类数据库通过降低一致性约束来提高数据的存储规模和查询效率,并且大大降低了系统水平扩展的复杂性,但是却无法满足针对海量数据的结构化复杂查询和统计,需要分布式服务器集群,机器数量庞大,维护费用(场地、能源)高。
简而言之,面对海量的物联网感知数据,关系型数据库读写效率低,扩展复杂,技术要求高;以NoSQL为代表的非关系型数据库虽然通过降低一致性约束提高了效率,但是处理海量数据时成百上千甚至上万的计算机规模,对很多应用而言投入过重,并且不支持结构化复杂查询。因此亟需一种扩展方便、规模适中的海量数据存储和查询的方法和系统。
发明内容
本发明提出一种基于Key-Value数据块的数据查询方法及系统,以实现在较少数量计算机情况下就能够对海量物联网感知数据进行高效读写,并可根据业务规模方便地进行扩展。
为了解决上述技术问题,本发明提供一种基于Key-Value数据块的数据查询方法,包括数据管理和数据查询,其中,
数据管理包括以下步骤:
步骤101、从感知数据描述的属性中选取数据聚集的维度,一般选取查询频度较高或者取值重复性较高的属性作为数据聚集的维度;
步骤102、根据选取的数据聚集的维度组建数据分块规则,所述数据分块规则用于指示数据聚集的维度与存储该数据的数据块的对应关系,反映了数据分块条件与数据块之间的对应关系,将选取的数据聚集维度作为数据块对应的属性信息;
步骤103、根据数据分块规则以及数据块与数据块键值之间的对应关系,获取数据分块规则与数据块键值的对应关系以及数据块的存储位置,所述数据块的存储位置是用于指示数据块所存储的计算机节点以及节点中的路径和名称等信息;
步骤104、根据感知数据分块规则在关系型数据库中查找对应的数据块键值,如果查询结果中不存在与所述感知数据分块规则对应的数据条目,则将数据块的存储位置及其对应的属性信息组织成一条数据条目添加到关系型数据库中进行存储和管理;;
步骤105、将感知数据条目按照所述对应的数据聚集维度和数据块的存储位置添加存储到对应的数据块中,所述数据块内的感知数据条目采用Key-Value数据模型,Key值为感知数据条目的键值,Value值为感知数据的属性,所述Key值的数据结构具体可以为R树、B+树、B树或自定义的方法;
步骤106、建立新添加感知数据条目的数据块内索引,所述数据块内索引采用Key-Value数据模型,Key值为所述数据块内索引所对应的字段,Value值为感知数据条目的键值,所述Key值的数据结构具体可以为R树、B+树、B树或自定义的方法;
数据查询包括以下步骤:
步骤201、获取数据查询请求;
步骤202、对获取的查询请求进行解析,用于确定数据查询请求中的数据块列值和数据块属性列值;
步骤203、在关系型数据库中查询与所述查询请求相匹配的数据块;
步骤204、当所述查询请求与至少一个数据块相匹配时,将所述查询请求和与其匹配的数据块键值分发到所有计算机节点,所述计算机节点为至少存在一个与其匹配的数据块;当没有与所述查询请求相匹配的数据块时,直接返回空结果集;
步骤205、Key-Value数据模型对数据块内查询请求进行处理,根据数块内索引的Key值,查询其对应的Value值,即数据块内数据条目的Key值;
步骤206、根据数据块的Key值查询数据块内数据条目的属性;
步骤207、将查询到的数据条目属性合并后返回请求端。
本发明还提出一种基于Key-Value数据块的数据查询系统,包括管理系统和查询系统,其中,
管理系统包括:
数据分块规则获取模块,所述数据分块规则用于指示数据聚集的维度,反映了数据分块条件与数据块之间的对应关系;
数据分块规则与数据块键值对应关系建立模块,其根据数据分块规则和数据块与数据块键值之间的对应关系,建立数据分块规则与数据块键值之间的对应关系;
数据块键值与存储位置关系建立模块,其根据数据块键值和数据块存储位置,建立数据块键值与其存储位置之间的对应关系;
Key-Value数据模型建立模块,根据数据条目在数据块内的键值建立数据条目的Key-Value数据模型;
数据块索引建立模块,其根据查询的属性建立数据条目的数据块索引;
数据查询系统包括:
数据查询请求获取模块;
数据查询请求解析模块;
数据查询请求与数据分块规则匹配模块;
数据块键值和存储位置查找模块,其响应于所述数据查询请求与至少一个数据分块规则匹配,查找数据查询请求匹配数据块的键值及其存储位置;
数据条目索引查询模块,按照数据查询请求在匹配数据块内查询数据条目索引;
数据条目属性查询模块,用于根据查询到的所述数据条目索引在数据块内查询数据条目相关属性;
数据查询结果合并返回模块,用于将查询结果合并后返回请求端。
需要说明的是,本发明并不限定数据存储在单一计算机环境还是多计算机环境,实际上本发明既适用于单计算机环境也适用于多计算机环境,数据块的存储位置和属性管理可以是单点方式、主从方式或分布式方式等现有的关系型数据库支持的方式,数据块管理可以是单点方式、主从方式、分布式方式或云存储等现有的Key-Value数据库支持的方式。
本发明与现有技术相比,其显著优点在于:(1)将具有共性的数据聚集成块,通过降低一致性约束来对块内数据进行管理,从而大大提高了块内数据的读写效率;(2)对数据块的存储位置和属性管理采用关系型数据库,聚集后的数据块的数量比感知数据的数量在数据规模上大大减小,查询速度可以大幅提升,同时采用关系型数据库进行管理,可以达到数据块级别的一致性和可靠性,并且数据块间的查询可以采用复杂的结构化查询,通用性强;(3)本发明融合了关系型数据库和NoSQL数据库的优点,支持海量数据规模,数据块内高效,数据块间可靠,且扩展性好;(4)通过本发明,数据库使用者可以动态的选取分块规则对数据进行聚类和重新聚类,实现数据的灵活管理,同时大幅提升数据库的查询效率和扩展性;(5)本发明并不限定数据的存储是在单一计算机环境中还是在多计算机环境中,本发明既适用于单计算机环境,也适用于多计算机环境。
附图说明
图1为本发明基于Key-Value数据块的数据管理方法流程框图。
图2为本发明基于Key-Value数据块的数据查询方法流程框图。
图3为本发明基于Key-Value数据块的数据管理系统的结构框图。
图4为本发明基于Key-Value数据块的数据查询系统的结构框图。
具体实施方式
物联网采集的感知数据一般包含传感器采集的传感器数据和用于描述属性的数据。本发明将感知数据按照属性维度进行聚类,将同一属性维度的感知数据存储在同一数据块中,将选取的数据聚集维度作为数据块对应的属性信息,数据块内部数据的管理采用Key-Value数据模型,数据块的存储位置及其对应的属性信息采用关系型数据库进行管理,从而能够支持海量数据规模,实现数据块内高效,数据块间可靠,且扩展性好。
本发明基于Key-Value数据块的数据查询方法包括数据管理及数据查询,所述数据管理,是根据感知数据具有的属性选取数据聚集的维度,将具有同一属性维度的感知数据进行聚类并集中存储在同一数据块中,将选取的数据聚集维度作为数据块对应的属性信息;数据块内部的数据采用Key-Value数据格式存储和管理;数据块的存储位置及其对应的属性信息采用关系型数据库进行存储和管理;所述数据查询,是对按照前述管理方法进行管理的数据进行查询。
如图1所示,是本发明中数据管理包括以下基本步骤:
步骤101,从感知数据描述的属性中选取数据聚集的维度。在物联网应用中各种传感器按一定的频率周期性的采集环境信息,不断更新数据,这些数据从某些维度看存在大量重复的属性。按照本具体实施方式,所述数据聚集的维度可以按照物联网感知数据聚集的特点以及查询的频率进行选取,即把经常查询的字段或者重复性高的字段作为数据聚集的维度。例如在电力设备检测中,在设备节点和线路上部署有温度传感器,用于定期采集温度数据,并存储在数据库中。采集的温度数据如表1所示,包括采集的数据包括Time(时间)、Region(区域)、DeviceID(设备号)、Temp(温度)、Status(状态),其中Status表示的数值包括NORMAL(正常)和WARNNING(告警)两种;Time包括Date(日期)和DayTime(时刻)两部分。数据中ID为数据条目的唯一键值,即唯一标识一条数据。
ID | Date | Time | Region | DeviceID | Temp | Status |
1 | Date1 | Time1 | Region1 | Device1 | Temp1 | NORMAL |
2 | Date1 | Time2 | Region1 | Device1 | Temp2 | NORMAL |
3 | Date1 | Time3 | Region1 | Device1 | Temp3 | WARNNING |
4 | Date2 | Time4 | Region2 | Device2 | Temp4 | NORMAL |
5 | Date2 | Time5 | Region2 | Device3 | Temp5 | NORMAL |
… | … | … | … | … | … | … |
表1
大量的温度数据记录具有相同的Region、DeviveID、Status,是数据聚集的维度,同时也是数据分析时常用的查询维度。时间也是数据查询时一个常用的维度,因此,可以选取Region、DeviveID、Status以及Time中Date部分作为数据聚集的维度对数据进行分块,本具体实时方式一个具体的数据聚集的维度为:Region=Region1,DeviveID=Devive1,Status=NORMAL,Date=Date1。
步骤102,根据选取的数据聚集的维度组建数据分块规则,即获取数据聚集的维度与数据块之间的对应关系,在关系型数据库中建立数据分块的规则表。表2给出了数据分块规则与维度之间对应关系的映射表。一个或多个维度的组合对应一个数据分块规则。在本具体实施方式中,维度组合中的每个维度的取值都选取某一固定的值(如Date=Date1)。而根据本领域的普通技术人员理解,对应规则的维度的取值实际上也可以是一个取值区间(如Date≥Date1且Date≤Date2)。
表2
步骤103,根据数据分块规则以及数据块与数据块键值之间的对应关系,获取数据分块规则与数据块键值的对应关系以及数据块的存储位置。所述对应关系可以被记录在对应关系表中。表3给出了数据分块规则与数据块键值的对应关系表。所述数据块键值标识对应的数据块,从而通过数据块键值将数据分块规则与相关的数据块及其位置相对应。一个数据块键值唯一确定一个数据块位置信息。在本具体实施方式中,一个分块规则仅对应一个数据块键值,一个数据块键值也仅与一个分块规则对应。而根据本领域的普通技术人员理解,为了实现数据存储的可靠性和数据查询的并行性,实际上也可以采用冗余策略,由多个数据块键值对应一个分块规则,这些数据块中存储相同的数据内容。数据块在多台计算机中的存储位置需要结合具体的业务,并根据数据量、数据块数目、数据并发等因素采用合适的负载均衡策略。在本具体实施方式中,本发明仅选取平均分布数据块的策略,即将所有数据块平均分布在多台计算机中。
规则 | 块节点 | 块键值 |
R1 | NODE1 | 1001 |
R2 | NODE1 | 1002 |
R3 | NODE2 | 1003 |
… | … | … |
表3
作为本发明的另一种具体实施方式,也可以将数据分块规则表和块键值对应关系表合并为一个表,即在数据分块规则表中增加相关的数据块键值和块节点两列字段。表4给出了合并后的规则及键值对应表。
表4
块节点用于标识数据块所在的计算机节点信息,可以采用计算机的域名或者IP地址。块键值可以采用一个随机数,或者一个根据维度值计算的Hash(哈希)值,或者直接由多个维度值组成,但是都必须满足键值的唯一性。根据本领域的普通技术人员理解,块节点和块键值是标识数据块及其位置信息的一种字段组合,实际上也可以是其它的标识数据块唯一性和存储位置的字段组合。
步骤104中,根据感知数据分块规则在关系型数据库中查找对应的数据块键值,如果查询结果中不存在与所述感知数据分块规则对应的数据条目,则将数据块的存储位置及其对应的属性信息组织成一条数据条目添加到关系型数据库中进行存储和管理。按照数据分块的条件制定查询语句,在数据分块规则表中查询与该条目相匹配的分块规则,再从数据分块规则和键值对应关系表中查询是否存在可与其匹配的数据块的数目和存储位置信息,如果没有与其匹配的数据块,则102和103建立相对应的分块规则及键值对应关系,并将数据块的存储位置及其对应的属性信息组织成一条数据条目添加到关系型数据库中进行存储和管理;如果有与其匹配的数据块,则直接获取与其匹配的数据块信息;
在步骤105中,将感知数据条目按照所述对应的数据聚集的维度和数据块的存储位置添加存储到对应的数据块中,所述数据块内的感知数据条目采用Key-Value数据模型,Key值采用感知数据条目的键值,Value值为感知数据的属性。,所述Key值的数据结构具体可以为R树、B+树、B树或自定义的方法。本具体实施方式中采用B+Tree数据结构存储,选取数据条目中的ID作为Key,其它属性作为Value。数据存储在叶子节点上,非叶子节点作为叶子节点的索引,提高数据查找效率。叶子节点采用一个有序的链表,每次查找都会到达叶子节点才会结束。表5-1、5-2、5-3给出了表1中数据条目在三个数据块中的分布情况。
ID | Time | Temp | 块键值 |
1 | Time1 | Temp1 | 1001 |
2 | Time2 | Temp2 | 1001 |
… | … | … | … |
表5-1数据块1001中数据
ID | Time | Temp | 块键值 |
3 | Time3 | Temp3 | 1002 |
… | … | … | … |
表5-2数据块1002中数据
ID | Time | Temp | 块键值 |
4 | Time4 | Temp4 | 1003 |
5 | Time5 | Temp5 | 1003 |
… | … | … | … |
表5-3数据块1003中数据
步骤106中,建立新添加感知数据条目的数据块内索引,所述数据块内索引采用Key-Value数据模型,Key值为所述数据块内索引所对应的字段,Value值为感知数据条目的键值,所述Key值的数据结构具体可以为R树、B+树、B树或自定义的方法。。本具体实施方式中采用B+Tree数据结构存储,Key值是待查询的字段或复合字段,Value是数据块内条目的ID。这样基于属性查询时只需查询一次属性索引树取出块内ID,再查询块内ID索引树取出数据条目的其它属性信息。
图2是本发明中数据查询流程框图,其基于Key-Value数据块的数据管理,进行数据分块查询。
步骤201,获取数据查询请求,例如一个数据查询请求为:DeviveID=Devive1andStatus=NORMALandDate=Date1andTemp=Temp1。
步骤202,解析数据查询请求,用于确定数据查询请求中的数据块列值和数据块属性列值。例如数据查询请求例中,数据块列值为DeviveID=Devive1,Status=NORMAL以及Date=Date1;数据块属性列值为Temp=Temp1。
步骤203,根据数据块列值判断所述数据查询请求是否与至少一个数据分块规则相匹配。当有至少一个数据分块规则匹配时需要在匹配的数据块内按属性进行查询;否则表示没有匹配的查询结果,直接返回空结果集。很显然,数据查询请求例符合分块规则R1。
步骤204,查询数据块的键值和存储位置。从数据分块规则和键值对应关系表中查询匹配数据块的数目和存储位置信息。数据查询请求例中分块规则R1匹配数据块1001。
步骤205,根据数据块属性列值在每一个匹配的数据块中查询属性索引树取出数据块内数据条目的ID值。
步骤206,根据取出的数据块内数据条目ID值查询块内索引树取出数据条目的其它属性信息。在数据查询请求例中,根据Temp=Temp1查询取出的数据条目ID值为1,进一步数据块内查询满足ID=1的数据条目作为查询结果。
步骤207,将各数据块的结果进行合并,得到最终查询结果返回。数据查询请求例中结果如表6所示。
ID | Date | Time | Region | DeviceID | Temp | Status |
1 | Date1 | Time1 | Region1 | Device1 | Temp1 | NORMAL |
表6
本发明基于Key-Value数据块的数据查询系统,包括管理系统和查询系统。
图3是本发明中量数据管理系统的结构框图。基于Key-Value数据块的数据管理系统301包括数据分块规则获取模块302,数据分块规则与数据块键值对应关系建立模块303,数据块键值与存储位置关系建立模块304,数据条目的Key-Value数据模型建立模块305,数据条目的数据块索引建立模块306。
具体而言,数据分块规则模块302用于获取数据分块规则,所述数据分块规则的结构可以参见上述表2。数据分块规则模块302可以从手动输入模块307获取人为制定的数据聚集的维度,用于生成数据分块规则。数据分块规则与数据块键值对应关系建立模块303用于建立数据分块规则与数据块键值之间的对应关系。数据块键值与存储位置关系建立模块304用于建立数据块键值与数据块实际存储位置的对应关系。所述数据分块规则和数据块键值及存储位置存储在关系型数据库308中。数据条目的Key-Value数据模型建立模块305用于根据数据条目的ID值将数据条目存储到数据文件309(数据块以文件形式存储)中并对应Key-Value数据块。数据条目的数据块索引建立模块306用于根据条目属性建立块内索引。所存储的数据块中数据条目可以参见上述表6。
图4是本发明中数据查询系统的结构框图。所述查询系统401包括数据查询请求获取模块402,数据查询请求解析模块403,数据查询请求与数据分块规则匹配模块404,数据块键值和存储位置查找模块405,数据条目索引查询模块406,数据条目属性查询模块407,数据查询结果合返回模块408。
具体而言,数据库查询请求获取模块402用于获取用户所输入的数据查询请求。数据查询请求解析模块403用于对输入的数据查询请求进行解析,获取其中的查询条件。数据查询请求与数据分块规则匹配模块404用于根据查询请求的条件在关系型数据库409中匹配数据的分块规则。数据块键值与存储位置查找模块405用于响应查询到的数据分块规则,查找与所述数据分块规则对应的数据块键值以及数据块存储的位置信息。数据条目索引查询模块406用于根据数据块属性列值在每一个匹配的数据块410中查询属性索引树取出数据块内ID值。数据条目属性查询模块407用于根据取出的数据块内ID值查询块内索引树,并从数据块中取出数据条目的其它属性信息。数据查询结果返回模块408用于将查询的结果合并后返回请求端。
本发明针对感知数据“一次存储,多次应用”以及数据条目间存在大量重复信息的特点,从数据属性中提取数据聚集的维度,将具有共性的数据聚类存储在同一数据块中,数据块存储的位置和相关属性信息采用关系型数据库进行存储和管理,数据块内的数据采用Key-Value数据模型存储和管理。相比于关系型数据库,将共性的数据聚集,降低一致性约束,大大提高了块内数据的读写效率,同时只对数据块的位置和属性进行管理,数据规模大大减小,查询速度大幅提升。本发明支持海量数据规模,数据块内高效,数据块间可靠,数据分块灵活,大幅提升数据库的查询效率和扩展性。
Claims (5)
1.基于Key-Value数据块的数据查询方法,包括数据管理和数据查询,其特征在于,
数据管理包括以下步骤:
步骤101、从感知数据描述的属性中选取数据聚集的维度,一般选取查询频度较高或者取值重复性较高的属性作为数据聚集的维度;
步骤102、根据选取的数据聚集的维度组建数据分块规则,所述数据分块规则用于指示数据聚集的维度与存储该数据的数据块的对应关系,反映了数据分块条件与数据块之间的对应关系,将选取的数据聚集维度作为数据块对应的属性信息;
步骤103、根据数据分块规则以及数据块与数据块键值之间的对应关系,获取数据分块规则与数据块键值的对应关系以及数据块的存储位置,所述数据块的存储位置是用于指示数据块所存储的计算机节点以及节点中的路径和名称等信息;
步骤104、根据感知数据分块规则在关系型数据库中查找对应的数据块键值,如果查询结果中不存在与所述感知数据分块规则对应的数据条目,则将数据块的存储位置及其对应的属性信息组织成一条数据条目添加到关系型数据库中进行存储和管理;;
步骤105、将感知数据条目按照所述对应的数据聚集维度和数据块的存储位置添加存储到对应的数据块中,所述数据块内的感知数据条目采用Key-Value数据模型,Key值为感知数据条目的键值,Value值为感知数据的属性,所述Key值的数据结构具体可以为R树、B+树、B树或自定义的方法;
步骤106、建立新添加感知数据条目的数据块内索引,所述数据块内索引采用Key-Value数据模型,Key值为所述数据块内索引所对应的字段,Value值为感知数据条目的键值,所述Key值的数据结构具体可以为R树、B+树、B树或自定义的方法;
数据查询包括以下步骤:
步骤201、获取数据查询请求;
步骤202、对获取的查询请求进行解析,用于确定数据查询请求中的数据块列值和数据块属性列值;
步骤203、在关系型数据库中查询与所述查询请求相匹配的数据块;
步骤204、当所述查询请求与至少一个数据块相匹配时,将所述查询请求和与其匹配的数据块键值分发到所有计算机节点,所述计算机节点为至少存在一个与其匹配的数据块;当没有与所述查询请求相匹配的数据块时,直接返回空结果集;
步骤205、Key-Value数据模型对数据块内查询请求进行处理,根据数块内索引的Key值,查询其对应的Value值,即数据块内数据条目的Key值;
步骤206、根据数据块的Key值查询数据块内数据条目的属性;
步骤207、将查询到的数据条目属性合并后返回请求端。
2.如权利要求1所述的基于Key-Value数据块的数据查询方法,其特征在于,步骤101中,选取查询频度较高或者取值重复性较高的属性作为数据聚集的维度。
3.如权利要求1所述的基于Key-Value数据块的数据查询方法,其特征在于,步骤105中,所述Key值的数据结构为R树、B+树、B树中的任意一种。
4.如权利要求1所述的基于Key-Value数据块的数据查询方法,其特征在于,步骤106中,所述Key值的数据结构为R树、B+树、B树中的任意一种。
5.基于Key-Value数据块的数据查询系统,包括管理系统和查询系统,其特征在于,
管理系统包括:
数据分块规则获取模块,所述数据分块规则用于指示数据聚集的维度,反映了数据分块条件与数据块之间的对应关系;
数据分块规则与数据块键值对应关系建立模块,其根据数据分块规则和数据块与数据块键值之间的对应关系,建立数据分块规则与数据块键值之间的对应关系;
数据块键值与存储位置关系建立模块,其根据数据块键值和数据块存储位置,建立数据块键值与其存储位置之间的对应关系;
Key-Value数据模型建立模块,根据数据条目在数据块内的键值建立数据条目的Key-Value数据模型;
数据块索引建立模块,其根据查询的属性建立数据条目的数据块索引;
数据查询系统包括:
数据查询请求获取模块;
数据查询请求解析模块;
数据查询请求与数据分块规则匹配模块;
数据块键值和存储位置查找模块,其响应于所述数据查询请求与至少一个数据分块规则匹配,查找数据查询请求匹配数据块的键值及其存储位置;
数据条目索引查询模块,按照数据查询请求在匹配数据块内查询数据条目索引;
数据条目属性查询模块,用于根据查询到的所述数据条目索引在数据块内查询数据条目相关属性;
数据查询结果合并返回模块,用于将查询结果合并后返回请求端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410470344.9A CN105488043B (zh) | 2014-09-15 | 2014-09-15 | 基于Key-Value数据块的数据查询方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410470344.9A CN105488043B (zh) | 2014-09-15 | 2014-09-15 | 基于Key-Value数据块的数据查询方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105488043A true CN105488043A (zh) | 2016-04-13 |
CN105488043B CN105488043B (zh) | 2019-03-26 |
Family
ID=55675027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410470344.9A Active CN105488043B (zh) | 2014-09-15 | 2014-09-15 | 基于Key-Value数据块的数据查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105488043B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503223A (zh) * | 2016-11-04 | 2017-03-15 | 华东师范大学 | 一种结合位置和关键词信息的在线房源搜索方法及装置 |
CN106649770A (zh) * | 2016-12-27 | 2017-05-10 | 北京启明星辰信息安全技术有限公司 | 一种大数据查询方法及系统 |
CN107016025A (zh) * | 2016-11-17 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种非关系型数据库索引的建立方法及装置 |
WO2018081925A1 (zh) * | 2016-11-01 | 2018-05-11 | 深圳中兴力维技术有限公司 | 内存数据库查询方法及装置 |
CN108628929A (zh) * | 2017-03-24 | 2018-10-09 | 西部数据技术公司 | 用于智能存档和分析的方法和装置 |
CN109288586A (zh) * | 2018-10-09 | 2019-02-01 | 陈功 | 一种基于骨科手术导航的控制系统 |
CN110019014A (zh) * | 2017-12-19 | 2019-07-16 | 华为技术有限公司 | 向文件系统写入数据记录的方法和装置 |
CN110175176A (zh) * | 2019-05-31 | 2019-08-27 | 杭州复杂美科技有限公司 | 一种kv数据库配置方法、查询方法、设备和存储介质 |
CN110532282A (zh) * | 2019-08-09 | 2019-12-03 | 合肥工业大学 | 数据查询方法及装置 |
CN110555070A (zh) * | 2018-06-01 | 2019-12-10 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN110633297A (zh) * | 2019-09-12 | 2019-12-31 | 苏州百宝箱科技有限公司 | 智慧城市数据共享系统 |
CN110717192A (zh) * | 2019-09-11 | 2020-01-21 | 南京工业职业技术学院 | 基于Key-Value加速器的面向大数据安全的访问控制方法 |
CN111597198A (zh) * | 2020-04-01 | 2020-08-28 | 北京邮电大学 | 一种对于异构资源接入的物联网数据查询方法及相关设备 |
CN111597274A (zh) * | 2020-07-23 | 2020-08-28 | 南京数科安金信息技术有限公司 | 一种数据分布式加密存储系统 |
CN111639075A (zh) * | 2020-05-09 | 2020-09-08 | 武汉大学 | 一种基于扁平化r树的非关系数据库矢量数据管理方法 |
WO2020215558A1 (zh) * | 2019-04-26 | 2020-10-29 | 平安科技(深圳)有限公司 | 数据存储方法、数据查询方法、装置、设备及存储介质 |
CN112035257A (zh) * | 2020-08-31 | 2020-12-04 | 浪潮云信息技术股份公司 | 基于KV存储的mergejoin异步块运算方法 |
CN113220760A (zh) * | 2021-04-28 | 2021-08-06 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
CN113380356A (zh) * | 2021-05-10 | 2021-09-10 | 广州零端科技有限公司 | 分支链式溯源的医疗检查数据记录方法、查询方法及装置 |
CN113468232A (zh) * | 2017-02-27 | 2021-10-01 | 分秒库公司 | 用于查询时间序列数据的可扩展数据库系统 |
CN113535746A (zh) * | 2021-09-13 | 2021-10-22 | 环球数科集团有限公司 | 一种非关系型数据通过随机序列读写后控制一致性的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101167048A (zh) * | 2004-11-30 | 2008-04-23 | 科格洛斯公司 | 多维企业软件系统内的可聚集维度信息的生成 |
US20090157592A1 (en) * | 2007-12-12 | 2009-06-18 | Sun Microsystems, Inc. | Method and system for distributed bulk matching and loading |
CN102750356A (zh) * | 2012-06-11 | 2012-10-24 | 清华大学 | 一种键值库辅助索引的构建与管理方法 |
-
2014
- 2014-09-15 CN CN201410470344.9A patent/CN105488043B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101167048A (zh) * | 2004-11-30 | 2008-04-23 | 科格洛斯公司 | 多维企业软件系统内的可聚集维度信息的生成 |
US20090157592A1 (en) * | 2007-12-12 | 2009-06-18 | Sun Microsystems, Inc. | Method and system for distributed bulk matching and loading |
CN102750356A (zh) * | 2012-06-11 | 2012-10-24 | 清华大学 | 一种键值库辅助索引的构建与管理方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018081925A1 (zh) * | 2016-11-01 | 2018-05-11 | 深圳中兴力维技术有限公司 | 内存数据库查询方法及装置 |
CN106503223B (zh) * | 2016-11-04 | 2019-12-17 | 华东师范大学 | 一种结合位置和关键词信息的在线房源搜索方法及装置 |
CN106503223A (zh) * | 2016-11-04 | 2017-03-15 | 华东师范大学 | 一种结合位置和关键词信息的在线房源搜索方法及装置 |
CN107016025A (zh) * | 2016-11-17 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种非关系型数据库索引的建立方法及装置 |
CN106649770A (zh) * | 2016-12-27 | 2017-05-10 | 北京启明星辰信息安全技术有限公司 | 一种大数据查询方法及系统 |
CN106649770B (zh) * | 2016-12-27 | 2020-05-05 | 北京启明星辰信息安全技术有限公司 | 一种大数据查询方法及系统 |
CN113468232A (zh) * | 2017-02-27 | 2021-10-01 | 分秒库公司 | 用于查询时间序列数据的可扩展数据库系统 |
CN108628929A (zh) * | 2017-03-24 | 2018-10-09 | 西部数据技术公司 | 用于智能存档和分析的方法和装置 |
CN108628929B (zh) * | 2017-03-24 | 2021-11-16 | 西部数据技术公司 | 用于智能存档和分析的方法和装置 |
CN110019014A (zh) * | 2017-12-19 | 2019-07-16 | 华为技术有限公司 | 向文件系统写入数据记录的方法和装置 |
CN110555070A (zh) * | 2018-06-01 | 2019-12-10 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN110555070B (zh) * | 2018-06-01 | 2021-10-22 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN109288586A (zh) * | 2018-10-09 | 2019-02-01 | 陈功 | 一种基于骨科手术导航的控制系统 |
WO2020215558A1 (zh) * | 2019-04-26 | 2020-10-29 | 平安科技(深圳)有限公司 | 数据存储方法、数据查询方法、装置、设备及存储介质 |
CN110175176A (zh) * | 2019-05-31 | 2019-08-27 | 杭州复杂美科技有限公司 | 一种kv数据库配置方法、查询方法、设备和存储介质 |
CN110532282A (zh) * | 2019-08-09 | 2019-12-03 | 合肥工业大学 | 数据查询方法及装置 |
CN110532282B (zh) * | 2019-08-09 | 2022-09-23 | 合肥工业大学 | 数据查询方法及装置 |
CN110717192A (zh) * | 2019-09-11 | 2020-01-21 | 南京工业职业技术学院 | 基于Key-Value加速器的面向大数据安全的访问控制方法 |
CN110633297A (zh) * | 2019-09-12 | 2019-12-31 | 苏州百宝箱科技有限公司 | 智慧城市数据共享系统 |
CN111597198A (zh) * | 2020-04-01 | 2020-08-28 | 北京邮电大学 | 一种对于异构资源接入的物联网数据查询方法及相关设备 |
CN111639075A (zh) * | 2020-05-09 | 2020-09-08 | 武汉大学 | 一种基于扁平化r树的非关系数据库矢量数据管理方法 |
CN111639075B (zh) * | 2020-05-09 | 2023-05-12 | 武汉大学 | 一种基于扁平化r树的非关系数据库矢量数据管理方法 |
CN111597274A (zh) * | 2020-07-23 | 2020-08-28 | 南京数科安金信息技术有限公司 | 一种数据分布式加密存储系统 |
CN112035257A (zh) * | 2020-08-31 | 2020-12-04 | 浪潮云信息技术股份公司 | 基于KV存储的mergejoin异步块运算方法 |
CN112035257B (zh) * | 2020-08-31 | 2022-05-31 | 浪潮云信息技术股份公司 | 基于KV存储的mergejoin异步块运算方法 |
CN113220760A (zh) * | 2021-04-28 | 2021-08-06 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
CN113380356A (zh) * | 2021-05-10 | 2021-09-10 | 广州零端科技有限公司 | 分支链式溯源的医疗检查数据记录方法、查询方法及装置 |
CN113380356B (zh) * | 2021-05-10 | 2024-04-16 | 广州零端科技有限公司 | 分支链式溯源的医疗检查数据记录方法、查询方法及装置 |
CN113535746A (zh) * | 2021-09-13 | 2021-10-22 | 环球数科集团有限公司 | 一种非关系型数据通过随机序列读写后控制一致性的方法 |
CN113535746B (zh) * | 2021-09-13 | 2021-11-23 | 环球数科集团有限公司 | 一种非关系型数据通过随机序列读写后控制一致性的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105488043B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105488043A (zh) | 基于Key-Value数据块的数据查询方法及系统 | |
CN105404634A (zh) | 基于Key-Value数据块的数据管理方法及系统 | |
Solihin et al. | A simplified relational database schema for transformation of BIM data into a query-efficient and spatially enabled database | |
Kang et al. | MongoDB-based repository design for IoT-generated RFID/sensor big data | |
Holzschuher et al. | Performance of graph query languages: comparison of cypher, gremlin and native access in Neo4j | |
CN105122243B (zh) | 用于半结构化数据的可扩展分析平台 | |
Franke et al. | Distributed semantic web data management in HBase and MySQL cluster | |
CN104160394B (zh) | 用于半结构化数据的可缩放分析平台 | |
CN101916261B (zh) | 一种分布式并行数据库系统的数据分区方法 | |
US8745021B2 (en) | Transformation of complex data source result sets to normalized sets for manipulation and presentation | |
US20190205480A1 (en) | Layered graph data structure | |
CN104102710A (zh) | 一种海量数据查询方法 | |
Khan et al. | SQL Database with physical database tuning technique and NoSQL graph database comparisons | |
CN101727478A (zh) | 动态建立并用储存库中的数据填充数据集市的方法和系统 | |
Reniers et al. | On the state of nosql benchmarks | |
Malensek et al. | Fast, ad hoc query evaluations over multidimensional geospatial datasets | |
CN103455531A (zh) | 一种支持高维数据实时有偏查询的并行索引方法 | |
CN103617199A (zh) | 一种操作数据的方法和系统 | |
CN104090962A (zh) | 面向海量分布式数据库的嵌套查询方法 | |
CN104408044A (zh) | 一种文件存取方法和系统 | |
CN103823846A (zh) | 一种基于图论的大数据存储及查询方法 | |
CN104081397A (zh) | 创建归档模型 | |
El Kaed et al. | Forte: A federated ontology and timeseries query engine | |
CN103365987A (zh) | 一种基于共享磁盘架构的集群数据库系统及数据处理方法 | |
CN107273443B (zh) | 一种基于大数据模型元数据的混合索引方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |