CN109800270A - 一种数据存储和查询的方法及物联网系统 - Google Patents
一种数据存储和查询的方法及物联网系统 Download PDFInfo
- Publication number
- CN109800270A CN109800270A CN201910059046.3A CN201910059046A CN109800270A CN 109800270 A CN109800270 A CN 109800270A CN 201910059046 A CN201910059046 A CN 201910059046A CN 109800270 A CN109800270 A CN 109800270A
- Authority
- CN
- China
- Prior art keywords
- data
- tables
- remainder
- processing unit
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例示出一种数据存储和查询的方法及物联网系统;在本申请实施例示出的技术方案中,将物联网中的数据存入不同的数据表中,缩小了在查询或控制操作过程中系统的遍历范围,提高数据库的读写速度,同时本申请实施例示出的技术方案根据设备ID与数据表之间的关系将设备信息和监测数据写入数据表;由于设备ID具有唯一性,因此每个设备通过某种规则都可以映射到不同的表内。即使后续不断地接入新的设备也能保证设备随机平均的分布于各个数据表中。并且,本申请实施例示出的技术方案无需预先在信息传感设备中录入设备的号,提高开发效率。
Description
技术领域
本发明涉及物联网技术领域,特别涉及一种数据存储和查询的方法及物联网系统。
背景技术
随着物联网技术的发展,基于物联网的应用服务系统也越来越多。典型的基于物联网的应用服务系统如图1所示,这个系统包括物联网云平台服务器1,信息传感设备2,以及,智能终端3。信息传感设备2与智能终端3按约定的协议通过物联网云平台服务器1连接起来,进行信息交换和通讯。
在实际生活中,电表查询服务系统就是如图1或图2所示的系统。在这个具体的应用系统中,信息传感设备2即电表,每个电表对应唯一的设备ID。智能终端3中安装有相应的APP,智能终端3的物联网云平台服务器通过APP向物联网云平台服务器1进行信息注册。
在物联网云平台服务器1预设n个数据库表,物联网云平台服务器1为智能终端3赋予唯一的用户ID并将它们分成n组的同时物联网云平台服务器1也将电表的设备ID分成n组,当某一用户通过智能终端进行查询,或,控制操作时,智能终端根据分组号通过物联网云平台服务器确认需要查找的数据库表来查询或处理数据。
云平台服务器在查询和修改操作时,均需要遍历数据表,从数据表的第一条数据开始逐条查询,直至查询到目标数据。但随着物联网中接入的信息传感设备,以及,智能终端的数量的增多,数据表中记录的数据达到百万级、千万级时,数据查询读取操作就特别慢,超出了物联网业务接受的能力范围。
因此,现有技术示出的数据分表存储的物联网系统存在以下的弊端:1、物联网系统中的不断有新的信息传感设备接入,信息传感设备的数量动态变化,固定分表会造成各个表的分配不均;2、预先录入分组号相当于将设备的身份固化,不便于使用这些设备动态组建系统,会影响系统工作效率。
发明内容
基于上述技术问题,本发明的发明目的在于提供一种数据存储和查询的方法及物联网系统。
本申请实施例第一方面示出一种数据存储和查询的方法,所述方法包括:
接收信息传感设备上传的设备信息和监测数据,其中,所述设备信息包括设备ID;
将所述设备ID对n取模,根据所述取模后的余数,将所述设备信息和所述监测数据写入所述余数对应的数据表。
本申请实施例第二方面示出一种物联网系统,包括:用于上传设备自身的设备信息和监测数据的信息传感设备,与所述信息传感设备相连接的物联网云平台服务器,以及,与所述物联网云平台服务器相连接的智能终端;所述物联网云平台服务器包括中央处理器,与所述中央处理器相连接的表数据处理单元,以及,与所述表数据处理单元相连接的数据表;
所述表数据处理单元包括:
第一表处理子单元,用于构建数据表集合,所述数据表集合包括n个数据表;
第一数据处理单元,用于接收通过中央处理器传输的信息传感设备上传的设备信息和监测数据,其中,所述设备信息包括设备ID;
用于将所述设备ID对n取模,根据所述取模后的余数,将所述设备信息和所述监测数据写入所述余数对应的数据表。
本申请实施例第三方面示出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例示出的方法。
本申请实施例第四方面示出一种计算机可读存储介质,其上存储有计算机程序所述计算机程序被数据处理器执行时实现本申请实施例示出的方法。
由以上技术方案可知,在上述技术方案中,将物联网中的数据存入不同的数据表中,缩小了在查询或控制操作过程中系统的遍历范围,提高数据库的读写速度,同时本申请实施例示出的技术方案根据设备ID与数据表之间的关系将设备信息和监测数据写入数据表;由于设备ID具有唯一性,因此每个设备通过某种规则都可以映射到不同的表内。即使后续不断地接入新的设备也能保证设备随机平均的分布于各个数据表中。并且,本申请实施例示出的技术方案无需预先在信息传感设备中录入设备的号,提高开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术示出的物联网系统;
图2为现有技术示出的一种数据分表存储的物联网系统;
图3为根据一优选实施例示出的一种物联网系统的结构框图;
图4为根据一优选实施例示出的物联网云平台服务器的结构框图;
图5为根据又一优选实施例示出的一种物联网系统的结构框图;
图6为根据又一优选实施例示出的一种物联网系统的结构框图;
图7为根据再一优选实施例示出的一种物联网系统的结构框图;
图8为根据一优选实施例示出的一种数据存储和查询的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3是基于自动分表的数据处理方法的物联网系统,该物联网系统包括物联网云平台服务器、信息传感设备、智能终端。
其中,信息传感设备通过自身配置的通信模块与物联网云平台服务器建立无线或者有线网络连接,进而实现信息传感设备与物联网云平台服务器之间的通信。
信息传感设备自身配置的通信模块包括但不限于ZigBee通信模块、Bluetooth模块、WiFi通信模块中的任意一种或几种,相应地,信息传感设备物联网云平台服务器之间所建立的网络连接方式包括ZigBee、Bluetooth或者WiFi中的任意一种或几种。
信息传感设备可以是智能空调、智能灯泡、智能门窗、智能音响等设备;也可以是电表、水表、煤气表等一些记录仪器。在实际应用的过程中,接入物联网系统的信息传感设备的数量会达到百万千万级别,具体的数量根据实际情况而定在此不加以限定。
其中,智能终端中安装有相应的APP,通过APP智能终端向物联网云平台服务器进行信息注册物联网云平台服务器为智能终端赋予唯一的用户ID,当用户安装信息传感设备时,将用户ID与信息传感设备的设备ID之间建立联系,当某一用户通过智能终端进行查询,或,控制操作时,智能终端根据用户ID与设备ID之间的联系,将用户ID对应的目标设备的设备ID上传至物联网云平台服务器。
智能终端与物联网云平台服务器之间预先建立有线或者无线网络连接,以实现智能终端与物联网云平台服务器之间的交互。智能终端可以是智能手机、平板电脑、笔记本电脑、计算机或者其他任何可供客户端运行的电子设备,在此不加以限定。
图4是根据一示例性实施例示出的物联网云平台服务器的硬件结构框图。需要说明的是,物联网云平台服务器只是一个适配于本发明的示例,不能认为是提供了对本发明的使用范围的任何限制。物联网云平台服务器也不能解释为需要依赖于或者必须具有图4中示出的示例性的物联网云平台服务器的一个或者多个组件。
物联网云平台服务器的硬件结构可因配置或者性能的不同而产生较大的差异,如图4所示,物联网云平台服务器包括:电源、接口、至少一存储器、以及至少一中央数据处理器(CPU,Central Processing Units)。其中,电源用于为网关设备上的各硬件设备提供工作电压。
接口包括至少一有线或无线网络接口、至少一串并转换接口、至少一输入输出接口以及至少一USB接口等,用于与外部设备通信。
存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、应用程序或者数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统用于管理与控制物联网云平台服务器上的各硬件设备以及应用程序,以实现中央数据处理器对海量数据的计算与处理,其可以是Windows ServerTM、Mac OSXTM、UnixTM、LinuxTM、FreeBSDTM、FreeRTOS等。应用程序是基于操作系统之上完成至少一项特定工作的计算机程序,其包括至少一模块(图4中未示出),每个模块都可以分别包含有对物联网云平台服务器的一系列计算机可读指令。数据可以是存储于磁盘中的照片、图片等。
中央数据处理器包括一个或多个数据处理器,并设置为通过总线与存储器通信,用于运算与处理存储器中的海量数据。
如上面所详细描述的,适用本发明的物联网云平台服务器通过中央数据处理器读取存储器中存储的一系列计算机可读指令的形式来完成物联网中的自动分表的数据处理方法。
现有技术示出的物联网系统,在处理百万级、千万级数据的时候,通常采用固定式分表的方式,固定分表的方式存在以下的弊端:1、物联网系统中的不断有新的信息传感设备接入,信息传感设备的数量动态变化,固定分表会造成各个表的分配不均;2、预先录入分组号相当于将设备的身份固化,不便于使用这些设备动态组建系统,会影响系统工作效率。
为了解决上述技术问题,本申请实施例示出一种物联网系统,具体的,请参阅图3,所述系统包括:
用于上传设备自身的设备信息和监测数据的信息传感设备,与所述信息传感设备相连接的物联网云平台服务器,以及,与所述物联网云平台服务器相连接的智能终端,所述物联网云平台服务器包括中央处理器与所述中央处理器相连接的表数据处理单元,以及,与所述表数据处理单元相连接的数据表;
其中,信息传感设备可以是智能空调、智能灯泡、智能门窗、智能音响等设备,也可以是电表,水表,煤气表等一些记录仪器;智能终端可以是智能手机、平板电脑、笔记本电脑、计算机或者其他任何可供客户端运行的电子设备,在此不加以限定。
所述表数据处理单元包括:
第一表处理子单元,用于构建数据表集合,所述数据表集合中包括n个数据表;
第一表处理子单元预先构建n个数据表,所述数据表用于记录信息传感设备的设备信息以及监测数据。
第一数据处理单元,用于接收通过中央处理器传输的信息传感设备上传的设备信息和监测数据,其中,所述设备信息包括设备ID;
用于将所述设备ID对n取模,根据取模后的余数,将所述设备信息和所述监测数据写入所述余数对应的数据表;
具体的,当信息传感设备上线的时候,信息传感设备上传自身的设备信息和监测数据至中央处理器;其中,设备信息包括设备ID、端口号、设备IP地址、设备名称、标识符、状态、操作特点和软件版本等一系列信息;监测数据为信息传感设备监测到的数据。例如,对于电表而言,监测数据可以为电表监测某一用户的用量,电表每隔预置时间向中央处理器上传一次实时的监测数据。再例如,对于冰箱,热水器等一系列智能家电而言,监测数据可以为智能家电的实时耗电量,智能家电每隔预置时间向中央处理器上传一次实时的耗电量。数据表记录着信息传感设备的设备信息以及监测数据,其中,监测数据可以包括信息传感设备的所有的历史监测数据,也可以包括信息传感设备的最新的监测数据。
本申请实施例示出的技术方案用设备ID来分组,对于任意一个信息传感设备而言,设备ID都是唯一的,所以每个信息传感设备可以通过设备ID与数据表之间的对应关系,保证同一个信息传感设备的数据始终记录在同一数据表中。
本申请实施例示出的技术方案根据设备ID与数据表之间的对应关系每个信息传感设备的设备信息和监测数据写入对应的表中。
具体的,计算所述设备ID模n运算后的余数,根据所述余数和所述数据表的序列顺序,确定余数对应的数据表信息,其中,n为数据表的个数。
举例说明,现在有6个信息传感设备,设备ID分别是:86100c0090020020000002064f5231d1,86100c0090020020000002064f5231d2,86100c0090020020000002064f5231d3,86100c0090020020000002064f5231d4,86100c0090020020000002064f5231d5,86100c0090020020000002064f5231d6;
数据表集合中包含3个数据表分别为:数据表1,数据表2,数据表3;相应的将6个信息传感设备的设备信息和监测数据存储与3个数据表中;依次计算每个设备ID模3后的余数计算结果如表1所示:
表1
可见,上述6个信息传感设备的设备ID模3后的余数依次为:0,2,1,2,1,0。相应的,信息传感设备1对应数据表1,信息传感设备2对应数据表3,信息传感设备3对应数据表2,信息传感设备4对应数据表3,信息传感设备5对应数据表2,信息传感设备6对应数据表1。
第一读写单元,用于将所述设备信息和所述监测数据写入对应的数据表。
信息传感设备1的设备信息和监测数据写入数据表1,信息传感设备2的设备信息和监测数据写入数据表3,信息传感设备3的设备信息和监测数据写入数据表2,信息传感设备4的设备信息和监测数据写入数据表3,信息传感设备5的设备信息和监测数据写入数据表2,信息传感设备6的设备信息和监测数据写入数据表1。
可见,本申请实施例示出的技术方案将物联网中的数据存入不同的数据表中,缩小了在查询或控制操作过程中系统的遍历范围,提高了数据库的读写速度,同时,本申请实施例示出的技术方案根据设备ID与数据表之间的对应关系将设备信息和监测数据写入相应的数据表,由于设备ID具有随机性,相应的设备ID取模n后的余数,每个余数出现的次数趋于相等,因此可将数以百万计的数据平均分配至n个数据表中,即使后续不断地接入新的设备也能保证设备随机平均的分布于各个数据表中,进一步,本申请实施例示出的技术方案无需预先在信息传感设备中录入设备的号,提高了开发效率。
实施例2:
请参阅图5,实施例1示出的系统还包括:
信息处理单元,用于接收中央处理器传输的智能终端上传的指令,以及判断所述指令种类,所述指令包括目标设备ID;
在物联网系统中用户通过智能终端查询信息传感设备的监测数据或控制信息传感设备;本申请实施例示出的技术方案通过增加信息处理单元判断指令的类型,根据指令的类型将指令传输至相应的读写单元,进行相应的控制或查询操作。
例如,用户通过智能终端查询电表监测的该用户的用电量;再例如,用户通过智能终端控制智能空调的开启与关闭。在实际应用过程中凡是通过智能终端控制信息传感设备或查询信息传感设备监测数据的方式,均在本申请实施例示出的技术方案的保护范围内,在此由于篇幅有限,便不一一列举。
在实施例1示出的系统的基础上,本申请实施例示出的技术方案的基础上增加一个信息处理单元,所述信息处理单元用于接收中央处理器传输的智能终端上传的指令,以及判断所述指令种类。如果所述指令为控制指令,发送控制指令至查询指令处理单元;如果所述指令为查询指令,发送查询指令至控制指令处理单元。
其中,控制指令处理单元,一方面用于将目标设备ID对n取模,根据所述取模后的余数,根据所述余数确定目标数据表;另一方面,所述控制指令处理单元还用于遍历所述目标数据表,确定目标设备ID对应的目标设备端口和IP地址。举例说明,智能终端发送一控制空调开启的控制指令至中央处理器,其中控制指令中包含目标设备ID:86100c0090020020000002064f5231d1,将该指令发送至控制指令处理单元;控制指令处理单元计算86100c0090020020000002064f5231d1模3后的余数为0,确定编号为0的第一数据表为该控制指令的目标数据表。
控制指令处理单元,通过遍历第一数据表,确定第一数据表中记录的与86100c0090020020000002064f5231d1对应的目标IP地址和端口号;
第二读写单元,用于调取目标设备端口和IP地址,并通过中央处理器发送到目标设备;目标设备即用户家的空调,根据控制指令完成开启的操作。
可选择的,所述控制指令处理单元,还用于计算目标设备ID的对应哈希值并对其进行取n模运算,即计算所述哈希值取n模后的余数,得到第三余数,根据第三余数确定目标数据表。
值得注意的是,在信息传感设备控制的过程中,常常因为网络的延迟,导致控制指令无法及时的达到中央处理器;对于一些控制操作如果在预置时间之后执行控制命令显然会给用户的生活待来一些困扰。举例说明,用户7:00通过智能终端控制卧室的灯的开启,但是,由于网络的延迟,中央处理器9:00接收到控制指令,此时在控制卧室灯的开启显然是无意义的。为了解决上述问题,本申请实例示出的技术方案控制指令处理单元在接收控制指令的过程中提取控制指令的时间戳;计算所述时间戳与当前时间的时间差;判断所述时间差是否大于或等于预置时间;如果时间差大于或等于预置时间,则删除所述指令,即不将接收到的控制指令发送至相应的目标设备;如果时间差小于预置时间,基于所述目标设备ID遍历数据表,确定目标设备ID对应的目标设备端口和IP地址。
查询指令处理单元,用于将目标设备ID对n取模,根据所述取模后的余数,根据所述余数确定目标数据表;
用于遍历所述目标数据表,确定目标设备ID对应的目标数据;
智能终端发送一查询用户电表的查询指令至中央处理器,中央处理器确定该指令为查询指令,其中查询指令中包含目标设备ID为86100c0090020020000002064f5231d2,信息处理单元判断所述指令为查询指令,将该指令发送至查询指令处理单元;查询指令处理单元计算86100c0090020020000002064f5231d2模3后的余数为1,确定第二数据表为该控制指令的目标数据表,通过遍历第二数据表,确定目标设备ID对应的目标数据;
所述查询指令处理单元,还用于计算目标设备ID的对应哈希值并对其进行取n模运算,即计算所述哈希值取n模后的余数,得到第三余数,根据第三余数确定目标数据表。
第三读写单元,用于调取目标数据,并通过中央处理器发送到智能终端。
可选择的,第三读写单元调取目标数据可以根据所述查询指令调取相应的目标数据,如查询指令调取的为电表当前的用电量,则目标数据为时间戳最近的监测数据;如果查询指令调取的为用户的用电记录,则目标数据即为电表的历史监测数据。在实践应用中,用户还可以通知智能终端选定想要查询时间段的用电记录,相应的,目标数据即为该时间段内电表记录的监测数据。
实施例3:
近年来,智能家居技术迅速发展,智能空调、智能门窗、智能音响等各种智能家居设备也日趋多样化,数以百万级的信息传感设备接入物联网系统,同时,随着新用户的不断加入,以及,信息传感设备上传监测数据的累计,固定的数据表根本不能满足数据的累积写入,为了解决上述问题,本申请实施例示出的系统中加入第四读写单元。
请参阅图6或图7,实施例1或实施例2示出的系统还包括第四读写单元,其中:
所述第一表处理子单元,还用于在数据表中的记录大于存储阈值时构建第二数据表集合,构建第二数据表集合,所述第二数据表集合包括N个数据表,其中,N大于第一数据表集合中数据表的个数n。
判断数据表中的记录大于存储阈值时的方法,可以为,实时的统计第一数据表集合中每个数据表记录的数据条数,将每个数据表记录数的数据条数加和作为总数据条数,如果所述总数据条数大于或等于存储阈值,则重新构建第二数据表集合,第二数据表集合中数据表的个数大于第一数据表集合中数据表的个数。
也可以为,统计每个数据表中记录的数据条数;判断是否存在任一个数据表中记录的数据条数大于或等于分表阈值;如果存在,则构建第二数据表集合,所述第二数据表集合包括N个数据表,所述第二数据表集合中数据表的个数大于第一数据表集合中数据表的个数。
也可以为,随机的抽取第一数据表集合中任意一个数据表,判断抽取的数据表中记录的数据是否大于或等于大于或等于分表阈值;如果抽取的数据表中记录的数据大于或等于大于或等于分表阈值,则构建第二数据表集合,所述第二数据表集合包括N个数据表,所述第二数据表集合中数据表的个数大于第一数据表集合中数据表的个数。
第四读写单元,用于将第一数据表集合中的数据写入第二数据表集合。
提取所述第一数据表集合中记录的数据,所述记录的数据包括,接收信息传感设备上传的设备信息,以及,监测数据,所述设备信息包括设备ID。计算所述设备ID对应的哈希值取N模后的余数,根据所述余数,和第二数据集合中数据表序列顺序,确定余数对应的数据表,将所述设备信息,以及,监测数据写入对应的数据表。
可见本申请实施例示出的技术方案通过实时的监测数据集合中总数据条数,或每个数据表中记录的数据数,若数据条数大于或等于存储阈值,或每个数据表中记录的数据数大于或等于分表阈值时自动完成数据表的扩充,因此有效的避免了因数据的不断写入而造成数据表记录数据过多,影响查询效率的问题。
实施例4:
近年来,智能家居技术迅速发展,智能空调、智能门窗、智能音响等各种智能家居设备也日趋多样化,数以百万级的信息传感设备接入物联网系统,同时,新用户的不断加入,以及,信息传感设备上传监测数据的累计,物联网系统的数据表中记录的数据达到百万级、千万级的时候,数据查询读取操作就特别慢,超出了物联网业务接受的能力范围。
为了解决上述问题,本申请实施例示出了一种自动分表的数据处理方法,请参阅图8,所述方法包括:
S101接收信息传感设备上传的设备信息和监测数据,其中,所述设备信息包括设备ID;
当信息传感设备上线的时候,信息传感设备上传自身的设备信息和监测数据至中央处理器;其中,设备信息包括设备ID、端口号、设备IP地址、设备的名称、标识符、状态、操作特点和软件版本等一系列信息;监测数据为信息传感设备监测到的数据,例如对于电表而言,监测数据可以为电表监测某一用户的用量。电表每隔预置时间向中央处理器上传一次实时的监测数据。再例如,对于冰箱,热水器等一系列智能家电而言,监测数据可以为智能家电的实时耗电量,智能家电每隔预置时间向中央处理器上传一次实时的耗电量。
S102将所述设备ID对n取模,根据所述取模后的余数,将所述设备信息和所述监测数据写入所述余数对应的数据表。
在接收信息传感设备上传的设备信息和监测数据之前,还包括:
构建第一数据表集合,所述第一数据表集合包括n个数据表。
预先构建n个数据表,所述数据表用于记录信息传感设备的设备信息以及监测数据。
可选择的,所述方法还包括:
接收智能终端发送的指令,所述指令包括目标设备ID;
具体的,在物联网系统中用户通过智能终端查询信息传感设备的监测数据,或控制信息传感设备;信息处理单元,接收中央处理器传输的智能终端上传的指令,以及判断所述指令种类,所述指令包括目标设备ID;
如果所述指令为控制指令,将目标设备ID对应的数据表中存储的目标设备端口和IP地址通过中央处理器发送到目标设备;
具体的,如果所述指令为控制指令,计算所述目标设备ID模n运算后的余数a;根据上述余数a与数据表的序列顺序的对应关系,确定上述余数a对应的目标数据表;根据目标设备ID遍历目标数据表,确定与目标设备ID对应的目标设备端口,以及,目标IP地址;根据所述目标设备端口,以及,目标IP地址,发送所述控制指令至目标设备。
如果所述指令为查询指令,将目标设备ID对应的数据表中存储的目标数据通过中央处理器发送到智能终端。
如果所述指令为查询指令,计算所述目标设备ID目标设备ID模n运算后的余数b;根据上述余数b与数据表的序列顺序的对应关系,确定上述余数b对应的目标数据表;根据目标设备ID目标设备ID遍历目标数据表,确定目标设备ID对应的监测数据即为目标数据,将目标数据通过中央处理器发送到智能终端。
本申请实施例示出的技术方案,将物联网中的数据存入不同的数据表中,缩小了在查询或控制操作过程中系统的遍历范围,提高了数据库的读写速度,同时,本申请实施例示出的技术方案根据设备ID与数据表之间的关系将设备信息和监测数据写入数据表;由于设备ID具有随机性,相应的设备ID模n后的余数,每个余数出现的次数趋于相等,因此可将数以百万计的数据平均分配至n个数据表中,即使后续不断地接入新的设备也能保证设备随机平均的分布于各个数据表中。进一步,本申请实施例示出的技术方案无需预先在信息传感设备中录入设备的号,提高开发效率。
实施例5:
为了进一步缩短数据查询的时间,本申请实施例5示出一种哈希值查询方式,具体的,在实施例4示出的技术方案中,所述将设备信息和监测数据写入对应的数据表的步骤具体为:
计算所述设备ID的哈希值,生成第一哈希值,计算所述第一哈希值模n运算后的第一余数,根据所述第一余数,将所述设备信息和所述监测数据写入所述第一余数对应的数据表。
哈希值的计算方法可以为:MD4,MD5,SHA-1及其他中的一个或多个组合。
其中,MD4它适用在32位字长的处理器上用高速软件实现——它是基于32位操作数的位操作来实现的。MD5它对输入仍以512位分组,其输出是4个32位字的级联,与MD4相同。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。SHA1它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。
本申请实施例示出的技术方案通过计算设备ID的哈希值生成第一哈希值,以第一哈希值作为某一设备相关数据的key,所述相关数据包括设备信息,以及,监测数据。将第一哈希值以及第一哈希值对应的相关数据存储在数据表中。当用户通过智能终端通过发送查询指令或控制指令,进行查询或控制操作。仅需通过找到与查询指令或控制指令相关联的第一哈希值,便可以确定待查询数据或待控制设备。缩短了数据匹配的时间,提高了查询的效率。
举例说明,比如现在有6个信息传感设备,设备ID分别是:86100c0090020020000002064f5231d1,86100c0090020020000002064f5231d2,86100c0090020020000002064f5231d3,86100c0090020020000002064f5231d4,86100c0090020020000002064f5231d5,86100c0090020020000002064f5231d6。
分别计算上述设备ID的第一哈希值:b471983ffef1042,b471983ffef2097,b476543ffef1042,b432143ffef1042,b473721ffef1042,b472564ffef1042。
数据表集合中包含3个数据表分别为:数据表1,数据表2,数据表3;相应的将6个信息传感设备的设备信息和监测数据存储与3个数据表中;依次计算每个设备ID模3后的余数计算结果如表2所示:
表2
设备 | 设备ID | 第一哈希值 | 模3后的余数 |
信息传感设备1 | 86100c0090020020000002064f5231d1 | b471983ffef1042 | 0 |
信息传感设备2 | 86100c0090020020000002064f5231d2 | b471983ffef2097 | 2 |
信息传感设备3 | 86100c0090020020000002064f5231d3 | b476543ffef1042 | 2 |
信息传感设备3 | 86100c0090020020000002064f5231d4 | b432143ffef1042 | 1 |
信息传感设备5 | 86100c0090020020000002064f5231d5 | b473721ffef1042 | 0 |
信息传感设备6 | 86100c0090020020000002064f5231d6 | b472564ffef1042 | 1 |
可见,上述6个信息传感设备的设备ID模3后的余数,依次为:0,2,2,1,0,1。相应的,信息传感设备1对应数据表1,信息传感设备2对应数据表3,信息传感设备3对应数据表3,信息传感设备4对应数据表2,信息传感设备5对应数据表1,信息传感设备6对应数据表2。
当用户通过在智能终端控制设备1开启的过程中,仅需在数据表3中查询出与智能终端上传的指令相匹配的第一哈希值,便可以确定待控制设备,缩短了数据匹配的时间,提高了查询的效率。
可选择的,所述方法还包括:接收智能终端发送的指令,所述指令包括目标设备ID;
如果所述指令为控制指令,将目标设备ID对应的数据表中存储的目标设备端口和IP地址通过中央处理器发送到目标设备。
具体的,如果所述指令为控制指令,计算目标设备ID的对应哈希值c,计算哈希值c取n模后的余数C,根据余数C,以及,数据表序列顺序之间的对应关系,确定所述余数C对应的目标数据表2;调取哈希值c对应的目标设备端口,以及,目标IP地址;根据所述目标设备端口,以及,目标IP地址,发送所述控制指令至目标设备。
如果所述指令为查询指令,计算目标设备ID的对应哈希值,并对其进行取n模运算,即计算所述哈希值取n模后的余数,得到第二余数,将与所述第二余数对应的数据表中存储的目标数据通过中央处理器发送到智能终端。
如果所述指令为查询指令,计算目标设备ID的对应哈希值,生成对应哈希值d;计算对应哈希值取n模后的余数D,根据余数D,以及,数据表序列顺序之间的对应关系,确定所述余数D对应的目标数据表1,基于哈希值d值遍历目标数据表1,调取哈希值d的历史监测数据集合;遍历所述历史监测数据集合,筛选时间戳最近的监测数据作为查询数据;发送所述查询数据至智能终端。
实施例6:
可选择的,实施例4或实施例5示出的技术方案中,所述方法还包括:
统计数据表集合中记录的总数据条数;
判断所述总数据条数是否大于或等于存储阈值;
如果所述总数据条数大于或等于存储阈值,构建第二数据表集合,所述第二数据表集合包括N个数据表,其中,N大于第一数据表集合中数据表的个数n;
将第一数据表集合中的数据写入第二数据表集合。
其中,所述将第一数据表集合中的数据写入第二数据表集合的步骤具体为:
提取所述数据表集合中记录的数据,所述数据包括设备ID;
计算所述设备ID模N运算后的余数,根据所述余数和所述第二数据表集合中数据表序列顺序,确定余数对应的数据表,将所述数据写入第二数据表集合中对应的数据表
判断数据表中的记录大于存储阈值时的方法,可以为,实时的统计第一数据表集合中每个数据表记录的数据条数,将每个数据表记录数的数据条数加和作为总数据条数,如果所述总数据条数大于或等于存储阈值,则重新构建第二数据表集合,第二数据表集合中数据表的个数大于第一数据表集合中数据表的个数。
也可以为,统计每个数据表中记录的数据条数;判断是否存在任一个数据表中记录的数据条数大于或等于分表阈值;如果存在,则构建第二数据表集合,所述第二数据表集合包括N个数据表,所述第二数据表集合中数据表的个数大于第一数据表集合中数据表的个数。
也可以为,随机的抽取第一数据表集合中任意一个数据表,判断抽取的数据表中记录的数据是否大于或等于大于或等于分表阈值;如果抽取的数据表中记录的数据大于或等于大于或等于分表阈值,则构建第二数据表集合,所述第二数据表集合包括N个数据表,所述第二数据表集合中数据表的个数大于第一数据表集合中数据表的个数。
将第一数据表集合中的数据写入第二数据表集合。
提取第一数据表集合中记录的数据,所述记录的数据包括,接收信息传感设备上传的设备信息,以及,监测数据,所述设备信息包括设备ID。计算所述设备ID取N模后的余数,根据所述余数,和第二数据集合中数据表序列顺序,确定余数对应的数据表,将所述设备信息,以及,监测数据写入对应的数据表。
可见本申请实施例示出的技术方案通过实时的监测数据集合中总数据条数,或每个数据表中记录的数据数,若总数据条数大于或等于存储阈值,或每个数据表中记录的数据数大于或等于分表阈值时自动完成数据表的扩充,因此有效的避免因数据的不断写入而造成数据表记录数据过多,影响查询效率的问题。
本申请实施例三方面示出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例示出的方法。
此外,通过硬件电路或者硬件电路结合软件指令同样能实现本发明,因此,实现本发明并不限于任何特定硬件电路、软件以及两者的组合。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据存储和查询的方法,其特征在于,所述方法包括:
接收信息传感设备上传的设备信息和监测数据,其中,所述设备信息包括设备ID;
将所述设备ID对n取模,根据所述取模后的余数,将所述设备信息和所述监测数据写入所述余数对应的数据表,所述n为数据表的个数。
2.根据权利要求1所述的方法,其特征在于,在接收信息传感设备上传的设备信息和监测数据之前,还包括:
构建第一数据表集合,所述第一数据表集合包括n个数据表。
3.根据权利要求1所述的方法,其特征在于,所述将设备信息和所述监测数据写入所述余数对应的数据表的步骤具体为:
计算所述设备ID的哈希值,生成第一哈希值;
计算所述第一哈希值取模n运算后的第一余数,根据所述第一余数,将所述设备信息和所述监测数据写入所述第一余数对应的数据表。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
统计数据表集合中记录的总数据条数;
判断所述总数据条数是否大于或等于存储阈值;
如果所述总数据条数大于或等于存储阈值,构建第二数据表集合,所述第二数据表集合包括N个数据表,其中,N大于第一数据表集合中数据表的个数n;
将第一数据表集合中的数据写入第二数据表集合。
5.根据权利要求4所述的方法,其特征在于,所述将第一数据表集合中的数据写入第二数据表集合的步骤具体为:
提取所述第一数据表集合中记录的数据,所述数据包括设备ID;
计算所述设备ID的哈希值,生成第一哈希值;
计算所述第一哈希值对N运算后的第二余数,将所述设备信息和所述监测数据写入所述第二余数对应的数据表。
6.根据权利要求1或4所述的方法,其特征在于,所述方法还包括:
接收智能终端发送的指令,所述指令包括目标设备ID;
如果所述指令为控制指令,将目标设备ID对应的数据表中存储的目标设备端口和IP地址通过中央处理器发送到目标设备;
如果所述指令为查询指令,将目标设备ID对应的数据表中存储的目标数据通过中央处理器发送到智能终端。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:接收智能终端发送的指令,所述指令包括目标设备ID;
如果所述指令为控制指令,计算目标设备ID的对应哈希值并对其进行取n模运算,即计算所述哈希值取n模后的余数,得到第三余数,将与所述第三余数对应的数据表中存储的目标设备端口和IP地址通过中央处理器发送到目标设备;
如果所述指令为查询指令,计算目标设备ID的对应哈希值并对其进行取n模运算,即计算所述哈希值取n模后的余数,得到第三余数,将与所述第三余数对应的数据表中存储的目标数据通过中央处理器发送到智能终端。
8.一种物联网系统,包括:用于上传设备自身的设备信息和监测数据的信息传感设备,与所述信息传感设备相连接的物联网云平台服务器,以及,与所述物联网云平台服务器相连接的智能终端;所述物联网云平台服务器包括中央处理器,与所述中央处理器相连接的表数据处理单元,以及,与所述表数据处理单元相连接的数据表;
其特征在于,所述表数据处理单元包括:
第一表处理子单元,用于构建数据表集合,所述数据表集合包括n个数据表;
第一数据处理单元,用于接收通过中央处理器传输的信息传感设备上传的设备信息和监测数据,其中,所述设备信息包括设备ID;
用于将所述设备ID对n取模,根据所述取模后的余数,将所述设备信息和所述监测数据写入所述余数对应的数据表;
第一读写单元,用于将所述设备信息和所述监测数据写入对应的数据表。
9.根据权利要求8所述的系统,其特征在于,还包括:信息处理单元,用于接收中央处理器传输的智能终端上传的指令,以及,判断所述指令种类,所述指令包括目标设备ID;
如果所述指令为控制指令,发送所述控制指令至查询指令处理单元;如果所述指令为查询指令,发送所述查询指令至控制指令处理单元;
查询指令处理单元,用于将目标设备ID对n取模,根据所述取模后的余数,根据所述余数确定目标数据表;
用于遍历所述目标数据表,确定目标设备ID对应的目标设备端口和IP地址;
第二读写单元,用于调取目标设备端口和IP地址,并通过中央处理器发送到目标设备;
控制指令处理单元,用于将目标设备ID对n取模,根据所述取模后的余数,根据所述余数确定目标数据表;
用于遍历所述目标数据表,确定目标设备ID对应的目标数据;
第三读写单元,用于调取目标数据,并通过中央处理器发送到智能终端。
10.根据权利要求8或9所述的系统,其特征在于,还包括:第四读写单元,其中:
所述第一表处理子单元,还用于在数据表中的记录大于存储阈值时构建第二数据表集合,构建第二数据表集合,所述第二数据表集合包括N个数据表,其中,N大于第一数据表集合中数据表的个数n;
第四读写单元,用于将第一数据表集合中的数据写入第二数据表集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910059046.3A CN109800270B (zh) | 2019-01-22 | 2019-01-22 | 一种数据存储和查询的方法及物联网系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910059046.3A CN109800270B (zh) | 2019-01-22 | 2019-01-22 | 一种数据存储和查询的方法及物联网系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109800270A true CN109800270A (zh) | 2019-05-24 |
CN109800270B CN109800270B (zh) | 2020-12-04 |
Family
ID=66559978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910059046.3A Active CN109800270B (zh) | 2019-01-22 | 2019-01-22 | 一种数据存储和查询的方法及物联网系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800270B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765133A (zh) * | 2019-10-24 | 2020-02-07 | 上海二三四五网络科技有限公司 | 一种基于数据取余分配数据表的控制方法及装置 |
CN110933744A (zh) * | 2019-12-13 | 2020-03-27 | Oppo广东移动通信有限公司 | 通信配置选择方法及相关产品 |
CN111399386A (zh) * | 2020-03-11 | 2020-07-10 | 佛山科学技术学院 | 一种基于5g的智能家居控制方法及系统 |
CN113111060A (zh) * | 2021-03-11 | 2021-07-13 | 北京健康之家科技有限公司 | 数据处理方法、装置、存储介质及计算机设备 |
CN113139097A (zh) * | 2020-01-19 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 数据写入、数据读取方法、装置及设备 |
CN114519125A (zh) * | 2020-11-19 | 2022-05-20 | 北京达佳互联信息技术有限公司 | 数据写入方法、装置及服务器 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914565A (zh) * | 2014-04-21 | 2014-07-09 | 北京搜狐新媒体信息技术有限公司 | 一种向数据库插入数据的方法及装置 |
CN105224636A (zh) * | 2015-09-24 | 2016-01-06 | 沈阳东软医疗系统有限公司 | 一种数据访问方法和装置 |
CN106294423A (zh) * | 2015-05-25 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 数据库分表的写入方法及装置 |
CN106294740A (zh) * | 2016-08-10 | 2017-01-04 | 北京创锐文化传媒有限公司 | 数据处理方法、装置及服务器 |
CN106547784A (zh) * | 2015-09-22 | 2017-03-29 | 阿里巴巴集团控股有限公司 | 一种数据拆分存储方法及装置 |
CN107463693A (zh) * | 2017-08-11 | 2017-12-12 | 深圳乐信软件技术有限公司 | 一种数据处理方法、装置、终端及计算机可读存储介质 |
CN107766459A (zh) * | 2017-09-27 | 2018-03-06 | 天翼电子商务有限公司 | 一种高性能及高可用性的分表方法及其系统 |
CN108496165A (zh) * | 2017-04-28 | 2018-09-04 | 深圳市大疆创新科技有限公司 | 一种数据处理方法、装置及系统 |
CN109213761A (zh) * | 2018-08-06 | 2019-01-15 | 北京马上慧科技术有限公司 | 一种自由扩展免迁移的分库分表方法 |
-
2019
- 2019-01-22 CN CN201910059046.3A patent/CN109800270B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914565A (zh) * | 2014-04-21 | 2014-07-09 | 北京搜狐新媒体信息技术有限公司 | 一种向数据库插入数据的方法及装置 |
CN106294423A (zh) * | 2015-05-25 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 数据库分表的写入方法及装置 |
CN106547784A (zh) * | 2015-09-22 | 2017-03-29 | 阿里巴巴集团控股有限公司 | 一种数据拆分存储方法及装置 |
CN105224636A (zh) * | 2015-09-24 | 2016-01-06 | 沈阳东软医疗系统有限公司 | 一种数据访问方法和装置 |
CN106294740A (zh) * | 2016-08-10 | 2017-01-04 | 北京创锐文化传媒有限公司 | 数据处理方法、装置及服务器 |
CN108496165A (zh) * | 2017-04-28 | 2018-09-04 | 深圳市大疆创新科技有限公司 | 一种数据处理方法、装置及系统 |
CN107463693A (zh) * | 2017-08-11 | 2017-12-12 | 深圳乐信软件技术有限公司 | 一种数据处理方法、装置、终端及计算机可读存储介质 |
CN107766459A (zh) * | 2017-09-27 | 2018-03-06 | 天翼电子商务有限公司 | 一种高性能及高可用性的分表方法及其系统 |
CN109213761A (zh) * | 2018-08-06 | 2019-01-15 | 北京马上慧科技术有限公司 | 一种自由扩展免迁移的分库分表方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765133A (zh) * | 2019-10-24 | 2020-02-07 | 上海二三四五网络科技有限公司 | 一种基于数据取余分配数据表的控制方法及装置 |
CN110933744A (zh) * | 2019-12-13 | 2020-03-27 | Oppo广东移动通信有限公司 | 通信配置选择方法及相关产品 |
CN110933744B (zh) * | 2019-12-13 | 2023-05-26 | Oppo广东移动通信有限公司 | 通信配置选择方法及相关产品 |
CN113139097A (zh) * | 2020-01-19 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 数据写入、数据读取方法、装置及设备 |
CN111399386A (zh) * | 2020-03-11 | 2020-07-10 | 佛山科学技术学院 | 一种基于5g的智能家居控制方法及系统 |
CN114519125A (zh) * | 2020-11-19 | 2022-05-20 | 北京达佳互联信息技术有限公司 | 数据写入方法、装置及服务器 |
CN113111060A (zh) * | 2021-03-11 | 2021-07-13 | 北京健康之家科技有限公司 | 数据处理方法、装置、存储介质及计算机设备 |
CN113111060B (zh) * | 2021-03-11 | 2024-07-23 | 北京水滴科技集团有限公司 | 数据处理方法、装置、存储介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109800270B (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800270A (zh) | 一种数据存储和查询的方法及物联网系统 | |
CN113011602B (zh) | 一种联邦模型训练方法、装置、电子设备和存储介质 | |
CN107770259A (zh) | 基于文件热度和节点负载的副本数量动态调整方法 | |
CN105227645A (zh) | 一种云数据迁移方法 | |
US10813032B2 (en) | Systems and methods for neighboring node discovery in a network | |
JP5845877B2 (ja) | 情報処理装置、データ制御方法およびデータ制御プログラム | |
Tang et al. | Latency-aware task scheduling in software-defined edge and cloud computing with erasure-coded storage systems | |
Xu et al. | Schedule or wait: Age-minimization for IoT big data processing in MEC via online learning | |
Moghaddasi et al. | Multi-objective secure task offloading strategy for blockchain-enabled IoV-MEC systems: a double deep Q-network approach | |
Mann et al. | Optimal node clustering and scheduling in wireless sensor networks | |
AbdulRahman et al. | Adaptive upgrade of client resources for improving the quality of federated learning model | |
Guo et al. | Fast replica recovery and adaptive consistency preservation for edge cloud system | |
Cao et al. | Online network utility maximization: Algorithm, competitive analysis, and applications | |
Wu et al. | Optimization design and realization of ceph storage system based on software defined network | |
WO2015001671A1 (ja) | 通信制御装置、通信制御装置の制御方法、及び情報処理システム | |
Pu et al. | Practical implementation of an OPC UA multi-server aggregation and management architecture for IIoT | |
CN110213196A (zh) | 设备及其防止重放攻击的方法、电子设备和存储介质 | |
JP6320569B2 (ja) | 宅内制御装置および宅内制御システム | |
Ghaderi et al. | An energy‐efficient data management scheme for industrial IoT | |
Wu et al. | Towards efficient dynamic uplink scheduling over multiple unknown channels | |
Li et al. | Taming the big to small: efficient selfish task allocation in mobile crowdsourcing systems | |
CN116074331A (zh) | 区块数据同步方法及相关产品 | |
Xu et al. | Joint optimization of energy conservation and migration cost for complex systems in edge computing | |
CN109005034B (zh) | 一种多租户量子密钥供应方法及装置 | |
Cao et al. | A Cooperative Edge Caching Approach Based on Multi-Agent Deep Reinforcement Learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |