基于Key-Value数据块的数据查询方法及系统的制作方法
【技术领域】
[0001] 本发明涉及物联网、数据库和云计算技术领域,特别是涉及一种基于Key-Value 数据块的数据查询方法及系统。
【背景技术】
[0002] 物联网在智慧城市、智能交通、工业监测、食品溯源等各领域都有着广泛的应用, 近年来得到了迅速的发展。物联网通过射频识别、红外感应器、全球定位系统、激光扫描器、 气体感应器等信息传感设备,按约定的协议,把任何物品与网络连接起来,进行信息交换和 通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
[0003] 物联网的一个特点是对各种感知技术的广泛应用。物联网上部署了多种类型传感 器,每个传感器都是一个信息源。传感器按一定的频率周期采集环境信息,不断更新数据。 物联网采集的感知数据具有如下特点:
[0004] 数据具有结构化特征,并且数据类型比较简单;数据总量非常大,呈现出海量特 征,数据条目数量常常超过数十亿条,存储量常常达到TB以上级别;生成的数据具有时间 属性,数据生成速度快,并发量高,对数据的存储要求比较高;数据变化部分主要为传感器 数据,数据条目间存在大量重复属性信息;数据往往是"一次存储,多次应用",数据存储后 常常不再修改,但是在数据应用时需要经常查询数据,对数据的查询要求比较高,数据并发 量高。如何对这些数据进行高效的存储、管理和检索,从中获取有用的信息,进而提供智能 决策,是物联网面临的关键问题之一。
[0005] 关系型数据库经过几十年的发展,已经成为一个成熟的数据管理和分析技术,是 存储管理结构化数据的最有效手段。它是建立在关系型数据库模型基础上的数据库,其借 助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式 描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数 据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。结构化查询语言 SQL是访问关系型数据库的标准接口,大量使用多表连接操作,通用性强。随着数据规模的 扩大,关系型数据库可以采用分区技术进行扩充,表由多个物理文件组成,当单个节点的能 力抵达上限时,就得通过多服务器节点来分发负载。这时关系型数据库的复杂性就开始影 响其潜在的扩展规模了。分布式中的单点故障问题、跨节点多表格间连接操作的支持等都 存在极大困难。由于关系型数据库追求的是高度一致性、正确性,系统扩展的代价较高,因 此在面对海量数据处理时遇到了瓶颈。
[0006] 随着互联网web2. 0网站的兴起,非关系型的数据库成了一个极其热门的新领域, 非关系数据库产品的发展非常迅速。NoSQL是非关系型数据存储的广义定义,数据存储不 需要固定的表结构,通常也不存在连接操作,采用Key-Value数据模型(根据给定的Key 值,查找对应的Value值),在超大型数据存取上具备关系型数据库无法比拟的性能优势, 如Google的BigTable与Amazon的Dynamo等。这类数据库通过降低一致性约束来提高数 据的存储规模和查询效率,并且大大降低了系统水平扩展的复杂性,但是却无法满足针对 海量数据的结构化复杂查询和统计,需要分布式服务器集群,机器数量庞大,维护费用(场 地、能源)高。
[0007] 简而言之,面对海量的物联网感知数据,关系型数据库读写效率低,扩展复杂,技 术要求高;以NoSQL为代表的非关系型数据库虽然通过降低一致性约束提高了效率,但是 处理海量数据时成百上千甚至上万的计算机规模,对很多应用而言投入过重,并且不支持 结构化复杂查询。因此亟需一种扩展方便、规模适中的海量数据存储和查询的方法和系统。
【发明内容】
[0008] 本发明提出一种基于Key-Value数据块的数据查询方法及系统,以实现在较少数 量计算机情况下就能够对海量物联网感知数据进行高效读写,并可根据业务规模方便地进 行扩展。
[0009] 为了解决上述技术问题,本发明提供一种基于Key-Value数据块的数据查询方 法,包括数据管理和数据查询,其中,
[0010] 数据管理包括以下步骤:
[0011] 步骤101、从感知数据描述的属性中选取数据聚集的维度,一般选取查询频度较高 或者取值重复性较高的属性作为数据聚集的维度;
[0012] 步骤102、根据选取的数据聚集的维度组建数据分块规则,所述数据分块规则用于 指示数据聚集的维度与存储该数据的数据块的对应关系,反映了数据分块条件与数据块之 间的对应关系,将选取的数据聚集维度作为数据块对应的属性信息;
[0013] 步骤103、根据数据分块规则以及数据块与数据块键值之间的对应关系,获取数据 分块规则与数据块键值的对应关系以及数据块的存储位置,所述数据块的存储位置是用于 指示数据块所存储的计算机节点以及节点中的路径和名称等信息;
[0014] 步骤104、根据感知数据分块规则在关系型数据库中查找对应的数据块键值,如果 查询结果中不存在与所述感知数据分块规则对应的数据条目,则将数据块的存储位置及其 对应的属性信息组织成一条数据条目添加到关系型数据库中进行存储和管理;;
[0015] 步骤105、将感知数据条目按照所述对应的数据聚集维度和数据块的存储位置添 加存储到对应的数据块中,所述数据块内的感知数据条目采用Key-Value数据模型,Key值 为感知数据条目的键值,Value值为感知数据的属性,所述Key值的数据结构具体可以为R 树、B+树、B树或自定义的方法;
[0016] 步骤106、建立新添加感知数据条目的数据块内索弓丨,所述数据块内索引采用 Key-Value数据模型,Key值为所述数据块内索引所对应的字段,Value值为感知数据条目 的键值,所述Key值的数据结构具体可以为R树、B+树、B树或自定义的方法;
[0017] 数据查询包括以下步骤:
[0018] 步骤201、获取数据查询请求;
[0019] 步骤202、对获取的查询请求进行解析,用于确定数据查询请求中的数据块列值和 数据块属性列值;
[0020] 步骤203、在关系型数据库中查询与所述查询请求相匹配的数据块;
[0021] 步骤204、当所述查询请求与至少一个数据块相匹配时,将所述查询请求和与其匹 配的数据块键值分发到所有计算机节点,所述计算机节点为至少存在一个与其匹配的数据 块;当没有与所述查询请求相匹配的数据块时,直接返回空结果集;
[0022] 步骤205、Key-Value数据模型对数据块内查询请求进行处理,根据数块内索引的 Key值,查询其对应的Value值,即数据块内数据条目的Key值;
[0023] 步骤206、根据数据块的Key值查询数据块内数据条目的属性;
[0024] 步骤207、将查询到的数据条目属性合并后返回请求端。
[0025] 本发明还提出一种基于Key-Value数据块的数据查询系统,包括管理系统和查询 系统,其中,
[0026] 管理系统包括:
[0027]
数据分块规则获取模块,所述数据分块规则用于指示数据聚集的维度,反映了数 据分块条件与数据块之间的对应关系;
[0028] 数据分块规则与数据块键值对应关系建立模块,其根据数据分块规则和数据块与 数据块键值之间的对应关系,建立数据分块规则与数据块键值之间的对应关系;
[0029] 数据块键值与存储位置关系建立模块,其根据数据块键值和数据块存储位置,建 立数据块键值与其存储位置之间的对应关系;
[0030] Key-Value数据模型建立模块,根据数据条目在数据块内的键值建立数据条目的 Key-Value数据模型;
[0031] 数据块索引建立模块,其根据查询的属性建立数据条目的数据块索引;
[0032] 数据查询系统包括:
[0033] 数据查询请求获取模块;
[0034] 数据查询请求解析模块;
[0035] 数据查询请求与数据分块规则匹配模块;
[0036] 数据块键值和存储位置查找模块,其响应于所述数据查询请求与至少一个数据分 块规则匹配,查找数据查询请求匹配数据块的键值及其存储位置;
[0037] 数据条目索引查询模块,按照数据查询请求在匹配数据块内查询数据条目索引;
[0038] 数据条目属性查询模块,用于根据查询到的所述数据条目索引在数据块内查询数 据条目相关属性;
[0039] 数据查询结果合并返回模块,用于将查询结果合并后返回请求端。
[0040] 需要说明的是,本发明并不限定数据存储在单一计算机环境还是多计算机环境, 实际上本发明既适用于单计算机环境也适用于多计算机环境,数据块的存储位置和属性管 理可以是单点方式、主从方式或分布式方式等现有的关系型数据库支持的方式,数据块管 理可以是单点方式、主从方式、分布式方式或云存储等现有的Key-Value数据库支持的方 式。
[0041] 本发明与现有技术相比,其显著优点在于:(1)将具有共性的数据聚集成块,通过 降低一致性约束来对块内数据进行管理,从而大大提高了块内数据的读写效率;(2)对数 据块的存储位置和属性管理采用关系型数据库,聚集后的数据块的数量比感知数据的数量 在数据规模上大大减小,查询速度可以大幅提升,同时采用关系型数据库进行管理,可以 达到数据块级别的一致性和可靠性,并且数据块间的查询可以采用复杂的结构化查询,通 用性强;(3)本发明融合了关系型数据库和NoSQL数据库的优点,支持海量数据规模,数据 块内高效,数据块间可靠,且扩展性好;(4)通过本发明,数据库使用者可以动态的选取分 块规则对数据进行聚类和重新聚类,实现数据的灵活管理,同时大幅提升数据库的查询效 率和扩展性;(5)本发明并不限定数据的存储是在单一计算机环境中还是在多计算机环境 中,本发明既适用于单计算机环境,也适用于多计算机环境。
【附图说明】
[0042] 图1为本发明基于Key-Value数据块的数据管理方法流程框图。
[0043] 图2为本发明基于Key-Value数据块的数据查询方法流程框图。
[0044] 图3为本发明基于Key-Value数据块的数据管理系统的结构框图。
[0045] 图4为本发明基于Key-Value数据块的数据查询系统的结构框图。
【具体实施方式】
[0046] 物联网采集的感知数据一般包含传感器采集的传感器数据和用于描述属性的数 据。本发明将感知数据按照属性维度进行聚类,将同一属性维度的感知数据存储在同一数 据块中,将选取的数据聚集维度作为数据块对应的属性信息,数据块内部数据的管理采用 Key-Value数据模型,数据块的存储位置及其对应的属性信息采用关系型数据库进行管理, 从而能够支持海量数据规模,实现数据块内高效,数据块间可靠,且扩展性好。
[0047] 本发明基于Key-Value数据块的数据查询方法包括数据管理及数据查询,所述数 据管理,是根据感知数据具有的属性选取数据聚集的维度,将具有同一属性维度的感知数 据进行聚类并集中存储在同一数据块中,将选取的数据聚集维度作为数据块对应的属性信 息;数据块内部的数据采用Key-Value数据格式存储和管理;数据块的存储位置及其对应 的属性信息采用关系型数据库进行存储和管理;所述数据查询,是对按照前述管理方法进 行管理的数据进行查询。
[0048] 如图1所示,是本发明中数据管理包括以下基本步骤:
[0049] 步骤101,从感知数据描述的属性中选取数据聚集的维度。在物联网应用中各种 传感器按一定的频率周期性的采集环境信息,不断更新数据,这些数据从某些维度看存在 大量重复的属性。按照本【具体实施方式】,所述数据聚集的维度可以按照物联网感知数据聚 集的特点以及查询的频率进行选取,即把经常查询的字段或者重复性高的字段作为数据聚 集的维度。例如在电力设备检测中,在设备节点和线路上部署有温度传感器,用于定期采集 温度数据,并存储在数据库中。采集的温度数据如表1所示,包括采集的数据包括Time (时 间)、Region (区域)、DeviceID(设备号)、Temp (温度)、Status (状态),其中Status表示的 数值包括NORMAL (正常)和WARNNING (告警)两种;Time包括Date (日期)和DayTime (时 亥IJ)两部分。数据中ID为数据条目的唯一键值,即唯一标识一条数据。
[0050]
[0051] 表 1
[0052] 大量的温度数据记录具有相同的Region、DevivelD、Status,是数据聚集的维度, 同时也是数据分析时常用的查询维度。时间也是数据查询时一个常用的维度,因此,可以选 取Region、DeviveID、Status以及Time中Date部分作为数据聚集的维度对数据进行分块, 本具体实时方式一个具体的数据聚集的维度为:Region = Regionl, DevivelD = Devivel, Status = NORMAL, Date = Date 1。
[0053] 步骤102,根据选取的数据聚集的维度组建数据分块规则,即获取数据聚集的维 度与数据块之间的对应关系,在关系型数据库中建立数据分块的规则表。表2给出了数 据分块规则与维度之间对应关系的映射表。一个或多个维度的组合对应一个数据分块规 贝1J。在本【具体实施方式】中,维度组合中的每个维度的取值都选取某一固定的值(如Date = Datel)。而根据本领域的普通技术人员理解,对应规则的维度的取值实际上也可以是一个 取值区间(如 Date > Datel 且 Date < Date2)。
[0054]
[0055] 表 2
[0056] 步骤103,根据数据分块规则以及数据块与数据块键值之间的对应关系,获取数据 分块规则与数据块键值的对应关系以及数据块的存储位置。所述对应关系可以被记录在对 应关系表中。表3给出了数据分块规则与数据块键值的对应关系表。所述数据块键值标识 对应的数据块,从而通过数据块键值将数据分块规则与相关的数据块及其位置相对应
。一 个数据块键值唯一确定一个数据块位置信息。在本【具体实施方式】中,一个分块规则仅对应 一个数据块键值,一个数据块键值也仅与一个分块规则对应。而根据本领域的普通技术人 员理解,为了实现数据存储的可靠性和数据查询的并行性,实际上也可以采用冗余策略,由 多个数据块键值对应一个分块规则,这些数据块中存储相同的数据内容。数据块在多台计 算机中的存储位置需要结合具体的业务,并根据数据量、数据块数目、数据并发等因素采用 合适的负载均衡策略。在本【具体实施方式】中,本发明仅选取平均分布数据块的策略,即将所 有数据块平均分布在多台计算机中。
[0057]
[0058] 表 3
[0059] 作为本发明的另一种【具体实施方式】,也可以将数据分块规则表和块键值对应关系 表合并为一个表,即在数据分块规则表中增加相关的数据块键值和块节点两列字段。表4 给出了合并后的规则及键值对应表。
[0060]
[0061] 表 4
[0062] 块节点用于标识数据块所在的计算机节点信息,可以采用计算机的域名或者IP 地址。块键值可以采用一个随机数,或者一个根据维度值计算的Hash(哈希)值,或者直接 由多个维度值组成,但是都必须满足键值的唯一性。根据本领域的普通技术人员理解,块节 点和块键值是标识数据块及其位置信息的一种字段组合,实际上也可以是其它的标识数据 块唯一性和存储位置的字段组合。
[0063] 步骤104中,根据感知数据分块规则在关系型数据库中查找对应的数据块键值, 如果查询结果中不存在与所述感知数据分块规则对应的数据条目,则将数据块的存储位置 及其对应的属性信息组织成一条数据条目添加到关系型数据库中进行存储和管理。按照数 据分块的条件制定查询语句,在数据分块规则表中查询与该条目相匹配的分块规则,再从 数据分块规则和键值对应关系表中查询是否存在可与其匹配的数据块的数目和存储位置 信息,如果没有与其匹配的数据块,则102和103建立相对应的分块规则及键值对应关系, 并将数据块的存储位置及其对应的属性信息组织成一条数据条目添加到关系型数据库中 进行存储和管理;如果有与其匹配的数据块,则直接获取与其匹配的数据块信息;
[0064] 在步骤105中,将感知数据条目按照所述对应的数据聚集的维度和数据块的存储 位置添加存储到对应的数据块中,所述数据块内的感知数据条目采用Key-Value数据模 型,Key值采用感知数据条目的键值,Value值为感知数据的属性。,所述Key值的数据结构 具体可以为R树、B+树、B树或自定义的方法。本【具体实施方式】中采用B+Tree数据结构存 储,选取数据条目中的ID作为Key,其它属性作为Value。数据存储在叶子节点上,非叶子 节点作为叶子节点的索引,提高数据查找效率。叶子节点采用一个有序的链表,每次查找都 会到达叶子节点才会结束。表5-1、5-2、5-3给出了表1中数据条目在三个数据块中的分布 情况。
[0065]
[0066] 表5-1数据块1001中数据
[0067]
[0068] 表5-2数据块1002中数据
[0069]
[0070] 表5-3数据块1003中数据
[0071] 步骤106中,建立新添加感知数据条目的数据块内索引,所述数据块内索引采用 Key-Value数据模型,Key值为所述数据块内索引所对应的字段,Value值为感知数据条目 的键值,所述Key值的数据结构具体可以为R树、B+树、B树或自定义的方法。。本具体实施 方式中采用B+Tree数据结构存储,Key值是待查询的字段或复合字段,Value是数据块内条 目的ID。这样基于属性查询时只需查询一次属性索引树取出块内ID,再查询块内ID索引 树取出数据条目的其它属性信息。
[0072] 图2是本发明中数据查询流程框图,其基于Key-Value数据块的数据管理,进行数 据分块查询。
[0073] 步骤201,获取数据查询请求,例如一个数据查询请求为:DevivelD = Deviveland Status = NORMAL and Date = Dateland Temp = Tempi。
[0074] 步骤202,解析数据查询请求,用于确定数据查询请求中的数据块列值和数据块属 性列值。例如数据查询请求例中,数据块列值为DevivelD = Devivel,Status = NORMAL以 及Date = Datel ;数据块属性列值为Temp = Tempi。
[0075] 步骤203,根据数据块列值判断所述数据查询请求是否与至少一个数据分块规则 相匹配。当有至少一个数据分块规则匹配时需要在匹配的数据块内按属性进行查询;否则 表示没有匹配的查询结果,直接返回空结果集。很显然,数据查询请求例符合分块规则R1。
[0076] 步骤204,查询数据块的键值和存储位置。从数据分块规则和键值对应关系表中查 询匹配数据块的数目和存储位置信息。数据查询请求例中分块规则R1匹配数据块1001。
[0077] 步骤205,根据数据块属性列值在每一个匹配的数据块中查询属性索引树取出数 据块内数据条目的ID值。
[0078] 步骤206,根据取出的数据块内数据条目ID值查询块内索引树取出数据条目的其 它属性信息。在数据查询请求例中,根据Temp = Tempi查询取出的数据条目ID值为1,进 一步数据块内查询满足ID = 1的数据条目作为查询结果。
[0079] 步骤207,将各数据块的结果进行合并,得到最终查询结果返回。数据查询请求例 中结果如表6所示。
[0080]
[0081] 表 6
[0082] 本发明基于Key-Value数据块的数据查询系统,包括管理系统和查询系统。
[0083] 图3是本发明中量数据管理系统的结构框图。基于Key-Value数据块的数据管理 系统301包括数据分块规则获取模块302,数据分块规则与数据块键值对应关系建立模块 303,数据块键值与存储位置关系建立模块304,数据条目的Key-Value数据模型建立模块 305,数据条目的数据块索引建立模块306。
[0084] 具体而言,数据分块规则模块302用于获取数据分块规则,所述数据分块规则的 结构可以参见上述表2。数据分块规则模块302可以从手动输入模块307获取人为制定的 数据聚集的维度,用于生成数据分块规则。数据分块规则与数据块键值对应关系建立模块 303用于建立数据分块规则与数据块键值之间的对应关系。数据块键值与存储位置关系建 立模块304用于建立数据块键值与数据块实际存储位置的对应关系。所述数据分块规则和 数据块键值及存储位置存储在关系型数据库308中。数据条目的Key-Value数据模型建立 模块305用于根据数据条目的ID值将数据条目存储到数据文件309 (数据块以文件形式存 储)中并对应Key-Value数据块。数据条目的数据块索引建立模块306用于根据条目属性 建立块内索引。所存储的数据块中数据条目可以参见上述表6。
[0085] 图4是本发明中数据查询系
统的结构框图。所述查询系统401包括数据查询请 求获取模块402,数据查询请求解析模块403,数据查询请求与数据分块规则匹配模块404, 数据块键值和存储位置查找模块405,数据条目索引查询模块406,数据条目属性查询模块 407,数据查询结果合返回模块408。
[0086] 具体而言,数据库查询请求获取模块402用于获取用户所输入的数据查询请求。 数据查询请求解析模块403用于对输入的数据查询请求进行解析,获取其中的查询条件。 数据查询请求与数据分块规则匹配模块404用于根据查询请求的条件在关系型数据库409 中匹配数据的分块规则。数据块键值与存储位置查找模块405用于响应查询到的数据分块 规则,查找与所述数据分块规则对应的数据块键值以及数据块存储的位置信息。数据条目 索引查询模块406用于根据数据块属性列值在每一个匹配的数据块410中查询属性索引树 取出数据块内ID值。数据条目属性查询模块407用于根据取出的数据块内ID值查询块内 索引树,并从数据块中取出数据条目的其它属性信息。数据查询结果返回模块408用于将 查询的结果合并后返回请求端。
[0087] 本发明针对感知数据"一次存储,多次应用"以及数据条目间存在大量重复信息的 特点,从数据属性中提取数据聚集的维度,将具有共性的数据聚类存储在同一数据块中,数 据块存储的位置和相关属性信息采用关系型数据库进行存储和管理,数据块内的数据采用 Key-Value数据模型存储和管理。相比于关系型数据库,将共性的数据聚集,降低一致性约 束,大大提高了块内数据的读写效率,同时只对数据块的位置和属性进行管理,数据规模大 大减小,查询速度大幅提升。本发明支持海量数据规模,数据块内高效,数据块间可靠,数据 分块灵活,大幅提升数据库的查询效率和扩展性。
【主权项】
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数据模型; 数据块索引建立模块,其根据查询的属性建立数据条目的数据块索引; 数据查询系统包括: 数据查询请求获取模块; 数据查询请求解析模块; 数据查询请求与数据分块规则匹配模块; 数据块键值和存储位置查找模块,其响应于所述数据查询请求与至少一个数据分块规 则匹配,查找数据查询请求匹配数据块的键值及其存储位置; 数据条目索引查询模块,按照数据查询请求在匹配数据块内查询数据条目索引; 数据条目属性查询模块,用于根据查询到的所述数据条目索引在数据块内查询数据条 目相关属性; 数据查询结果合并返回模块,用于将查询结果合并后返回请求端。
【专利摘要】本发明提出一种基于Key-Value数据块的数据查询方法及系统。根据感知数据具有的属性选取数据聚集的维度,将具有共性即具有同一属性维度的感知数据进行聚类,并将其集中存储在同一数据块中,将选取的数据聚集维度作为数据块对应的属性信息;数据块内部的数据采用Key-Value数据格式存储和管理;数据块的存储位置及其对应的属性信息采用关系型数据库进行存储和管理。本发明以实现在较少数量计算机情况下就能够对海量物联网感知数据进行高效读写,并可根据业务规模方便地进行扩展。
【IPC分类】G06F17/30
【公开号】CN105488043
【申请号】CN201410470344
【发明人】张重阳, 陆建峰, 杨静宇
【申请人】南京理工大学
【公开日】2016年4月13日
【申请日】2014年9月15日