APP下载

物联网大数据存储与管理技术

2020-12-01付乾

电子技术与软件工程 2020年23期
关键词:子树键值数组

付乾

(山西潞安煤基清洁能源有限责任公司 山西省长治市 046000)

以先进的信息技术为支撑,我国已经进入到了物联网时代,为社会生产以及人们的日常生活带来了很大的便利。而物联网快速发展背景下,对于大量乃至海量数据的存储和管理变得非常重要,在实现信息共享的同时,也可以促进信息利用率的提高。基于此,相关技术人员应该进一步加大对于物联网大数据存储与管理技术的研究工作,将技术所具备的优势最大限度的发挥出来。

1 物联网大数据存储与管理技术面临的困境

物联网是以“物”作为数据来源的网络,以快速发展的传感器技术和网络技术为支撑。物联网的出现,为社会发展创造出更多便利,而在物联网发展中,数据存储与管理技术是核心内容。新时期,伴随着大数据、云计算等信息技术的发展,物联网的规模不断扩大,也使得原本的“大”数据量及“快”数据传输必须重新进行定义[1]。例如,数年前,每秒数万条的数据信息记录会被称为高速吞吐,而现如今,这样的数据记录速率甚至会被认为太慢。借助不同类型的传感器,可以对物理对象的相关信息进行采集,在搭配相应信息传输渠道的情况下,传感器采集到的数据信息会被传递到数据中心,而物联网大数据的发展,对数据存储与管理技术提出了许多新的要求,产生的影响不容忽视。物联网大数据存储与管理技术在很多领域都已经得到了广泛应用,如气象分析、智慧城市建设、环境监测等,不过伴随着数据量的增大,现有的数据存储和数据管理技术逐渐难以满足数据信息存储和管理的现实需求,暴露出很多问题,如信息处理速度缓慢等,需要技术人员及时做好技术创新。

2 物联网大数据存储与管理技术的应用

2.1 分布式文件系统

从技术人员的角度,在设计分布式文件系统的过程中,需要充分考虑系统本身的可靠性及可扩展性,借助“客户机/服务器”模式来对系统的性能进行优化,条件允许的情况下,应该积极引入先进的技术手段来拓展系统功能。通常来讲,如果没有特殊要求,在分布式文件系统中,会使用HaD HDFS 来对数据信息进行存储,其不仅能够提高数据传输和数据检索的效率,也可以切实保障数据安全。另外,HDFS 本身在流数据读写[2]、大数据集和跨平台兼容性等方面有着比较明显的优势,当然,其缺陷同样存在,即无法很好的适应低延迟数据访问的需求,小文件存储数量少,也无法对文件进行相应的修改,给后续工作的实施带来了很大不便。

2.2 分布式数据库

分布式数据库主要指HBase,数据库本身的可靠性高,性能优越,具备可伸缩性,可以被用于非结构化数据和半结构计划数据的存储工作,而且能够为各种类型接口的访问提供支持,从技术人员的角度,在选择数据库访问模式时,应该结合实际应用需求进行考虑,使得访问模式的优势能够得到有效发挥。对比传统的关系数据库,HBase 数据库的结构更加简单,数据存储环节会将数据转化为字符串,能够最大限度的保障信息安全。从用户的角度,如果想要快速可靠的进行数据存储,需要合理的转换数据格式,确保结构化数据和非结构化数据可以被转化成对应的字符串,这样能够为数据存储提供便利[3]。不仅如此,HBase 还具备许多丰富的功能,如数据维护、数据索引、数据可伸缩等,在对物联网大数据存储与管理技术进行研究和应用的过程中,需要将分布式数据库技术的优势充分发挥出来,保证数据存储的效果。

2.3 云数据库

在云计算中,云数据库扮演着相当重要的角色,能够实现数据库的部署和虚拟化,促进数据库数据存储能力的提高,避免重复配置问题,减少资源浪费的同时,也可以为软件和硬件的升级提供良好支撑。云数据库可以提供多样化的数据库功能,为数据的存储和管理提供便利,而结合相应的数据库服务进行分析,用户都能够借助远程方式,使用云数据库的各种功能。对于用户而言,云数据库就好比是一个简单的计算机软件,在对其进行使用时,不需要了解云数据库的原理以及各种物理层面的细节,只需要根据自己的需要选择相应的功能即可[4]。不仅如此,用户也可以在云数据库中进行数据信息的存储,而这样的数据存储,能够利用很多网络平台实现,如百度云平台、360 云盘等,有助于数据存储效率的提高,也可以在很大程度上保证数据信息的真实性和准确性。同时,在数据存储和管理的过程中,借助云数据库的信息检索功能,用户可以十分方便的实现对所需数据信息的快速检索,节约时间和精力。云数据库技术具备易用性和高性能的特征,能够被广泛的应用在市场各个行业和领域,为社会发展和人们的生产生活提供便利。通过这样的方式,工作的质量和效率也会得到提升。

2.4 NoSQL数据库

对于物联网大数据存储与管理而言,NoSQL 数据库是一种至关重要的内容,其所代表的含义是“Not Only SQL”。在该数据库中,传统的关系模型被非关系模型取代,常见的非关系模型包括键值模型、文档模型以及列族模型等。在实际应用中,NoSQL 数据库的表结构并不固定,因此很少会对该数据进行连续操作,也不会遵循事务所具备的原子性特点和一致性特点。NoSQL 数据库与传统的数据库相比,具备更强的灵活性和可扩展性,可以将数据模型和云计算技术结合在一起,为后续的数据存储和数据分析提供良好支撑,保证数据分析的效果,确保数据能够得到有效利用。从目前的发展情况分析,NoSQL 数据库技术在实际应用中存在不少缺陷,如成熟性不足、应用范围狭窄,风险性高等,无法对一些特殊情况进行处理。这种情况下,技术人员需要结合数据存储与管理的具体要求,对NoSQL 数据库进行合理选择,以键值数据库为例,包括BigTable、Dynamo 等,列族数据库则包括了HadoopDB、GreenPLum 等,不同数据库有着各自的特点和优势,通过合理的选择和应用,能够将数据库的价值最大限度的发挥出来[5]。

3 实践应用

以空间有效的高性能键值数据检索系统为例,针对物联网大数据存储和管理技术在实践中的应用情况进行分析。物联网中,索引性能需要满足实时性、海量性和快速性的要求,这里选择Radix Tree 作为数据检索系统的索引结构,因为Radix Tree 具备常数级的查询时间复杂度,对比其他索引结构更加优秀,不过,想要令Radix Tree 适合海量数据,需要规避Radix Tree 中指针的空间开销,同时也需要考虑面对动态数据时如何增加指针数组的空间利用率。

3.1 设计思路

3.1.1 架构设计

考虑Radix Tree 在实际应用中存在的各种问题,为了保证数据存储及管理的效果,本文从物联网大数据环境出发,提出了Radix KV 高性能键值数据检索系统,而从提高该系统在数据索引方面的更新速度,解决空间开销问题,在系统中,设置了自适应并行索引更新,对索引子树构建的并行度进行合理设置,同时设计出了一种基于数组的Radix Tree 表达方式。Radix KV 的索引全部位于内存中,键值数值则被放置在磁盘内,系统可以分为三个不同的层次,分别是HashStore、SortedStore 和IndexedStore。Radix KV 的优势在于,可以基于Radix Tree 检索相应的键值数据,获取相应的查询时间开销,其可以达到常数级,之后,利用数据缓冲区内的二分查找以及哈希索引,可以为最近到达的数据提供必要的实时响应支撑,因为在面对较小的数据量时,二分和哈希具备较好的查询性能优势。

3.1.2 HashStore

HashStore 的日志块功能使得其可以追加写提供支持,在这种情况下,数据流可以通过追加写的方式,被写入到相应的内存块中,促进写吞吐的提高。另外,可以通过在数据与日志块内,构建哈希索引的方式,实现HashStore 数据的高速检索。当HashStore 中的数据量达到一定阈值后,需要将相应的数据写入到SortedStore,做好数据排序,将无序键值数据有序排列,不过考虑数据排序的时间开销较大,可能引发系统写瓶颈,需要对其进行解决。

3.1.3 SortedStore

在系统架构中,键值数据会通过数据流的形式,进入到系统中,而在SortedStore 数据排序操作完成后,处理完成的数据会被发送到IndexedStore,在IndexedStore 中,构建索引子树,并且完成合并操作。在数据子树构建完成后,原本存在于SortedStore 内的所有数据会被清除,然后SortedStore 会继续接收新的数据信息,形成循环。从这个角度分析,索引树的构建可以分成两个阶段,第一阶段是数据的排序以及索引子树的构建,第二阶段是对构建好的索引子树进行合并,在实际应用中,两个阶段不需要区分,可以同时进行操作。

3.2 IndexedStore

IndexedStore 的核心功能,是基于SortedStore 中的K 个数据块,构建K 棵索引子树并且合并到索引树中,因为海量数据索引会带来较大的空间开销,最需要解决的问题,是如何才能实现空间有效的Radix Tree,这里提出了一种空间有效的Radix Tree 表达方式——Radix Array。

3.2.1 Radix Array 设计

Radix Array 可以通过叶子节点数组、内部节点数组和内部节点索引进行表达,借助三点实现对于空间开销的优化:一是在内部节点索引数组中,以数组下标距离来对内部节点间的父子进行表示,直接摒弃指针空间开销;二是在节点父子关系表达中,就Radix Array 构建环节所有内部节点中的父节点进行保存,索引子树构建完成后,对子节点指针进行补全,增加相应的位图索引,以方便对于子节点的快速查找,位图索引的应用,使得内部节点不需要对空的后续子节点距离进行记录,空间利用率得到了优化;三是可以使用中序遍历的方式,对内部节点进行保存,确保其能够实现与叶子节点的一对一映射,不需要对叶子节点和上一层节点间的父子关系进行存储。

3.2.2 IndexedStore 索引更新

在SortedStore 将数据块发送给IndexedStore 后,IndexedStore会对索引进行更新,先针对每个数据块建立起Radix Array,然后将其依次合并到索引树中,而当索引树的数据量超出阈值后,可以将索引中的叶子节点数组放入磁盘内,建立起新的索引树。具体来讲,一是创建数组。将SortedStore 中排序的数据块作为叶子节点数组,SortedStore 中实施多路快速排序的同时,可以对相邻字典序关键词的LCP 进行计算,遍历叶子节点数组,结合LCP 来实现对比较位上不同测试内容的快速获取,完成内部节点创建;二是路由数组构建。获取内部节点后,需要将其插入Treap 中,形成内部节点父子关系;三是Radix Array 合并操作。Radix Array 合并可以直接利用Treap 算法,在针对K 个大小为N/K 的Treap 进行合并时,时间复杂度为O。

4 结语

总而言之,信息化时代背景下,物联网大数据存储与管理技术在推动物联网技术和社会发展方面有着非常积极的作用,基于此,物联网大数据发展中,相关人员应该正确认识数据存储与管理技术,对技术特点和技术优势进行明确,将技术优势充分发挥出来,以更好的满足人们对于数据信息的各种需求,实现数据的高效传递和高度共享,使得数据信息能够被应用到更多领域,为社会经济的稳定健康发展提供可靠支撑。

猜你喜欢

子树键值数组
一种新的快速挖掘频繁子树算法
JAVA稀疏矩阵算法
广义书本图的BC-子树计数及渐近密度特性分析*
JAVA玩转数学之二维数组排序
书本图的BC-子树计数及渐进密度特性分析∗
基于覆盖模式的频繁子树挖掘方法
Excel数组公式在林业多条件求和中的应用
寻找勾股数组的历程
注册表值被删除导致文件夹选项成空白
“扫除”技巧之清除恶意程序