水利数据分片存储方法、点播方法、处理系统与流程

文档序号:24645846发布日期:2021-04-13 15:04阅读:114来源:国知局
水利数据分片存储方法、点播方法、处理系统与流程

1.本发明涉及数据存储技术领域,尤其涉及一种水利数据分片存储方法、点播方法、处理系统。


背景技术:

2.现有水利数据的存储和调取,水利数据中各水利模型多且对应结果文件非常大,占用较大的空间。例如二维水动力模型的结果文件较大,大的场景,数据存储量都会达到百g级别。
3.当前水利数据需要汇总在一起,各个水利部门能够实时或周期调取各区域的水利数据进行研究并确定合理的调度方案。基于此,现有技术中将各个水利模型及其对应的结果文件均上传到云端,使得连接云端的各服务器根据需求下载。由于水利模型和结果文件都非常大,按照当前普通的宽带(100m带宽)进行计算,至少需要3个多小时才能完成全部文件的传输。相应地,在下载过程中也是非常缓慢,占用较多带宽和较长时间。为此,在云化过程中,如何保持客户端和云端的快速、有效传输是亟待解决的问题。


技术实现要素:

4.(一)要解决的技术问题鉴于现有技术的上述缺点、不足,本发明提供一种水利数据分片存储方法、点播方法、处理系统。
5.(二)技术方案为了达到上述目的,本发明采用的主要技术方案包括:第一方面,本发明实施例提供一种水利数据分片存储方法,所述水利数据包括:水动力模型的结果文件,用于分片存储的结果文件均为具有时序性的文件,所述方法包括:s1、针对第一客户端接收的水动力模型的结果文件,以帧为单位进行提取处理获取所述水动力模型的结果文件的每一帧所对应的第一结构化数据;所述水动力模型的结果文件的每一帧均具有帧号;所述第一结构化数据包括:多个具有节点编号的节点数据和标识所述第一结构化数据所对应的水动力模型的结果文件的帧号的标签;所述多个节点数据按照节点编号顺序依次纵向排列;每一节点数据包括依次横向排列的节点编号、预先设定的节点地理坐标的x值、预先设定的节点地理坐标的y值、渲染水深数据值、流速横向坐标分量值、流速纵坐标分量值、水深值、流速值、流速方向和水位值;s2、针对所述第一结构化数据进行重组处理,获取第二结构化数据;s3、针对所述第二结构化数据进行压缩处理,获取bson结构数据;所述bson结构数据包括标识所述bson结构数据所对应的水动力模型的结果文件的帧号的标签;
s4、将所述bson结构数据存入与所述第一客户端通信连接的文档数据库。
6.优选的,所述第二结构化数据包括:依次纵向排列的渲染水深数据数组、流速横向坐标分量数组、流速纵坐标分量数组、水深数组、流速大小数组、流速方向数组和水位数组;所述渲染水深数据数组包括:按照节点编号顺序依次横向排列的节点的渲染水深数据值;所述流速横向坐标分量数组包括:按照节点编号顺序依次横向排列的节点的流速横向坐标分量值;所述流速纵坐标分量数组包括:按照节点编号顺序依次横向排列的节点的流速纵坐标分量值;所述渲染水深数据包括:按照节点编号顺序依次横向排列的节点的水深值;所述流速大小数组包括:按照节点编号顺序依次横向排列的节点的流速值;所述流速方向数组包括:按照节点编号顺序依次横向排列的节点的流速方向;所述水位数组包括:按照节点编号顺序依次横向排列的节点的水位值。
7.优选的,所述s3包括:s31、对所述第二结构化数据进行去零缩短处理,获取去零缩短处理后的数据结构;所述去零缩短处理为:分别将第二结构化数据中所述渲染水深数据值、流速横向坐标分量值、流速纵坐标分量值、水深值、流速值、流速方向、水位值中重复多次的无效字符缩短并记录;s32、针对所述去零缩短处理后的数据结构,将去零缩短处理后的数据结构中渲染水深数据数组、流速横向坐标分量数组、流速纵坐标分量数组、水深数组、流速大小数组、流速方向数组、水位数组拼接成一个字符串,并进行gzip压缩,组装成bson结构。
8.优选的,所述s3具体包括:在预先确定的空闲时间段内对所述第二结构化数据进行压缩处理,获取bson结构数据;其中,所述空闲时间段由所述第一客户端依据所述第一客户端统计的所述第一客户端在预设时间段内的空闲的时间所得到的。
9.第二方面,本实施例还提供一种云端水利数据的点播方法,所述云端水利数据为采用分片存储方式将水利数据存储在云端的数据,用于分片存储的水利数据均为具有时序性的数据,所述方法包括:a1、接收用户在第二客户端输入的点播服务请求数据,根据所述点播服务请求数据,确定与所述第二客户端通信连接的云端数据库中与所述点播请求数据对应的bson结构数据;所述云端数据库中包括通过分片存储方式存储的多个水利数据的bson结构数据;所述bson结构数据包括标识所述bson结构数据所对应的水利数据中帧号的标签;所述点播服务请求数据包括:预先指定的帧号、预先指定的连续帧号范围、预先指定的连续帧号范围中的固定间隔的帧号;a2、根据与所述点播请求数据对应的bson结构数据,获取输出压缩文件,并将所述
压缩文件发送至第二客户端。
10.优选的,所述a2包括:a21、将所述bson结构数据转成json格式的数据;a22、针对所述json格式的数据进行gzip压缩,获取输出压缩文件,并将所述压缩文件发送至客户端。
11.优选的,所述a1为:当所述点播服务请求数据为预先指定的帧号时,则在所述云端数据库中确定与所述预先指定的帧号相应的bson结构数据。
12.优选的,所述a1为:当所述点播服务请求数据为预先指定的连续帧号范围时,则在所述云端数据库中确定与所述预先指定的连续帧号范围相应的bson结构数据。
13.优选的,所述a1为:当所述点播服务请求数据为预先指定的连续帧号范围中的固定间隔的帧号时,则在所述云端数据库中确定与所述预先指定的连续帧号范围中的固定间隔的帧号相应的bson结构数据。
14.另一方面,本实施例还提供一种水利数据处理系统,所述系统包括分片服务模块、位于云端的文档数据库模块以及点播服务模块;所述文档数据库模块分别与所述分片服务模块和点播服务模块通信连接;所述点播服务模块还与至少一个客户端通信连接;所述分片服务模块用于采用如上述任一的水利数据分片存储方法将水利数据分片存储至文档数据库模块;所述点播服务模块用于通过所述客户端接收的用户输入的点播服务请求数据,采用如上述任一所述的云端水利数据的点播方法进行点播,获取输出压缩文件,并将所述压缩文件发送至客户端。
15.(三)有益效果本发明的有益效果是:本发明的一种水利数据分片存储方法,针对水利数据,按帧为单位进行提取处理获取相应的第一结构化数据,并针对所述第一结构化数据进行重组处理,获取第二结构化数据,相对于现有技术而言,其可以便于后续根据帧号进行检索。
16.本发明的一种云端水利数据的点播方法,可以根据所接收的不同用户的点播服务请求数据,根据所述接收用户的点播服务请求数据,获取云端数据库中与所述点播请求数据相应的bson结构数据,进一步使可以使水利数据渲染达到秒播的程度,省去了原来需要等待文件下载的过程,同时可以跳帧查看结果。
17.本发明的一种水利数据处理系统,由于采用本发明的水利数据分片存储方法和本发明的云端水利数据的点播方法,能够通过对水利数据解析、分片、转换、压缩,将数据处理到易于传输的大小。在通过流式传输的方式,分批进行数据交互。支持单帧、多帧及抽帧点播服务,增强了用户的体验效果。
附图说明
18.图1为本发明的一种水利数据分片存储方法流程图;图2为本发明实施例中第一结构化数据进行重组处理得到第二结构化数据对比示意图;图3为本发明实施例中去零缩短处理示意图;图4为本发明实施例中零缩短处理后的数据格式示意图;图5为本发明实施例中渲染水深数据数组、流速横向坐标分量数组、流速纵坐标分量数组、水深数组、流速大小数组、流速方向数组、水位数组拼接成一个字符串的示意图;图6为本发明的一种云端水利数据的点播方法流程图;图7为本发明的一种水利数据处理系统示意图。
具体实施方式
19.为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
20.帧:即影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。一帧就是一幅静止的画面,连续的帧就形成动画,如电视图象等。本文中的帧指的是水动力模型中某个指定输出的时刻形成的数据。
21.文档数据库:可存放并获取文档,其格式可以是xml、json、bson等,这些文档具备可述性(self

describing),呈现分层的树状结构(hierarchical tree data structure),可以包含映射表、集合和纯量值。数据库中的文档彼此相似,但不必完全相同。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。文档数据库可视为其值可查的键值数据库。mongodb是文档数据库中最知名的产品,下文中所称的文档数据库即是指mongodb。
22.bson:是一种计算机数据交换格式,主要被用作mongodb数据库中的数据存储和网络传输格式。它是一种二进制表示形式,能用来表示简单数据结构、关联数组(mongodb中称为“对象”或“文档”)以及mongodb中的各种数据类型。
23.为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更清楚、透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
24.参见图1,本实施例提供一种水利数据分片存储方法,所述水利数据包括:水动力模型的结果文件,用于分片存储的结果文件均为具有时序性的文件,所述方法包括:s1、针对第一客户端接收的水动力模型的结果文件,以帧为单位进行提取处理获取所述水动力模型结果文件的每一帧所对应的第一结构化数据。
25.所述水动力模型结果文件的每一帧均具有帧号。
26.所述第一结构化数据包括:多个具有节点编号的节点数据和标识所述第一结构化数据所对应的水动力模型的结果文件的帧号的标签。
27.所述多个节点数据按照节点编号顺序依次纵向排列。
28.每一节点数据包括依次横向排列的:节点编号、预先设定的节点地理坐标的x值、预先设定的节点地理坐标的y值、渲染水深数据值、流速横向坐标分量值、流速纵坐标分量
值、水深值、流速值、流速方向、水位值。
29.在本实施例实际应用中,从水动力模型的结果文件中提取出结构化数据。提取过程中,按帧为单位进行提取处理,避免了程序缓冲区溢出。
30.s2、针对所述第一结构化数据进行重组处理,获取第二结构化数据。
31.参见图2所示,在本实施例的实际应用中,将以帧为单位提取出的数据,进行重新组织,组织成便于按帧检索的结构,形成第二结构化数据。
32.s3、针对所述第二结构化数据进行压缩处理,获取bson结构数据。
33.所述bson结构数据包括标识所述bson结构数据所对应的水动力模型的结果文件的帧号的标签。
34.s4、将所述bson结构数据存入与所述第一客户端通信连接的文档数据库。
35.本实施例中,参见图2所示,所述第二结构化数据包括:依次纵向排列的渲染水深数据数组、流速横向坐标分量数组、流速纵坐标分量数组、水深数组、流速大小数组、流速方向数组、水位数组。
36.本实施例图2中,id为节点编号;x为节点地理坐标的x值(由用户提供);y为节点地理坐标的y值(由用户提供);gisdata为gis渲染时用到的水深数据;u为流速横向坐标分量;v为流速纵坐标分量;h为水深;vmag为流速值;dir为流速方向(度数);eta为水位。
37.所述渲染水深数据数组包括:按照节点编号顺序依次横向排列的节点的渲染水深数据值。
38.所述流速横向坐标分量数组包括:按照节点编号顺序依次横向排列的节点的流速横向坐标分量值。
39.所述流速纵坐标分量数组包括:按照节点编号顺序依次横向排列的节点的流速纵坐标分量值。
40.所述渲染水深数据包括:按照节点编号顺序依次横向排列的节点的水深值。
41.所述流速大小数组包括:按照节点编号顺序依次横向排列的节点的流速值。
42.所述流速方向数组包括:按照节点编号顺序依次横向排列的节点的流速方向。
43.所述水位数组包括:按照节点编号顺序依次横向排列的节点的水位值。
44.在本实施例的实际应用中,文中的x、y作为关键的基础数据,进行单独存储,此处不再阐述过程。
45.frameno是通过time(hr)计算出的帧号。此第二结构化数据中,将单帧内的多条数据,转换成了单条数据结构,便于后续根据帧号检索。
46.本实施例中,所述s3包括:s31、对所述第二结构化数据进行去零缩短处理,获取去零缩短处理后的数据结构。
47.所述去零缩短处理为:分别将第二结构化数据中所述渲染水深数据值、流速横向坐标分量值、流速纵坐标分量值、水深值、流速值、流速方向、水位值中重复多次的无效字符缩短并记录,也就是将无效字符剔除。
48.s32、针对所述去零缩短处理后的数据结构,将去零缩短处理后的数据结构中渲染水深数据数组、流速横向坐标分量数组、流速纵坐标分量数组、水深数组、流速大小数组、流速方向数组、水位数组拼接成一个字符串,并进行gzip压缩,组装成bson结构。
49.本实施例中将第二结构化数据进行进一步的压缩处理,使数据体积变小。首先,我们对数据进行整理,将数据中无效字符“.000000”剔除。剔除过程见图3所示。在去零缩短后,数据格式变成如图4所示结构。然后,再将渲染水深数据数组、流速横向坐标分量数组、流速纵坐标分量数组、水深数组、流速大小数组、流速方向数组、水位数组拼接成一个字符串,并进行gzip压缩,组装成bson结构,结果如图5所示。
50.本实施例中优选的,所述渲染水深数据值、流速横向坐标分量值、流速纵坐标分量值、水深值、流速值、流速方向、水位值中无效字符为“.000000”。
51.在本实施例的实际应用中,所述s3具体包括:在预先确定的空闲时间段内对所述第二结构化数据进行压缩处理,获取bson结构数据;其中,所述空闲时间段由所述第一客户端依据所述第一客户端统计的所述第一客户端在预设时间段内的空闲的时间所得到的。
52.也就是说,第一客户端可以在空闲时间段内进行压缩处理,在这样的时间段处理的效率更高。
53.本实施例中的所述水利数据包括:水动力模型的结果文件,更具体的,本实施例中的水利数据包括二维水动力模型的结果文件。
54.本实施例中的一种水利数据分片存储方法,针对水利数据,按帧为单位进行提取处理获取相应的第一结构化数据,并针对所述第一结构化数据进行重组处理,获取第二结构化数据,相对于现有技术而言,其可以便于后续根据帧号进行检索。同时解决了云化过程中,水利数据文件传输量大、效率低的问题。
55.第二方面,参见图6,本发明实施例提供一种云端水利数据的点播方法,所述云端水利数据为采用分片存储方式将水利数据存储在云端的数据,其特征在于,用于分片存储的水利数据均为具有时序性的数据,所述方法包括:a1、接收用户在第二客户端输入的点播服务请求数据,根据所述点播服务请求数据,确定与所述第二客户端通信连接的云端数据库中与所述点播请求数据对应的bson结构数据。
56.所述云端数据库中包括通过分片存储方式存储的多个水利数据的bson结构数据。
57.本实施例中的云端数据库即为位于云端的文档数据库,对此不作限定。
58.所述bson结构数据包括标识所述bson结构数据所对应的水利数据中帧号的标签。
59.所述点播服务请求数据包括:预先指定的帧号、预先指定的连续帧号范围、预先指定的连续帧号范围中的固定间隔的帧号。
60.a2、根据与所述点播请求数据对应的bson结构数据,获取输出压缩文件,并将所述压缩文件发送至第二客户端。
61.其中,所述a2包括:a21、将所述bson结构数据转成json格式的数据。
62.a22、针对所述json格式的数据进行gzip压缩,获取输出压缩文件,并将所述压缩文件发送至客户端。
63.本实施例中优选的,所述a1为:当接收用户的点播服务请求数据为预先指定的帧号时,则获取所述文档数据库中与所述预先指定的帧号相应的bson结构数据。
64.本实施例中优选的,所述a1为:当接收用户的点播服务请求数据为预先指定的连续帧号范围时,则获取所述文档数据库中与所述预先指定的连续帧号范围相应的bson结构数据。
65.本实施例中优选的,所述a1为:当接收用户的点播服务请求数据为预先指定的连续帧号范围中的固定间隔的帧时,则获取所述文档数据库中与所述预先指定的连续帧号范围中的固定间隔的帧相应的bson结构数据。
66.在本实施例的实际应用中,云端水利数据的点播方法以rest方式提供服务,支持单帧、多帧、抽帧播放。
67.单帧:即按照指定的帧号返回内容。
68.多帧:即按照指定的连续帧号范围返回内容。常用于预加载和连续播放。
69.抽帧:即在指定的连续帧号范围,取出固定间隔的帧内容返回。常用于倍速播放。
70.res地址例如:。
71.点播服务从云端数据库,获取数据后,需要将bson转成json格式。bson可以存储二进制内容,而json不可以存储二进制。因此对bson中二进制的内容进行base64编码,转成字符串。点播服务将json返回客户端时,再进行一次gzip压缩(客户端的浏览器会自动解压)。
72.本实施例中的一种云端水利数据的点播方法,可以根据所接收的不同用户的点播服务请求数据,根据所述接收用户的点播服务请求数据,获取云端数据库中与所述点播请求数据相应的bson结构数据,进一步使可以使水利数据渲染达到秒播的程度,省去了原来需要等待文件下载的过程,同时可以跳帧查看结果。
73.第三方面,参见图7,本实施例中提供一种水利数据处理系统,所述系统包括分片服务模块、位于云端的文档数据库模块以及点播服务模块。
74.所述文档数据库模块分别与所述分片服务模块和点播服务模块通信连接;所述点播服务模块还与至少一个客户端通信连接。
75.所述分片服务模块用于采用如上述任一的水利数据分片存储方法将水利数据分片存储至文档数据库模块。
76.所述点播服务模块用于通过所述客户端接收的用户输入的点播服务请求数据,采用如上述任一所述的云端水利数据的点播方法进行点播,获取输出压缩文件,并将所述压缩文件发送至客户端。
77.本实施例中的水利数据处理系统中处理流程可为:步骤1、分片服务模块提取水动力模型结果文件数据。
78.步骤2、分片服务模块进行转换、压缩操作形成bson结构数据。
79.步骤3、将bson数据存入云端数据库。
80.步骤4、客户端接收点播服务请求数据。
81.步骤5、点播服务模块从云端数据库获取相应的数据。
82.步骤6、点播服务模块将数据转换成json,并压缩。
83.步骤7、点播服务模块返回数据。
84.以一种针对水动力模型数据进行分片存储并点播的方案为例。这个方案主要面向二维水动力模型的云端计算的场景,支持在云端解析、传输并点播的服务。
85.本实施例中的水利数据处理系统克服的是水利数据体积大,不支持流水传输的问题。通过对水利数据解析、分片、转换、压缩,将数据处理到易于传输的大小。在通过类似流式传输的方式,分批进行数据交互。
86.通过本系统所使用的方案,可以使水动力模型的结果渲染达到秒播的程度,省去了原来需要等待文件下载的过程,甚至可以跳帧查看结果。
87.本实施例中的一种水利数据处理系统,由于采用本发明的水利数据分片存储方法和本发明的云端水利数据的点播方法,能够通过对水利数据解析、分片、转换、压缩,将数据处理到易于传输的大小。在通过流式传输的方式,分批进行数据交互。支持单帧、多帧及抽帧点播服务,增强了用户的体验效果。
88.由于本发明上述实施例所描述的系统,为实施本发明上述实施例的方法所采用的系统,故而基于本发明上述实施例所描述的方法,本领域所属技术人员能够了解该系统的具体结构及变形,因而在此不再赘述。凡是本发明上述实施例的方法所采用的系统都属于本发明所欲保护的范围。
89.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
90.本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。
91.应当注意的是,在权利要求中,不应将位于括号之间的任何附图标记理解成对权利要求的限制。词语“包含”不排除存在未列在权利要求中的部件或步骤。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的权利要求中,这些装置中的若干个可以是通过同一个硬件来具体体现。词语第一、第二、第三等的使用,仅是为了表述方便,而不表示任何顺序。可将这些词语理解为部件名称的一部分。
92.尽管已描述了本发明的优选实施例,但本领域的技术人员在得知了基本创造性概念后,则可对这些实施例作出另外的变更和修改。所以,权利要求应该解释为包括优选实施例以及落入本发明范围的所有变更和修改。
93.显然,本领域的技术人员可以对本发明进行各种修改和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也应该包含这些修改和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1