本发明涉及智能数据处理领域,尤其涉及一种数据存储方法、数据查询方法及相关装置。
背景技术:
1、随着储能行业的日益发展,户式储能设备的应用场景也越来越广泛,设备的数据通常会通过通信设备发送至云端服务器,通过云端服务器最终将大量数据存储起来。目前,针对上述场景,业内的解决思路是考虑将上报的数据直接存储至mysql中,或者通过hive存储到分布式文件系统中。前一种思路的问题在于,设备上报频繁的情况下,会对mysql集群的写入性能造成很大的威胁,通过扩大集群的方式分散写入压力,然后mysql集群过大会造成可维护性差的缺陷,同时服务器成本、集群维护成本也相应增加;后一种思路的问题在于,使用分布式文件系统虽然可以做到存储节点的平滑扩展,但是对于数据量大且更新频繁的场景,通过hive写入hdfs的场景性能极低,其原因在于hive需要维护与hdfs存储和hive表结构的元数据;对于后一种思路,不通过hive存储,直接存储hfds文件系统,此时的更新性能能够达到很高的水平,但此场景仅适合离线数据,离线数据的场景具有延迟性大的特性,在需要实时展示储能设备上报统计数据的场景中并不适用。
技术实现思路
1、鉴于以上现有技术存在的问题,本发明提出一种数据存储方法、数据查询方法及相关装置,主要解决现有方法存储及维护成本高、难以满足实时数据存储及查询需求的问题。
2、为了实现上述目的及其他目的,本发明采用的技术方案如下。
3、本技术提供一种数据存储方法,包括:
4、获取不同目标设备的运行数据以及所述运行数据对应的属性参数;
5、通过消息队列对所述运行数据进行数据削峰,得到待存储数据;
6、根据所述属性参数将所述待存储数据写入分布式文件系统的对应的目标目录中,并将所述属性参数作为对应目标目录中待存储数据的元数据以将所述待存储数据与对应的元数据进行关联存储,所述目标目录是基于预设划分策略对所述属性参数进行预分类得到的。
7、在本技术一实施例中,获取不同目标设备的运行数据,包括:
8、与所述目标设备建立长连接,以将所述目标设备的运行数据以字节流的形式读取到缓存中,其中,每个所述字节流包含多条运行数据;
9、将所述缓存中字节流的字节长度与预设总长度阈值进行比较,得到比较结果;
10、根据所述比较结果从所述缓存中提取完整的字节流,以基于所述完整的字节流确定所述目标设备的运行数据。
11、在本技术一实施例中,将所述缓存中字节流的字节长度与预设总长度阈值进行比较之前,还包括:
12、读取所述字节流中用于保存字节长度的字节起始标识;
13、根据所述字节起始标识以及预设的字节偏移量确定保存字节长度的目标字段;
14、根据所述目标字段确定所述预设总长度阈值。
15、在本技术一实施例中,根据所述比较结果从所述缓存中提取完整的字节流,包括:
16、若缓存中当前字节流的长度小于所述预设总长度阈值,则等待下一个字节流传入所述缓存,将所述下一个字节流中对应长度的字节补入所述当前字节流,以得到字节长度与所述预设总长度阈值相等的字节流作为一个完整的字节流;
17、若缓存中当前字节流的长度大于所述预设总长度阈值,则根据所述字节起始标识从所述当前字节流中截取与所述预设总长度阈值相等的字节流作为一个完整的字节流。
18、在本技术一实施例中,根据所述属性参数将所述待存储数据写入分布式文件系统的对应的目标目录中,包括:
19、将所述属性参数与各所述目标目录的预设描述字段进行相似度比对,得到匹配的目标目录;
20、获取所述匹配的目标目录的目标文件路径,通过预设流式处理工具将对应的运行数据写入所述目标文件路径中。
21、在本技术一实施例中,将所述属性参数作为对应目标目录中待存储数据的元数据以将所述待存储数据与对应的元数据进行关联存储,包括:
22、启动定时任务以将所述属性参数添加到预设元数据分区表中;
23、将所述目标目录中的所述待存储数据与所述元数据分区表中对应属性参数进行关联,以基于所述元数据分区表进行运行数据查询。
24、本技术还提供一种数据查询方法,包括:
25、获取查询语句,将所述查询语句与不同目标设备的运行数据对应的属性参数进行比对,得到匹配的属性参数;
26、根据所述匹配的属性参数调用对应目标目录中存储的对应运行数据,得到第一查询数据,其中,所述目标目录是基于预设划分策略对所述属性参数进行预分类得到的,所述目标目录中存储的对应运行数据是根据所述属性参数将待存储数据写入分布式文件系统的对应的目标目录中得到的,所述待存储数据是通过消息队列对所述运行数据进行数据削峰得到的。
27、在本技术一实施例中,根据所述匹配的属性参数调用预设目标目录中存储的对应运行数据之后,还包括:
28、根据所述匹配的属性参数调用预设缓存空间中的缓存数据,得到第二查询数据,所述缓存数据包括写入所述分布式文件系统中最新的多条所述待存储数据;
29、将所述第一查询数据与所述第二查询数据合并作为查询结果输出。
30、在本技术一实施例中,根据所述匹配的属性参数调用预设缓存空间中的缓存数据之前,还包括:
31、根据不同目标设备对应运行数据的获取时间对所述预设缓存空间中的缓存数据进行排序,得到排序集合;
32、根据所述排序集合的时间属性更新所述排序集合,以使所述排序集合中保留最新的固定条数的缓存数据。
33、本技术还提供一种数据存储装置,包括:
34、数据获取模块,用于获取不同目标设备的运行数据以及所述运行数据对应的属性参数;
35、削峰模块,用于通过消息队列对所述运行数据进行数据削峰,得到待存储数据;
36、存储模块,用于根据所述属性参数将所述待存储数据写入分布式文件系统的对应的目标目录中,并将所述属性参数作为对应目标目录中待存储数据的元数据以将所述待存储数据与对应的元数据进行关联存储,所述目标目录是基于预设划分策略对所述属性参数进行预分类得到的。
37、本技术还提供一种数据查询装置,包括:
38、查询模块,用于获取查询语句,将所述查询语句与不同目标设备的运行数据对应的属性参数进行比对,得到匹配的属性参数;
39、输出模块,用于根据所述匹配的属性参数调用对应目标目录中存储的对应运行数据,得到第一查询数据,其中,所述目标目录是基于预设划分策略对所述属性参数进行预分类得到的,所述目标目录中存储的对应运行数据是根据所述属性参数将待存储数据写入分布式文件系统的对应的目标目录中得到的,所述待存储数据是通过消息队列对所述运行数据进行数据削峰得到的。
40、本技术还提供一种计算机设备,所述设备包括处理器及存储器;
41、所述存储器用于存储计算机程序;
42、所述处理器用于根据所述计算机程序执行所述的储能设备调度方法、或者所述的模型管理方法。
43、本技术还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于所述的储能设备调度方法、或者所述的模型管理方法。
44、如上所述,本技术提供的一种数据存储方法、数据查询方法及相关装置,具有以下有益效果。
45、本技术通过对数据进行削峰,可有效解决数据上报频繁影响写入性能的问题,同时将数据写入分布式文件系统后,建立目标数据与元数据的关联,不在依赖于hive进行写入,可极大地提高写入性能,保证数据存储及查询的实时高效。
1.一种数据存储方法,其特征在于,包括:
2.根据权利要求1所述的数据存储方法,其特征在于,获取不同目标设备的运行数据,包括:
3.根据权利要求2所述的数据存储方法,其特征在于,将所述缓存中字节流的字节长度与预设总长度阈值进行比较之前,还包括:
4.根据权利要求3所述的数据存储方法,其特征在于,根据所述比较结果从所述缓存中提取完整的字节流,包括:
5.根据权利要求1所述的数据存储方法,其特征在于,根据所述属性参数将所述待存储数据写入分布式文件系统的对应的目标目录中,包括:
6.根据权利要求1所述的数据存储方法,其特征在于,将所述属性参数作为对应目标目录中待存储数据的元数据以将所述待存储数据与对应的元数据进行关联存储,包括:
7.一种数据查询方法,其特征在于,包括:
8.根据权利要求7所述的数据查询方法,其特征在于,根据所述匹配的属性参数调用预设目标目录中存储的对应运行数据之后,还包括:
9.根据权利要求8所述的数据查询方法,其特征在于,根据所述匹配的属性参数调用预设缓存空间中的缓存数据之前,还包括:
10.一种数据存储装置,其特征在于,包括:
11.一种数据查询装置,其特征在于,包括:
12.一种计算机设备,其特征在于,所述设备包括处理器及存储器;
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于权利要求1-6任一项所述的储能设备调度方法、或者权利要求7-9任一项所述的模型管理方法。