物联网时代的大数据策略
互联网时代,PC、Pad、智能手机等设备无处不在,数以亿计的用户通过微博、微信、SNS、博客等途径产生大量的自媒体数据,电商、新闻类网站、搜索引擎每时每刻都在记录着丰富的用户行为信息,海量的数据促进了云计算,分布式技术的发展,而这些技术反过来不仅推动了Web和移动互联网的革新,也推动了物联网的飞速前进。现在,我们正逐渐迈入物联网时代,实现万物互联的愿景,如果说之前人是信息生产的主体,那么或许不久的将来设备将成为主角,它们将源源不断地产生与人相关的衣食住行信息,这些信息会通过云计算、数据挖掘等技术实现价值的升华从而为用户提供更优质、贴心的服务。那么物联网时代会产生什么样的数据,应该采用什么样的大数据策略呢?
THINKstrategies 的总经理 Jeff Kaplan 在自己的博文《 当物联网遇见大数据 》中写道:
“你不能使用现在的策略,因为可以被捕获、管理并利用的数据将更加多样化,同时用例也会更加丰富。附加到各种设备和对象上的传感器会产生各种类型的数据。这些数据将会用于各种响应式的、主动的或者 创造性的目的 。IT部门的任务就是与业务部门一起工作,完全理解物联网方面的用例,然后寻找满足业务需求的技术。特别是,IT部门必须识别出最优的分析平台和工具,让业务用户能够获取到需要的数据,分析数据的含义并快速地做出响应。”
Gartner公司的副总裁、著名分析师 Joe Skorupa 认为:
“分布在世界各地的物联网设备将产生大量的输入数据,将所有的数据传送到一个位置进行处理无论从技术上还是从经济上都是无法实现的。最近的趋势——将应用程序集中起来以便于降低成本并增强安全性——并不适合物联网。组织必须将数据集中到多个分布式的小型数据中心中,在此对数据进行初步的处理并发送到一个中心站点进行额外的处理。数据中心管理员需要在这些区域部署更加具有前瞻性的容量以满足业务发展的需要。”
Patrick McFadin则在自己的博文《 物联网:数据都去了哪里? 》中阐述了一个具体的数据策略解决方案。他认为整个过程可以分为三个阶段:产生数据并通过Internet传递、中央系统收集并组织数据、持续的数据分析与使用。
第一阶段需要决定数据创建的标准以及如何通过网络进行传递。Patrick McFadin认为可以通过>
以上是小编为大家分享的关于物联网时代的大数据策略的相关内容,更多信息可以关注环球青藤分享更多干货
时序数据与截面数据能解决多重共线性 请参考下面时序数据库白皮书。
思极有容数据库
时序数据库技术白皮书
北京中电普华信息技术有限公司
2020年4月
目 录
1 大数据时代的挑战 1
2 产品特点 1
3 系统结构 2
4 存储结构 4
5 数据分区、水平扩展 6
6 高可靠系统 7
7 STable:多表聚合 9
8 数据模型 10
9 实时流式计算 11
10 便捷的安装、部署、维护 12
11 更多亮点 13
12 参数指标 13
13 应用场景 14
1 大数据时代的挑战
随着移动互联网的普及,数据通讯成本的急剧下降,以及各种低成本的传感技术和智能设备的出现,除传统的手机、计算机在实时采集数据之外,手环、共享单车、出租车、智能电表、环境监测设备、电梯、大型设备、工业生产线等也都在源源不断的产生海量的实时数据并发往云端。这些海量数据是企业宝贵的财富,能够帮助企业实时监控业务或设备的运行情况,生成各种维度的报表,而且通过大数据分析和机器学习,对业务进行预测和预警,能够帮助企业进行科学决策、节约成本并创造新的价值。
仔细研究发现,所有机器、设备、传感器、以及交易系统所产生的数据都是时序的,而且很多还带有位置信息。这些数据具有明显的特征,1: 数据是时序的,一定带有时间戳;2:数据是结构化的;3: 数据极少有更新或删除 *** 作;4:无需传统数据库的事务处理;5:相对互联网应用,写多读少;6:用户关注的是一段时间的趋势,而不是某一特点时间点的值;7: 数据是有保留期限的;8:数据的查询分析一定是基于时间段和地理区域的;9:除存储查询外,往往还需要各种统计和实时计算 *** 作;10:数据量巨大,一天采集的数据就可以超过100亿条。
看似简单的事情,但由于数据记录条数巨大,导致数据的实时写入成为瓶颈,查询分析极为缓慢,成为新的技术挑战。传统的关系型数据库或NoSQL数据库以及流式计算引擎由于没有充分利用这些数据的特点,性能提升极为有限,只能依靠集群技术,投入更多的计算资源和存储资源来处理,企业运营维护成本急剧上升。
2 产品特点
思极有容时序数据库正是普华公司面对这一高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品,它不依赖任何第三方软件,也不是优化或包装了一个开源的数据库或流式计算产品,而是在吸取众多传统关系型数据库、NoSQL数据库、流式计算引擎、消息队列等软件的优点之后自主开发的产品,在时序空间大数据处理上,有着自己独到的优势。
· 10倍以上的性能提升:定义了创新的数据存储结构,单核每秒就能处理至少2万次请求,插入数百万个数据点,读出一千万以上数据点,比现有通用数据库快了十倍以上。
· 硬件或云服务成本降至1/5:由于超强性能,计算资源不到通用大数据方案的1/5;通过列式存储和先进的压缩算法,存储空间不到通用数据库的1/10。
· 全栈时序数据处理引擎:将数据库、消息队列、缓存、流式计算等功能融合一起,应用无需再集成Kafka/Redis/HBase/HDFS等软件,大幅降低应用开发和维护的复杂度成本。
· 强大的分析功能:无论是十年前还是一秒钟前的数据,指定时间范围即可查询。数据可在时间轴上或多个设备上进行聚合。临时查询可通过Shell, Python, R, Matlab随时进行。
· 与第三方工具无缝连接:不用一行代码,即可与Telegraf, Grafana, Matlab, R等工具集成。后续将支持MQTT, OPC等工具, 与BI工具也能够无缝连接。
· 零运维成本、零学习成本:安装、集群一秒搞定,无需分库分表,实时备份。支持标准SQL语句,支持JDBC, RESTful连接, 支持Python/Java/C/C++/Go等开发语言, 与MySQL相似,零学习成本。
采用思极有容时序数据库,可将典型的物联网、车联网、工业互联网大数据平台的整体成本降至现有的1/5。同样的硬件资源,思极有容时序数据库能将系统处理能力和容量增加五倍以上。
3 系统结构
思极有容时序数据库是基于硬件、软件系统不可靠、一定会有故障的假设进行设计的,是基于任何单台计算机都无足够能力处理海量数据的假设进行设计的,因此思极有容时序数据库从研发的第一天起,就是按照分布式高可靠架构进行设计的,是完全去中心化的。思极有容时序数据库整个系统结构如下图所示,下面对一些基本概念进行介绍。
物理节点:集群里的任何一台物理机器(dnode),根据其具体的CPU、内存、存储和其它物理资源,思极有容时序数据库将自动配置多个虚拟节点。
虚拟数据节点:存储具体的时序数据,所有针对时序数据的插入和查询 *** 作,都在虚拟数据节点上进行(图例中用V标明)。位于不同物理机器上的虚拟数据节点可以组成一个虚拟数据节点组(如图例中dnode0中的V0, dnode1中的V1, dnode6中的V2组成了一个组),虚拟节点组里的虚拟节点的数据以异步的方式进行同步,并实现数据的最终一致性,以保证一份数据在多台物理机器上有拷贝,而且即使一台物理机器宕机,总有位于其他物理机器上的虚拟节点能处理数据请求,从而保证系统运行的高可靠性。
虚拟管理节点:负责所有节点运行状态的采集、节点的负载均衡,以及所有Meta Data的管理,包括用户、数据库、表的管理(图例中用M标明)。当应用需要插入或查询一张表时,如果不知道这张表位于哪个数据节点,应用会连接管理节点来获取该信息。Meta Data的管理也需要有高可靠的保证,系统采用Master-Slave的机制,容许多到5个虚拟管理节点组成一个虚拟管理节点集群(如图例中的M0, M1, M2)。这个虚拟管理节点集群的创建是完全自动的,无需任何人工干预,应用也无需知道虚拟管理节点具体在哪台物理机器上运行。
集群对外服务IP:整个系统可以由多台甚至数万台服务器组成,但对于应用而言,只需要提供整个集群中任何一台或两台服务器的IP地址即可。 集群将根据应用的请求,自动的将请求转发到相应的一个甚至多个节点进行处理,包括聚合、计算 *** 作等。这些复杂的分发和路由对应用是完全透明的。
4 存储结构
为提高压缩和查询效率,思极有容时序数据库采用列式存储。与众多时序数据库不同的是,思极有容时序数据库基于时序数据的特点,将每一个采集点的数据作为数据库中的一张独立的表来存储。这样对于一个采集点的数据而言,无论在内存还是硬盘上,数据点在介质上是连续存放的,这样大幅减少随机读取 *** 作,减少IO *** 作次数,数量级的提升读取和查询效率。而且由于不同数据采集设备产生数据的过程完全独立,每个设备只产生属于自己的数据,一张表也就只有一个写入者。这样每个表就可以采用无锁方式来写,写入速度就能大幅提升。同时,对于一个数据采集点而言,其产生的数据是时序的,因此写的 *** 作可用追加的方式实现,进一步大幅提高数据写入速度。
数据具体写如流程如图所示:
写入数据时,先将数据点写进Commit日志,然后转发给同一虚拟节点组里的其他节点,再按列写入分配的内存块。当内存块的剩余空间达到一定临界值或设定的commit时间时, 内存块的数据将写入硬盘。内存块是固定大小(如16K)的, 但依据系统内存的大小,每个采集点可以分配一个到多个内存块,采取LRU策略进行管理。在一个内存块里,数据是连续存放的,但块与块是不连续的,因此思极有容时序数据库为每一个表在内存里建立有块的索引,以方便写入和查询。
数据写入硬盘是以添加日志的方式进行的,以求大幅提高落盘的速度。为避免合并 *** 作,每个采集点(表)的数据也是按块存储,在一个块内,数据点是按列连续存放的,但块与块之间可以不是连续的。思极有容时序数据库对每张表会维护一索引,保存每个数据块在文件中的偏移量,起始时间、数据点数、压缩算法等信息。每个数据文件仅仅保存固定一段时间的数据(比如一周,可以配置),因此一个表的数据会分布在多个数据文件中。查询时,根据给定的时间段,思极有容时序数据库将计算出查找的数据会在哪个数据文件,然后读取。这样大幅减少了硬盘 *** 作次数。多个数据文件的设计还有利于数据同步、数据恢复、数据自动删除 *** 作,更有利于数据按照新旧程度在不同物理介质上存储,比如最新的数据存放在SSD盘上,最老的数据存放在大容量但慢速的硬盘上。通过这样的设计,思极有容时序数据库将硬盘的随机读取几乎降为零,从而大幅提升写入和查询效率,让思极有容时序数据库在很廉价的存储设备上也有超强的性能。
为减少文件个数,一个虚拟节点内的所有表在同一时间段的数据都是存储在同一个数据文件里,而不是一张表一个数据文件。但是对于一个数据节点,每个虚拟节点都会有自己独立的数据文件。
5 数据分区、水平扩展
为处理每日高达数亿条的海量数据,数据必须在多个节点存放。在思极有容时序数据库里,数据是按照每个采集点(表)来存放的。一张表(一个采集点)的数据,即使每秒产生一百个字节的数据量,一年也才3G的数据量,压缩后,往往还不到300M,因此在思极有容时序数据库里,一个表的数据是不跨节点存储的,以便于单张表的快速高效的插入、查询和计算。
为更好的数据分区,思极有容时序数据库采用了虚拟数据节点的设计。一个虚拟数据节点包含多个表,表的数量可以配置。根据其计算和存储资源,一个物理节点将被划分为多个虚拟数据节点。虚拟数据节点的设计带来几大优势:
1)更好的支持硬件异构环境,资源多的服务器可以创建更多的虚拟节点;
2)恢复一个宕机的节点,可以让众多的其他节点参与进来,大大加快速度;
3)如果撤掉一个数据节点,该节点上的虚拟节点将被相当均匀的迁移到其他节点上去;
4)新增一个数据节点,负载过热的节点的上的部分虚拟节点将被整体迁移过来。这一切让负载更加均衡,让数据同步变得更加高效。
与传统的数据库相似,用户可以创建多个数据库,每个库里面,可以创建多个表。一个库可以横跨多个虚拟数据节点,但一个虚拟数据节点仅仅属于一个数据库。当用户添加一个表时,管理节点将查看已经分配的虚拟节点里是否还有空位,如果有,就将该表分配到这虚拟节点。如果这个库的所有虚拟节点都没有空位,管理节点将根据负载均衡的策略(随机、轮询等)来分配一个新的虚拟节点给该库,然后将该表分配到新的虚拟节点里。由于一台物理主机有多个虚拟数据节点,这种策略能保证负载均匀分布。
管理节点负责整个系统的负载均衡,包括虚拟数据节点的增加、删除、迁移、合并与拆分。管理节点并不保存每个采集点采集的数据,只是管理虚拟节点,即使宕机,也不会影响现有各虚拟节点的数据插入和查询 *** 作。各个采集点或应用从管理节点获取分配的虚拟数据节点信息后,然后直接与虚拟数据节点通讯,直接将数据插入数据库,对于查询 *** 作也是如此。因此,系统容量以及吞吐率与虚拟数据节点的个数成正比,整个系统是水平扩展的
6 高可靠系统
为保证数据节点的高可靠性,思极有容时序数据库引入了虚拟数据节点组的概念,并采用异步的方式进行数据同步。一个虚拟节点组由处于不同物理主机上的虚拟数据节点组成,虚拟数据节点个数就是数据冗余的个数(Replication Factor,一般大于2)。在一个虚拟节点组里,各个虚拟数据节点通过心跳包实时知道对方的状态。如果一个虚拟数据节点收到数据写入的请求,该请求会被立即转发给其他虚拟数据节点,然后在本地存储处理。当应用连接思极有容时序数据库系统时,对于要 *** 作的任何一张表,系统会给应用提供该表所属的虚拟数据节点组里各个虚拟节点的IP地址(如果replication factor为3,就会有3个IP地址),如果链接其中一个失败或者 *** 作失败,应用会尝试第二个、第三个,只有所有节点失败才会返回失败。这样保证虚拟数据节点组里任何一台机器宕机,都不会影响对外的服务。这些复杂的重新连接流程都被思极有容时序数据库 Driver包装隐藏起来,应用开发者无需写程序来实现。
为保证效率,思极有容时序数据库采取异步方式实现多个副本之间的实时数据同步,采取的是最终一致性,而不是强一致。当一台主机重启时,每个虚拟数据节点都会检查自己数据的版本是否与其他虚拟节点一致,如果版本不一致,需要同步后才能进入对外服务状态。在运行过程中,由于各种原因,数据仍然可以失去同步,这种不同步会在收到转发的写入请求时被发现,一旦被发现,版本低的虚拟数据节点将马上停止对外服务,进入同步流程,同步完后,才会重新恢复对外服务。同步过程中,高版本的节点还可以正常的对外提供服务。
管理节点负责存储Meta数据,同时根据每个数据节点状态来负责负载均衡,因此也要保证其高可靠性。多个虚拟管理节点组成一个虚拟管理节点组,因为Meta数据可以被多个应用同时更新,因此思极有容时序数据库采用的是Master-Slave模式实现虚拟管理节点的数据同步。写的 *** 作,只有Slave节点写入成功后,Master节点才会返回成功,从而保证数据的强一致性。如果Master节点宕机,系统有机制保证其中一个Slave会立即被选举为Master, 从而保证系统写 *** 作的高可靠性。
由于Meta数据量并不大,Meta数据虽然需持久化存储,但将其完全保存在内存,以保证查询 *** 作的高效。在应用侧,为避免每次数据 *** 作都访问管理节点,思极有容时序数据库 Driver将必要的Meta数据都会缓存在本地,只有当需要的Meta数据不存在或失效的情况下,才会访问管理节点,这样大大提高系统性能。
管理节点在集群中存在,但对于应用和系统管理员而言,是完全透明的。整个系统会自动在物理节点上创建虚拟管理节点以及虚拟管理节点组。
7 STable:多表聚合
各个数据采集点的时钟是很难同步的,为保证其时序,而且为保证单一采集点的数据在存储介质上的连续性,思极有容时序数据库要求每个数据采集点单独建表,这样能极大提高数据的插入速度以及查询速度,但是这将导致系统表的数量猛增,让应用对表的维护以及聚合、统计 *** 作难度加大。为降低应用的开发难度,思极有容时序数据库引入了STable超级表的概念。
STable是表的集合,包含多张表,而且这个集合里每张表的Schema是一样的。同一类型的采集设备可创建一个STable。与表一样,包含Schema,但还包含标签信息。Schema定义了表的每列数据的属性,如温度、压力等,而标签信息是静态的,属于Meta Data,如采集设备的型号、位置等。思极有容时序数据库扩展了标准SQL的table的定义,创建时,除指定Schema外,还可以带关键词tags来指定有哪些标签。如:
create table m1(ts timestamp, pressure int, rpm int) tags (model binary(8), color binary(8))
上述SQL创建了一个STable m1, 带有标签model和标签color。为某一个具体的采集点创建表时,可以指定其所属的STable以及标签的值,比如:
create table t1 using m1 tags (‘apple’, ‘red’)
上述SQL以STable m1为模板,创建了一张表t1,这张表的Schema就是m1的Schema,但标签model设为apple,标签color设为red。插入数据时,仍然按照正常的方式进行插入。但查询时,除传统的表的查询外,还可以基于标签对STable进行各种聚合查询或统计。如:
select avg(pressue) from m1 where model=’apple’ interval(5m) group by color
上面这个SQL语句表示将标签model值为apple的所有采集点的记录的每5分钟的平均值计算出来,并按照标签color进行分组。
对于STable的查询 *** 作,完全与正常的表一样。但一个定义的STable可以包含多张表(多个数据采集点),应用可通过指定标签的过滤条件,对一个STable下的全部或部分表进行聚合或统计 *** 作,这样大大简化应用的开发。其具体流程如下图所示:
1) 、应用将一个查询条件发往系统;
2) 、Driver将查询的过滤条件发往Meta Node(管理节点);
3) 、管理节点将符合查询过滤条件的表的列表发回Driver(包含每个表对应的数据节点的IP地址);
4) 、这些返回的表可能分布在多个数据节点,Driver将计算的请求发往相应的多个数据节点;
5) 、每个数据节点完成相应的聚合计算,将结果返回给Driver;
6) 、Driver将多个数据节点返回的结果做最后的聚合,将其返回给应用。
8 数据模型
思极有容时序数据库采用的仍然是传统的关系型数据库的模型。用户需要根据应用场景,创建一到多个库,然后在每个库里创建多张表,创建表时需要定义Schema。对于同一类型的采集点,为便于聚合统计 *** 作,可以先定义超级表STable,然后再定义表。
不同的采集点往往具有不同的数据特征,比如有的采集点数据采集频率高,有的数据保留时长较长,有的采集数据需要3份备份,而有的数据一份备份即可,有的采集点一条记录很大,而有的采集点的记录仅仅16个字节,很小。为让各种场景下思极有容时序数据库都能最大效率的工作,思极有容时序数据库建议将不同数据特征的表创建在不同的库里。创建一个库时,除SQL标准的选项外,应用还可以指定保留时长、数据备份的份数、cache大小、是否压缩等多种参数。
思极有容时序数据库对库的数量、STable的数量以及表的数量没有做任何限制,而且其多少不会对性能产生影响,应用按照自己的场景创建即可。
9 实时流式计算
在存储的原始数据上,思极有容时序数据库可以做各种计算,目前支持的主要 *** 作包括:
· Avg:以每个采样时间范围内的value的平均值作为结果
· Dev:以每个采样时间范围内的value的标准差作为结果
· Count:以每个采样时间范围内的点的数目作为结果
· First:以每个采样时间范围内的第一个value作为结果
· Last:以每个采样时间范围内的最后一个value作为结果
· LeastSquares:对每个采样时间范围内的value进行最小二乘法的拟合
· Max:以每个采样时间范围内的value的最大值作为结果
· Min:以每个采样时间范围内的value的最小值作为结果
· Percentile:每个采样时间范围内的value的第p百分位数作为结果。
· Sum:以每个采样时间范围内的value的总和作为结果
· Diff:以每两个相邻的value的差值作为结果
· Div:以每个value除以一个除数作为结果
· Scale:以每个value乘以一个倍数作为结果
· 基于多个采集点数据的四则运算表达式
思极有容时序数据库还可对一个或多个数据流进行实时聚合、统计等计算,并将计算出的衍生数据当做新的数据保存进思极有容时序数据库,以便后续的 *** 作。实时计算与聚合查询很类似,只是后台定时进行,并自动滑动计算窗口的起始点。工作方式与其他流式计算引擎的Sliding Window相似。
实时计算可以通过一个简单的创建表的 *** 作来实现。如:
create table d1 as select avg (pressure) from t1 interval (60s) sliding(10s)
上述SQL表示将表t1里字段pressure每10秒钟(每次滑动的时间间隔)将过去的60秒钟(聚合计算的时间间隔)的数据平均值计算出来并写入表d1。计算出的衍生数据可以与其他原始数据或计算出的衍生数据进行再次计算。
10 便捷的安装、部署、维护
思极有容时序数据库是在Linux上开发的,任何Linux系统都可以运行,而且不依赖任何第三方软件,也不是在某个开源项目上包装出来的产品。获得安装包并解压后,只需执行安装脚本就一切搞定,极其简单。
安装后,会在安装的机器上自动创建虚拟数据节点和管理节点,开发者就可以使用了,能满足一般性的需求。但如果数据量大,就需要将软件安装到多台主机。这时也只需要在每台机器配置好Master IP, 系统管理员打开思极有容时序数据库Shell, 将新添加的主机添加进系统即可。如果要撤销一个物理节点,登录思极有容时序数据库 Shell, 将其删除即可,极其简单。传统数据库所需要的数据分区、数据迁移等等都一概不存在。
因为数据是自动同步到多个节点的,系统管理员不用担心数据的丢失,也不用制定备份和数据恢复策略,一切全自动进行。
如果软件需要升级,只要在思极有容时序数据库Shell里将新版本上传即可。管理节点将挨个把每个节点的软件进行升级,而且整个系统的服务将不停止,服务不受任何影响。如果要更换设备,只需将其拔除,安装上软件后,将新设备重新插入即可。换言之,思极有容时序数据库完全支持在线升级以及硬件的热插拔,从而保证服务的724的不间断运行。
开发人员需要做的是定义表的结构,根据具体场景,配置好各种参数,让系统性能达到最优。系统管理员只需要关注与硬件相关的报警信息,对于经常出问题的服务器或硬盘,进行更换而已。使用思极有容时序数据库, 整个系统的运维工作变得极为简单,将大大降低运营成本。
11 更多亮点
订阅模式:与标准的数据库不同,思极有容时序数据库还提供一种订阅模式。应用程序可以订阅数据库某张表的内容,一旦该表有新的记录,应用将立即得到通知。同一个表可以被多个应用订阅。与流行的消息中间件Kafka一样,订阅采取的是pull而不是push模式。Kafka的publish *** 作由数据库插入 *** 作代替。由于思极有容时序数据库具有极高的插入速度, 通过采用订阅模式,思极有容时序数据库本身也可以作为一个消息队列中间件来使用。
异步插入:为避免网络延迟带来的性能下降,更好的提高数据插入速度,思极有容时序数据库还提供一组API让应用异步插入数据。当应用调用插入API时,将立即得到反馈,等记录成功插入后,思极有容时序数据库将调用应用提供的回调函数通知应用。采用异步插入,性能将大幅提高。
Nagle算法:时序数据应用场景里,每条记录一般都很小,很多不到20字节,因此整个系统处理的是大量的小数据包。为了更进一步提高性能,减少网络IO次数,思极有容时序数据库采用了类似TCP协议的Naggle算法,客户端将缓存插入请求,只有记录的大小超过一定的大小或者缓存时间超过100毫秒,被缓存的插入请求才会被发往系统。对于时间要求很高的应用,该功能可以关闭。
12 参数指标
· 支持数据类型:tinyint, smallint, int, bigint, float, double, binary
· 单记录最大长度:4096字节
· 最大记录条数:仅受存储空间限制
· 最大表的个数:仅受节点个数限制
· 最大数据备份数:5份
· 单节点插入速度:3万条/秒(单核,16字节每记录,每次一条,无同步备份)
· 单节点查询速度:2000万条/秒(单核,16字节每记录,全内存)
· 更多指标将陆续提供
13 应用场景
思极有容时序数据库作为一个基础性的软件,应用范围及其广泛,原则上,所有使用机器、设备、传感器采集数据的地方都可以用上。一些典型场景罗列如下:
· 公共安全:上网记录、通话记录、个体追踪、区间筛选
· 电力行业:智能电表、电网、发电设备的集中监测
· 通讯行业:话费详单、用户行为、基站/通讯设备监测
· 金融行业:交易记录、存取记录、ATM、POS机监测
· 出行工具:火车/汽车/出租/飞机/自行车的实时监测
· 交通行业:实时路况,路口流量监测,卡口数据
· 石油石化:油井、运输管线、运输车队的实时监测
· 互联网:服务器/应用监测、用户访问日志、广告点击日志
· 物流行业:车辆、集装箱的追踪监测
· 环境监测:天气、空气、水文、地质环境等监测
· 物联网:电梯、锅炉、机械、水表、气表等各种联网设备
· 军工行业:各种军事装备的数据采集、存储
· 制造业:生产过程管控,流程数据、供应链数据采集与分析
网页链接 技术白皮书网页链接请单击查看!
花开半夏面向物联网的21个开源软件项目有哪些,物联网开源平台搭建
admin 07-26 04:41 166次浏览
2019独角兽企业重金招聘Python工程师标准
51CTOcom直译物联网市场呈现碎片化、无定形化、不断变化的特征,其性质通常只需关注互 *** 作性。 难怪开源在这方面不俗。 ——客户犹豫不决,害怕将物联网的未来寄托在可能难以定制或互联的专有平台上。
本文介绍了主要的开源软件项目,重点讨论了面向家庭和工业自动化的开源技术。 我们忽略了专注于垂直领域的物联网项目,如Automotive Grade Linux和Dronecode。 我们还忽略了面向互联网的开源 *** 作系统发行版,包括Brillo、Contiki、Mbed、OpenWrt、Ostro、Riot和Ubuntusnappping。这次,我们将智能
这里介绍的21个项目包括由Linuxfoundation管理的两个大型项目: Allseen(Alljoyn )和ocf (iotivity ),以及物联网传感器的端点和网关我还介绍了几个专门针对物联网生态系统特定领域的小项目。 我们曾介绍过更多的项目,但越来越难分清物联网软件和普通软件的区别。 从嵌入式环境到云,越来越多的项目都带有物联网元素。
您声称这21个项目都是开源的,但请确保完整的名称不在本文的范围内。 它们至少在生态系统的一个部分运行Linux,大多数都完全支持Linux,从开发环境到云/服务器、网关和传感器端点部件。 大多数组件都有可以在Linux开发板(如Raspberry Pi和BeagleBone )上运行的组件,大多数都支持Arduino。
物联网领域仍然有很多专有技术,特别是在自上而下的企业平台上。 但是,其中也提供了部分开放访问权限。 例如,威瑞森的ThingSpace针对4G智慧城市APP应用,拥有一套免费的开发API,支持开发板,尽管核心平台本身是独一无二的。 相似的是,亚马逊的AWS物联网工具包包括部分开放的设备SDK和开源入门工具包。
其他主要的专有平台包括苹果的HomeKit和微软的Azure物联网工具包。 在拥有230个成员的Thread Group中,该组织监督基于6LoWPAN的对等Thread网络协议。 Thread Group由谷歌的母公司Alphbet旗下的Nest设立,没有提供像AllSeen和OCF那样全面的开源框架。 但是,它与Brillo相关,也与Weave物联网通信协议相关。 5月,Nest发布了名为OpenThread的开源版Thread。
介绍21个面向物联网的开源软件项目。
AllseenAlliance(Alljoyn ) )。
由Allseenalliance(asa )监管的AllJoyn互 *** 作系统框架可能是市场上采用最广泛的开源物联网平台。
Bug Labs dweet和freeboard
bugglas是从制造基于模块化Linux的有bugh的硬件设备开始的,但很久以前就演变成了与硬件无关的企业级物联网平台。 Bug Labs提供“dweet”消息、警告系统和“freeboard”物联网设计APP。 dweet使用HAPI Web API和JSON来帮助发布和描述数据。 freeboard是一种拖放式工具,用于设计物联网仪表板和可视元素。
DeviceHive
DataArt基于AllJoyn的设备管理平台可以运行在许多云服务上,包括Azure、AWS、Apache Mesos和OpenStack。 DeviceHive专注于使用ElasticSearch、Apache Spark、Cassandra和Kafka,分析大数据。 有些网关组件可以在运行Ubuntu Snappy Core的任何设备上运行。 模块化网关软件与DeviceHive云软件和物联网协议配合使用,作为Snappy Core服务进行部署。
DSA
分布式服务架构(DSA )便于集中式设备的互 *** 作性、逻辑和APP应用。 DSA项目正在构建分布式服务链接(DSLinks )库,以支持协议转换以及与第三方数据源的数据集成。 DSA提供了一个可扩展的网络拓扑,其中包括多个DSLinks,用于在连接到分层代理分层结构的物理互联网边缘设备上运行。
EclipseIOT(Kura ) )。
Eclipse基金会的物联网主要围绕基于Java/OSGi的Kura API容器和聚合平台,支持在服务网上运行的m2m APP应用。 Kura基于Eurotech的Everywhere Cloud物联网框架往往与Apache Camel集成,后者是基于Java的基于规则的路由和中介引擎。 Eclipse物联网子项目包括Paho消息传递协议框架、面向轻量级服务器的Mosquitto MQTT体系结构和Eclipse SmartHome框架。 有些项目实现名为Californium的基于Java的受限APP应用协议(CoAP )。
Kaa
CyberVision支持的Kaa项目为云互联的大型物联网提供了可扩展的端到端物联网框架。
该平台包括一种支持REST的服务器功能,可用于服务、分析和数据管理,通常部署成由Apache Zookeeper协调的节点集群。Kaa的端点SDK支持Java、C++和C开发,负责处理客户机/服务器通信、验证、加密、持久性和数据编排。SDK包括针对特定服务器、支持GUI的模式,这些模式可转换成物联网物件绑定。模式治理语义,并抽象一组迥异设备的功能。
Macchinaio
Macchinaio提供了一种“支持Web、模块化、可扩展的”JavaScript和C++运行时环境,可用于开发在Linux开发板上运行的物联网网关应用程序。Macchinaio支持一系列广泛的传感器和连接技术,包括Tinkerforge bricklet、XBee ZB传感器、GPS/GNSS接收器、串行和GPIO联网设备以及方向感应器。
GE Predix
GE面向工业物联网的平台即服务(PaaS)软件基于Cloud Foundry。它增添了资产管理、设备安全、实时预测分析,并支持不同数据的采集、存储和访问。GE Predix是GE为内部运营而开发的,它已成为最成功的企业物联网平台之一,收入大约60亿美元。GE最近与HPE达成了合作伙伴关系,HPE将把Predix整合到自己的服务中。
Home Assistant
这个作为后起之秀的草根项目提供了一种面向Python的家居自动化方法。
Mainspring
M2MLabs的基于Java的框架针对远程监控、车队管理和智能电网等应用领域中的M2M通信。与许多物联网框架一样,Mainspring高度依赖REST Web服务,并提供了设备配置和建模工具。
Node-RED
这种面向Nodejs开发人员的可视化布线工具拥有基于浏览器的数据流编辑器,可用于设计物联网节点当中的数据流。然后,节点可以迅速部署成运行时环境,并使用JSON来存储和共享。端点可以在Linux开发板上运行,支持的云包括Docker、IBM Bluemix、AWS和Azure。
Open Connectivity Foundation(IoTivity)
英特尔和三星支持的开放互联联盟(OIC)组织和UPnP论坛组成的这个组织正在努力成为物联网方面领先的开源标准组织。OCF的开源IoTivity项目依赖充分利用的JSON和CoAP。
openHAB
OpenIoT
这款基于Java的OpenIoT中间件旨在使用一种公用云计算交付模式,为开放、大规模的物联网应用提供便利。除了表示物联网物件的本体、语义模型和标注外,该平台还包括传感器和传感器网络中间件。
OpenRemote
OpenRemote为家庭和楼宇自动化而设计,它以广泛支持众多智能设备和网络规范而出名,比如1-Wire、EnOcean、 xPL、Insteon和X10等规范。规则、脚本和事件都得到支持,还有基于云的设计工具,可用于用户界面、安装、配置、远程更新及诊断。
OpenThread
这是Nest最近从基于6LoWPAN的物联网Thread无线网络标准分离出来的开源项目,它还得到了ARM、Microchip旗下的Atmel、Dialog、高通和德州仪器的支持。OpenThread实现了所有Thread网络层,还实现了Thread的端点设备、路由器、Leader和边界路由器等角色。
Physical Web/Eddystone
谷歌的Physical Web让蓝牙低能耗(BLE)信标可以将URL发送到智能手机。它针对谷歌的Eddystone BLE信标经过了优化,这提供了除苹果的iBeacon之外的一种开放技术。其想法是,行人可以与任何具有BLE功能的支持性设备(比如汽车停放计时器、标牌或零售产品)联系。
PlatformIO
基于Python的PlatformIO包括IDE、项目生成器和基于Web的库管理器,它是为访问来自基于微控制器的Arduino和基于ARM Mbed的端点的数据设计的。它为200多种板卡提供了预先配置的设置,并与Eclipse、Qt Creator及其他IDE整合起来。
The Thing System
这种基于Nodejs的智能家居“监管”软件声称支持真正的自动化,而不是简单的通知。其自学习人工智能软件可处理许多协同式M2M *** 作,不需要由人干预。缺少云组件恰恰提供了更好的安全性、隐私性和控制性。
ThingSpeak
成立五年的ThingSpeak项目专注于传感器日志、位置跟踪、触发器及提醒以及分析。ThingSpeak用户可以使用用于物联网分析和可视化的MATLAB版本,不需要向Mathworks购买许可证。
Zetta
Zetta是一种面向服务器的物联网平台,利用Nodejs、REST和WebSockets构建而成,奉行基于数据流的“响应式编程”开发理念,用Siren超媒体API连接起来。设备被抽取成REST API,用云服务连接起来,这些服务包括可视化工具,并支持Splunk之类的机器分析工具。该平台可将Linux和Arduino开发板之类的端点与Heroku之类的云平台连接起来,以便构建地理分布式网络。
转载于:>计算机分类有以下几种:
1、计算机如果指的是专业层次,则包含有计算机科学与技术、软件工程、信息管理与信息系统、网络工程、计算机应用技术、计算机网络技术、物联网工程等专业。
2、计算机如果是指用途层面,按照用途分为通用计算机和专用计算机。
3、计算机如果是指电脑层面,按照综合性能指标,将计算机分为如下5大类:高性能计算机、微型计算机、工作站、服务器、嵌入式计算机。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)