物联网(The Internet of things)的定义是:通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。物联网的概念是在1999年提出的。物联网就是“物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通讯。
物联网时代,大量的数据从不同的设备传感器产生,单机数据库系统肯定无法存储这么大量的数据,在选择数据库方面,肯定要选择具有分布式能力存储的数据库。
在物联网时代,数据之间还有一个非常重要的特性,那就是数据之间的关联性。不同的数据从相互连接的互联网设备传感器中产生,由于不同的传感器相互连接,协同工作和采集数据,如何将大量具有相互关联的数据保存在数据库,这里我推荐使用图数据库来进行存储。
图数据库相对于其他数据库来说,最大的优势就是查询数据之间的关联性会更加快速,消耗的时间会更短。打个比方,在社交网络中,我们想要查询在用户A的粉丝中,粉丝关注了B的用户。如果使用传统关系型数据库来存储用户的关注关系,在上面的数据统计中,要使用两层Join才能算出结果,而关系型数据库Join *** 作会很慢。使用图型数据库存储数据的话,图中的点为用户,边为用户的关注关系,在查询A的粉丝,同时粉丝也关注B的用户,只需要遍历两层关注关系就能很快查询到结果。
图数据库也属于NoSql数据库的一种,常用的图形数据库有,JanusGraph、Neo4j、Cayley、dgraph。不同的图数据库,底层实现也不尽相同。
JanusGraph是一种分布式图数据库,由Java语言开发,可以使用Hadoop生态存储系统作为数据源,构建出数据大图。是TiTan图数据库的开源版本,支持事务的ACID。
Neo4j是一种单机的图数据库,其优势就是能够快速安装并且使用,便于新同学上手。你的数据量一般不大的话,我推荐使用Neo4j,直接使用Neo4j相关的API就可以将数据模型图构建而出,然后使用Neo4jCypher查询语言,就可以分析数据,Cypher是一种类SQL的语言。
Cayley和Dgraph都是使用Go语言实现的图数据库,Go语言的最大特性就是其编译速度和开发便捷性,Cayley和Dgraph都支持分布式存储,不过都不支持SQL语言查询数据,Dgraph不支持事务,而Cayley支持事务,不过在开源社区,Dgraph比Cayley更加活跃,这里优先建议使用Dgraph作为物联网的存储数据库。
总体来说,在物联网时代,一定要学会使用图数据库,在分析大量数据之间的关联性时,图数据库就能够派上用场,图数据库最大的优势就是分析不同数据之间的关联性。
物联网就是通过信息传感设备,按照约定的协议,把任何物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。通俗地讲,物联网就是“物物相连的互联网”,它包含两层含义:
第一,物联网是互联网的延伸和扩展,其核心和基础仍然是互联网;
第二,物联网的用户端不仅包括人,还包括物品,物联网实现了人与物品及物品之间信息的交换和通信。
物联网作为新一代信息技术的高度集成和综合运用,具有渗透性强、带动作用大、综合效益好的特点,是继计算机、互联网、移动通信网之后信息产业发展的又一推动者。物联网就是通过信息传感设备,按照约定的协议,把任何物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
通俗地讲,物联网就是“物物相连的互联网”,它包含两层含义:
第一,物联网是互联网的延伸和扩展,其核心和基础仍然是互联网;
第二,物联网的用户端不仅包括人,还包括物品,物联网实现了人与物品及物品之间信息的交换和通信。
物联网作为新一代信息技术的高度集成和综合运用,具有渗透性强、带动作用大、综合效益好的特点,是继计算机、互联网、移动通信网之后信息产业发展的又一推动者。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)