贾睿
摘 要:随着物联网深入应用到各行各业,各类型传感器时刻在产生大量的数据,占用大量存储空间。由于不同用户需要不同的数据服务和安全级别,复杂的业务规则需要灵活的数据访问机制,因此,如何存储、共享和隔离这些数据是物联网数据管理系统的主要挑战。文章设计基于图数据库的物联网数据管理系统,使用具有节点、边、属性的图形结构来存储和表示各个物联网实体及实体间关系,有效降低数据管理复杂度,保障数据安全性。
关键词:物联网;异构数据;图数据库
0 引言
物联网被广泛应用于医疗保健,交通运输,智能家居和监控系统等众多日常应用中,并以前所未有的速度快速增长,预测到2022年物联网传感设备的数量将达到80亿[1]。物联网设备生成大量传感数据,将数据传输并存储在资源丰富的平台,对分析历史传感数据对于各种物联网应用的决策至关重要[2]。物联网数据特征如下:
(1)多源异构。物联网数据来自不同的传感设备,如环境设备、监控设备、养殖设备等,各种设备数据具有不同的属性和结构。
(2)规模庞大。物联网中有大量的传感设备,这些设备实时不间断的产生传感数据,对数据存储空间和性能有很高要求。
(3)时空关联。物联网数据具有时间和空间属性,用于描述时间和空间中对象状态的动态变化。
由于上述特征,存储和管理海量异构物联网数据具有挑战性,主要体现在数据存储模式应满足多源、异构、海量的物联网数据存储需求;分析物联网设备产生的事件数据和状态数据间复杂关联关系,发现海量数据间蕴含的共性和模式,挖掘深层次业务价值。
1 相关工作
目前,已开展多项技术来研究海量异构物联网数据存储,主要分为:文件系统存储、关系型数据库存储、NoSQL数据库存储。
(1)文件系统存储:有许多研究使用文件系统作为物联网数据的存储介质[3],将多个存储节点连接为整个文件系统,提供统一资源管理。存在的缺陷:仅提供基本存储和检索功能,海量数据的实时处理和存储性能不理想。
(2)关系数据库存储:目前,大多数物联网数据存储方案都基于关系数据库[4-5],但通过简单地扩展关系数据库很难满足物联网海量数据存储和高效查询需求。
(3)NoSQL数据库存储:文献[6]以HBase作为数据库存储系统,对车辆GPS 等传感器RowKey和列族的设计方法进行了描述,并进行可拓展性测试。
2 基于图数据库的物联网数据管理系统
本文提出一种新的物联网数据管理系统,采用图数据库来存储和管理海量异构物联网数据,支持海量物联网数据的存储和高效查询,适应多种异构数据格式。其主要组件包括:
2.1 MQTT代理服务
连接海量传感器,支持从传感器实时、安全、可靠地传输数据,也可以向传感器安全地发送指令,调整其运行方式和状态。
2.2 数据处理服务
对传感器数据进行真实性和安全性验证,保证被存储的传感器数据是由经过认证、可靠的设备所发送的,避免不安全的数据进入存储空间;根据传感器数据特征,结合设备属性、传感器属性、时间属性等,形成存储操作语句。
2.3 数据存储服务
采用图形數据库节点和属性来表示各种应用数据,用户节点包括用户ID、名称、邮箱、电话等;设备节点包括设备编号、名称、型号、描述等;传感器节点包括传感器编号、名称、数值类型等;业务节点包括业务名称、类别、描述、创建时间等;数据节点包括传感器数据、生成时间、存储时间等。
采用图形数据库边和方向来表示数据彼此间关系,主要包括用户设备关联、用户业务关联、设备传感器关联、业务传感器关联、传感器数据关联。当业务变化时,定位被影响的信息节点,构建关联调整指令,更新对应边结构。
3 实验与结果
3.1 数据架构
本系统采用Neo4j图形数据库作为物联网数据存储,设计了用户、设备、业务、传感器和数据等数据节点,并设计OWNS,CONTAINS,INCLUDES,STORES等关联关系。
本系统中,数据节点结构为Data(Value,Type,SensorCode,Timestamp,StorageTime),Timestamp属性表示存储时间戳,并用其进行时间维度的过滤和选择;传感器节点数据结构为Sensor(Code,Name,Description,Creator,CreateTime);两者之间是一对多的关系,即一个传感器可以产生多条数据,但一条数据仅能属于一个传感器。Sensor和Data节点设计抽象提取物联网应用中核心属性,结合图数据库的键值对数据存储格式,能够很好地支持异构数据的扩展和存储。当产生新的异构数据时,仅需要调整数据节点属性,不会影响已有数据。
本系统采用设备从纵向维度对传感器进行分组管理,并设计一对多的CONTAINS关系来表示设备-传感器间关联。采用业务节点从横向维度对传感器进行管理,设计多对多的INCLUDES关系来包含多个不同设备下的传感器,并能够根据实际业务变化进行灵活适配。
根据用户对设备的所有权信息为其分配对应的设备节点,根据用户的业务角色为其分配对应的业务节点,设计多对多的OWNS关系来表示用户-设备、用户-业务间关联。用户进行数据访问时,根据其访问规则,结合OWNS关系,构建查询操作,从设备和业务维度查找符合规则的传感器节点,并结合时间条件,定位数据节点,返回查询结果。当用户对设备所属权变化时,或用户业务角色调整时,需构建变更操作,修改用户-设备、用户-业务的OWNS关系即可,兼备灵活性和动态性。
3.2 实验设计和结果
构建1 000万条物联网数据、30 000个传感器、2 000台设备、500项业务、100名用户,并随机连接数据、传感器、设备、业务和用户。使用Neo4j提供的管理工具进行批量数据导入,导入后生成10 032 600个数据Node及10 372 367个Relation。
评测两种不同的数据立方查询方式,从用户相关联的设备和业务出发,根据用户属性、设备类型、业务名称等属性进行过滤,找出和其有连接的传感器交集或并集,并结合起始时间范围等数据属性,最终定位待访问的数据节点。查询性能评测设置了不同数量的用户、设备、业务和传感器的组合环境,模拟验证各种复杂的物联网业务场景,并对比测试是否包含属性查询条件时的平均响应时间。
查询结果展示了查询1 000条传感器集合所需平均时间:查询传感器交集且无查询条件所需0.262 s,查询传感器交集且有属性查询条件所需0.452 s,查询传感器并集且无查询条件所需0.143 s,查询传感器并集且有属性查询条件所需0.149 s。说明在各种复杂的物联网管理场景下,本系统能够在有效时间响应数据访问请求。同时,随着业务变化,数据查询条件也随之动态调整,基于属性的过滤条件未对系统查询响应时间造成显著影响。
4 结语
本文主要分析物联网数据管理系统面对海量数据存储时,缺少异构模型扩展能力、数据访问控制配置能力弱等问题,提出一种优化解决方案:采用图数据库作为物联网数据存储系统,利用其适用于存储、管理、查询高度关联数据的特性,实现物联网设备、传感器及数据的高效管理。后续工作中,会进一步研究图数据库存储模型,加强数据并行处理能力,引入数据安全机制,适应物联网业务高速发展和安全隐私诉求。
[参考文献]
[1]王瑾. 物联网海量异构数据存储与共享策略的思考[J].无线互联科技,2018(10):110-111.
[2]赵立波,李凌霞,王旭.物联网海量异构传感器采样数据存储与查询处理[J].软件导刊,2017(12):182-183,187
[3]田野,袁博,李廷力.物联网海量异构数据存储与共享策略研究[J].电子学报,2016(2):247-257.
[4]丁治明,高需.面向物聯网海量传感器采样数据管理的数据库集群系统框架[J].计算机学报,2012(6):1175-1191.
[5]史俊茹,黑敏星,杨军.一种物联网数据管理框架研究[J].计算机科学,2015(S1):294-298.
[6]KU W Y,CHOU T Y,CHUNG L K.The cloud based sensor data warehouse[C].Taibei:International Symposium on Grids and Clouds and the Open Grid Forum,2011:21-24.
(编辑 姚 鑫)