物联网系统大量设备的数据存储及推送的系统实现方法与流程

文档序号:16200451发布日期:2018-12-08 06:33阅读:511来源:国知局
本发明涉及数据存储及推送
技术领域
。更具体地说,本发明涉及物联网系统大量设备的数据存储及推送的系统实现方法。
背景技术
物联网系统中,有大量各类设备,从各类设备汇聚的大量数据,需要存储到数据库中,还要分类推送给各个用户。传统的实现方法是,从设备汇聚的每条数据,与这条数据要推送的url地址绑定,然后插入到数据库中。在同一条数据要推送给几个不同的url地址时,需要往推送数据表push-data中插入几条消息内容相同的记录,即数据库的总记录条数等于消息数量乘以url地址数量,同时,在用另一个进程将存储在push-data表中的数据推送给各个url地址时,需要更新此表中该条数据是否成功发送的字段。即对push-data表存在大量的并发插入及修改操作,随着设备数据的增多,数据库就会越发成为系统性能的瓶颈。技术实现要素:本发明的一个目的是提供物联网系统大量设备的数据存储及推送的系统实现方法,对从各类设备(包括但不限于),例如网关设备、终端节点等任意设备采集的大量数据,存储到数据库,并推送给各个用户。为了实现根据本发明的这些目的和其它优点,提供了物联网系统大量设备的数据存储及推送的系统实现方法,包括如下步骤:步骤一:构建数据库表结构,包括device-topic表、push-data表、okhttp-push表、公司url地址表;步骤二:依据设备数据将要发送到的不同接收方,分别将各个设备划分其所属的组topic,将设备及其所属的组的对应关系插入到device-topic关系表;步骤三:从设备采集的数据,根据此条数据来源的设备dev-eui,通过device-topic表,确定此条数据的topic参数,然后对应插入到push-data表中;步骤四:建立topic与url的映射关系,并将其插入到okhttp-push表中,用来确定同一topic下面的数据发送到的url地址;步骤五:对于okhttp-push表中的每一条记录,分别各起一个线程:用okhttp-push表中topic和mid的值去查询出push-data表中,该topic下面还没有被对应url地址的用户成功接收的设备数据,并将这些设备数据按照主键id的大小,用okhttp顺序发送;步骤六:通过okhttp的响应数据,判断用户是否成功收到推送消息,若收到,则更新okhttp-push表中此topic和url对应的游标mid;若未收到,则不更新okhttp-push表,线程重复读取未发送的设备数据进行重发。优选的是,所述device-topic表包括参数:设备表非业务主键id、设备唯一编号地址dev-eui、设备所属的组topic。优选的是,所述push-data推送数据表包括参数:设备表非业务主键id、设备信息的创建时间create-time、设备唯一编号地址app-eui、设备所属的组topic、设备的网关gateways。优选的是,所述okhttp-push推送配置表包括参数:设备表非业务主键id、设备所属的组topic、消息推送的url的id即url-id、消息被成功收到的位置游标mid。优选的是,所述公司url地址表包括参数:company表非业务主键id、公司名称name、公司的url地址url。优选的是,所述步骤四具体为:用http同步方式推送设备数据给各个用户,通过sql语句配置topic和公司url地址表中对应推送地址url的对应关系。本发明至少包括以下有益效果:1.实现推送数据push-data表与数据推送url地址配置表okhttp-push-config的分离,从而能减少push-data表中的数据量;2.实现对同一张数据库表的设备数据的插入操作和数据发送状态的更新操作,分解为分别对两张数据库表的插入和更新操作,从而减少对push-data表的并发写操作,提升系统性能;3.设备所属的分组topic及topic下的数据发送的地址url灵活可配置;4.支持从设备采集数据的本地持久化,便于做数据的分析统计,可基于目前主流关系数据库。本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。具体实施方式下面对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。本发明提供一种物联网系统大量设备的数据存储及推送的系统实现方法,包括如下步骤:步骤一:构建数据库表结构,包括device-topic表、push-data表、okhttp-push表、公司url地址表;步骤二:依据设备数据将要发送到的不同接收方,分别将各个设备划分其所属的组topic,将设备及其所属的组的对应关系插入到device-topic关系表;步骤三:从设备采集的数据,根据此条数据来源的设备dev-eui,通过device-topic表,确定此条数据的topic参数,然后对应插入到push-data表中;步骤四:建立topic与url的映射关系,并将其插入到okhttp-push表中,用来确定同一topic下面的数据发送到的url地址;具体为:用http同步方式推送设备数据给各个用户,通过sql语句配置topic和公司url地址表中对应推送地址url的对应关系,sql语句为:“insertintookhttp-push(topic,url-id)values(‘topic的值’,‘url的id’)”;步骤五:对于okhttp-push表中的每一条记录,分别各起一个线程:用okhttp-push表中topic和mid的值去查询出push-data表中,该topic下面还没有被对应url地址的用户成功接收的设备数据,并将这些设备数据按照主键id的大小,用okhttp顺序发送;步骤六:通过okhttp的响应数据,判断用户是否成功收到推送消息,若收到,则更新okhttp-push表中此topic和url对应的游标mid;若未收到,则不更新okhttp-push表,线程重复读取未发送的设备数据进行重发。在另一种技术方案中,所述device-topic表包括参数:设备表非业务主键id、设备唯一编号地址dev-eui、设备所属的组topic。device-topic关系表,存放的是设备的分组信息,涉及到的字段如下表结构说明:在另一种技术方案中,所述push-data推送数据表包括参数:设备表非业务主键id、设备信息的创建时间create-time、设备唯一编号地址app-eui、设备所属的组topic、设备的网关gateways。push-data推送数据表,存储从设备采集来的数据及将数据推送给用户的核心表,每一个设备的上报的信息全部存储在此张表中,此表结构如下:字段名称字段类型字段说明备注idbigint设备表非业务主键自动增加create-timedatetime设备信息的创建时间application-idbigint(20)app-euivarchar(255)设备唯一编号地址datavarchar(8000)data-typeint(11)macvarchar(255)reservervarchar(255)v-idvarchar(255)topicint设备所属的组gatewaysvarchar(8000)设备的网关create-timesvarchar(50)在另一种技术方案中,所述公司url地址表包括参数:company表非业务主键id、公司名称name、公司的url地址url。公司url地址表,mgr-company公司url地址表,存储各个公司的各个数据推送的url地址在另一种技术方案中,所述okhttp-push推送配置表包括参数:设备表非业务主键id、设备所属的组topic、消息推送的url的id即url-id、消息被成功收到的位置游标mid。okhttp-push推送配置表idbigint非业务主键自动增加topicint设备所属的组url-idbigint消息推送的url的idmidbigint消息被成功收到的位置游标尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的实施方案。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1