本发明涉及流数据存储技术领域,特别涉及一种流数据存储方法及装置。
背景技术:
伴随着工业4.0的浪潮,制造业的信息化水平越来越高,在工业自动化生产过程中会相应的产生海量的实时数据,这些数据即是流数据。流数据的持续产生,海量,实时的特性,使得这类数据的存储以及查询异常困难。采用本地化的关系型数据进行处理,会大大延迟数据查询的速度以及存储的数据量。针对此问题,国内外开始了大量的研究。比较传统的做法是在本地采用实时数据库或者实时数据库与关系型数据库集成的做法解决此问题。但是在工业互联网时代显然本地的数据无法发挥其数据的真正价值。另外一种做法是以单独的流数据处理系统对数据文件进行管理从而达到流数据实时处理的效果。
这种方法大部分用在消费级互联网领域,而且需要强大的服务器体系做支撑,在工业领域,数据的产生会量远远超过消费级的数据量,而且数据一般只有在某一段时间内算是实时数据,超过这一时间段即是历史数据,而且目前尚未出现巨大的服务器体系。因此采用一种将实时数据与历史数据进行区分存储处理,可以在满足用户查询历史数据的基础上,大大减小流数据处理系统的压力。
技术实现要素:
本发明实施例的目的在于提供一种流数据存储方法及装置,以解决流数据的实时查询问题,以及本地存储量有限的问题,而且将流数据中实时数据与历史数据进行区分,可以有效的对数据进行存储以及处理,既可以减小服务器体系的成本,又可以达到实时数据快速查询的效果。
为达到上述目的,本发明实施例公开了一种流数据存储方法及装置,技术方案如下:
一种流数据存储方法,其特征在于,应用于服务器,包括物联网层,云端,网关、数据采集器,所述物联网层与云端物理连接,所述方法包括:
所述物联网固定时间间隔的采集用户提交的数据查询请求;
分析所述查询请求,包括所述查询请求的时间属性及特征属性;
根据所述时间属性和所述特征属性,选定分段的数量和分段的端点,并根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小;
根据所述时间属性、所述特征属性、所述待查询数据的存储量、分段的端点和待写入的缓存区的大小生成配置文件,并将配置文件存储于文件服务器上;
数据采集器接收网络流数据,并将网络流数据转发给文件服务器,所述服务器上的接收进程接收转发来的网络流数据;
所述服务器读取配置文件,按照配置文件存储接收到的网络流数据。
优选的,所述云端包括:
流数据处理系统、控制器和关系型数据库,所述云端中的流数据处理系统存储接收到的流数据,并存储为历史数据;所述控制器查询流数据处理系统中的历史数据将其存储到关系型数据库,并且从流数据库中将这些数据删除。
优选的,所述时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性进行确定。
优选的,所述流数据处理系统采用HDFS分布式文件存储系统与Impala平台相结合的数据处理系统。
优选的,所述方法还包括:
采用窗口显示类显示实时流数据;
接收客户端的应用层通过服务端发送数据查询请求;
所述控制器根据不同的查询的请求从数据库中查询不同的数据;
所述控制器将查询到的数据发送给数据查询类;
数据查询类将数据传送至数据类;
数据类根据用户的动作显示实时数据或者历史数据。
优选的,所述方法还包括:
所述服务器上的数据接收进程将网络流数据转发给数据存储进程,数据存储进程按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;
每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;
将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。
一种流数据存储装置,应用于服务器,包括物联网层,云端,网关、数据采集器,所述物联网层与云端物理连接,所述装置包括:
采集单元,用于所述物联网固定时间间隔的采集用户提交的数据查询请求;
分析单元,用于分析所述查询请求,包括所述查询请求的时间属性及特征属性;
选定单元,用于根据所述时间属性和所述特征属性,选定分段的数量和分段的端点,并根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小;
生成单元,用于根据所述时间属性、所述特征属性、所述待查询数据的存储量、分段的端点和待写入的缓存区的大小生成配置文件,并将配置文件存储于文件服务器上;
第一转发单元,用于数据采集器接收网络流数据,并将网络流数据转发给文件服务器,所述服务器上的接收进程接收转发来的网络流数据;
存储单元,用于所述服务器读取配置文件,按照配置文件存储接收到的网络流数据。
优选的,所述装置还包括:
第二转发单元,用于所述服务器上的数据接收进程将网络流数据转发给数据存储进程,数据存储进程按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;
排序单元,用于将每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;
写入单元,用于将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。
优选的,所述云端包括:
流数据处理系统、控制器和关系型数据库,所述云端中的流数据处理系统存储接收到的流数据,并存储为历史数据;所述控制器查询流数据处理系统中的历史数据将其存储到关系型数据库,并且从流数据库中将这些数据删除。
优选的,所述装置还包括:
第一显示单元,用于采用窗口显示类显示实时流数据;
第一发送单元,用于接收客户端的应用层通过服务端发送数据查询请求;
查询单元,用于所述控制器根据不同的查询的请求从数据库中查询不同的数据;
第二发送单元,用于所述控制器将查询到的数据发送给数据查询类;
传送单元,用于数据查询类将数据传送至数据类;
第二显示单元,用于数据类根据用户的动作显示实时数据或者历史数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种流数据存储方法的流程图。
图2为另一种流数据存储方法的流程图。
图3为一种流数据存储装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为一种流数据存储方法的流程图,应用于服务器,包括物联网层,云端,网关、数据采集器,物联网层与云端物理连接,所述方法包括如下步骤:
A、物联网固定时间间隔的采集用户提交的数据查询请求;
B、分析查询请求,包括查询请求的时间属性及特征属性;
C、根据时间属性和特征属性,选定分段的数量和分段的端点,并根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小;
D、根据时间属性、特征属性、待查询数据的存储量、分段的端点和待写入的缓存区的大小生成配置文件,并将配置文件存储于文件服务器上;
E、数据采集器接收网络流数据,并将网络流数据转发给文件服务器,服务器上的接收进程接收转发来的网络流数据;
F、服务器读取配置文件,按照配置文件存储接收到的网络流数据。
进一步的,云端包括:流数据处理系统、控制器和关系型数据库,云端中的流数据处理系统存储接收到的流数据,并存储为历史数据;控制器查询流数据处理系统中的历史数据将其存储到关系型数据库,并且从流数据库中将这些数据删除。
进一步的,时间属性的时间跨度及每个特征属性的出现频率,根据每个特征属性的出现频率,选择超出预设出现频率的阈值的特征属性进行确定。
进一步的,流数据处理系统采用HDFS分布式文件存储系统与Impala平台相结合的数据处理系统。
图2为另一种流数据存储方法的流程图,在图1的基础上,方法还包括如下步骤:
G、采用窗口显示类显示实时流数据;
H、接收客户端的应用层通过服务端发送数据查询请求;
I、控制器根据不同的查询的请求从数据库中查询不同的数据;
J、控制器将查询到的数据发送给数据查询类;
K、数据查询类将数据传送至数据类;
L、数据类根据用户的动作显示实时数据或者历史数据。
进一步的,方法还包括:
服务器上的数据接收进程将网络流数据转发给数据存储进程,数据存储进程按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;
每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;
将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。
图3为一种流数据存储装置的结构图,所述装置包括:
采集单元a,用于物联网固定时间间隔的采集用户提交的数据查询请求;
分析单元b,用于分析查询请求,包括查询请求的时间属性及特征属性;
选定单元c,用于根据时间属性和特征属性,选定分段的数量和分段的端点,并根据划分的分段中待查询数据的存储量选定待写入的缓存区的大小;
生成单元d,用于根据时间属性、特征属性、待查询数据的存储量、分段的端点和待写入的缓存区的大小生成配置文件,并将配置文件存储于文件服务器上;
第一转发单元e,用于数据采集器接收网络流数据,并将网络流数据转发给文件服务器,服务器上的接收进程接收转发来的网络流数据;
存储单元f,用于服务器读取配置文件,按照配置文件存储接收到的网络流数据。
进一步的,装置还包括:
第二转发单元,用于服务器上的数据接收进程将网络流数据转发给数据存储进程,数据存储进程按照配置文件将网络流数据分配到对应的一级缓存区中进行存储;
排序单元,用于将每个一级缓存区分别对分配过来的网络流数据进行排序和压缩;
写入单元,用于将排序和压缩后的网络流数据写入二级缓存区,当二级缓存区达到预定的大小时,采用追加写的方式将压缩后的数据文件写入到相应的存储文件中。
进一步的,云端包括:
流数据处理系统、控制器和关系型数据库,云端中的流数据处理系统存储接收到的流数据,并存储为历史数据;控制器查询流数据处理系统中的历史数据将其存储到关系型数据库,并且从流数据库中将这些数据删除。
进一步的,所述装置还包括:
第一显示单元,用于采用窗口显示类显示实时流数据;
第一发送单元,用于接收客户端的应用层通过服务端发送数据查询请求;
查询单元,用于控制器根据不同的查询的请求从数据库中查询不同的数据;
第二发送单元,用于控制器将查询到的数据发送给数据查询类;
传送单元,用于数据查询类将数据传送至数据类;
第二显示单元,用于数据类根据用户的动作显示实时数据或者历史数据。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。