基于Key-Value数据块的数据查询方法及系统的利记博彩app
【技术领域】
[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]