CN116126942A - 一种多维空间气象网格数据分布式存储查询方法及系统 - Google Patents

一种多维空间气象网格数据分布式存储查询方法及系统 Download PDF

Info

Publication number
CN116126942A
CN116126942A CN202310087591.XA CN202310087591A CN116126942A CN 116126942 A CN116126942 A CN 116126942A CN 202310087591 A CN202310087591 A CN 202310087591A CN 116126942 A CN116126942 A CN 116126942A
Authority
CN
China
Prior art keywords
data
block
index
model
module
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
Application number
CN202310087591.XA
Other languages
English (en)
Other versions
CN116126942B (zh
Inventor
杨明
郑波
徐拥军
倪学磊
王舒
刘媛媛
王�琦
周薇薇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Meteorological Information Center Meteorological Data Center Of China Meteorological Administration
Original Assignee
National Meteorological Information Center Meteorological Data Center Of China Meteorological Administration
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Meteorological Information Center Meteorological Data Center Of China Meteorological Administration filed Critical National Meteorological Information Center Meteorological Data Center Of China Meteorological Administration
Priority to CN202310087591.XA priority Critical patent/CN116126942B/zh
Publication of CN116126942A publication Critical patent/CN116126942A/zh
Application granted granted Critical
Publication of CN116126942B publication Critical patent/CN116126942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A90/00Technologies having an indirect contribution to adaptation to climate change
    • Y02A90/10Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种多维空间气象网格数据分布式存储查询方法及系统,其包括:步骤1:构建多维空间的网格化数据模型;步骤1:构建多维空间的网格化数据模型;步骤2:基于构建的网格化数据模型,建立索引与数据的对应关系,将整个气象网格数据分解为多个数据块,形成数据块池;步骤3:将模型、索引‑数据
Figure DDA0004069264450000011
射关系存储到索引表,每个索引对应的数据块存储到分布式NoSQL数据库系统的数据表;步骤4:通过计算和查询索引,获取到索引对应的数据块,合并数据块形成新的网格数据集;步骤5:通过上述步骤,实现多维空间气象网格数据分布式存储查询系统。

Description

一种多维空间气象网格数据分布式存储查询方法及系统
技术领域
本发明设计气象服务技术领域,具体涉及一种多维空间气象网格数据分布式存储查询方法及系统。
背景技术
气象网格数据主要包括数值预报、卫星、雷达等数据产品,广泛应用于气象监测、气象预报和气象服务等方面,高效的数据存储与查询性能对气象业务和防灾减灾,具有非常重要的意义。由于气象网络数据具有数据量较大、多维等特征,且云计算技术已应用于气象大数据的存储和服务,但气象网格数据的存储和服务一直采用整块存储与服务,没有充分考虑到气象网格数据的多维和分布式等特征,从而导致存储和服务效率仍远不能满足大数据的要求,缺乏统一的存储结构,因此目前的对气象网格数据的存储和服务存在可扩展性差以及服务性能差的问题。
传统的气象网格数据存储方法采用按照一定的格式整块存储和服务的方法,其将网格数据按照一定的格式(常见有Grib格式、Netcdf或自定义格式)整块存储为文件或存储到非结构化数据库,该方法应用较广泛且简单,但是由于其存储特性,读取的数据量为整块数据,这导致网络传输花费大和查询效率低下,难以满足气象大数据的高性能、高并发存储和服务需求,气象数据的传统存储和服务方法在实时大数据存储、实时处理和服务方面遇到了许多挑战。因此,如何有效地实现气象数据的传输、存储和服务已成为一个亟待解决的问题。
发明内容
针对上述存在的问题,本发明提出了一种多维空间气象网格数据分布式存储查询方法及系统,将气象网格数据通过构建网格数据模型、建立索引数据关系,按照建立的模型和索引分解数据块,存储到不同的分布式存储节点;通过计算和查询索引,读取对应的部分数据,形成新的数据集,实现了数据的高效存储与查询目的。
实现本发明目的的技术解决方案为:
一种多维空间气象网格数据分布式存储查询方法,其特征在于,包括以下步骤:
步骤1:构建多维空间的网格化数据模型;
步骤2:基于构建的网格化数据模型,建立索引与数据的对应关系,将整个气象网格数据分解为多个数据块,形成数据块池;
步骤3:将模型、索引-数据
Figure BDA0004069264430000021
射关系存储到索引表,每个索引对应的数据块存储到分布式NoSQL数据库系统的数据表;
步骤4:通过计算和查询索引,获取到索引对应的数据,合并数据块形成新的网格数据集。
进一步地,步骤1构建的网格化数据模型包括表空间结构、表结构、行结构、主键结构、列结构、主键类型、列数据类型,其中表空间结构包括名称、描述、表集合属性;表结构包括名称、行集、数据存活时间、描述;行结构包括主键集、列集、描述;主键结构包括名称,类型、主键值;列结构包括名称、类型、列值;主键类型分为字符串、长整型、日期型、双浮点型、整型和集合;列数据类型包括字符串、长整型、日期型、双浮点型、整型、集合、数组、二进制、布尔型、单浮点型、键值型和集合型;
所述主键结构包括一组主键列;
所述列结构包括数据列和属性列,所述数据列包括:索引表存储索引-数据
Figure BDA0004069264430000031
射关系值以及数据表存储索引对应的数据块;属性列包括网格经纬度范围、格距、产品制作者、制作时间信息,用于存储网格数据的属性信息。
进一步地,步骤2的具体操作步骤包括:
步骤21:获取多维气象网格数据的地理范围、数据大小并将将整个气象网格数据分解为多个数据块,配置每个数据块的大小;
步骤22:根据公式(1)-(3),分别计算每个数据块的索引值、起始字节位置和结束字节位置;
1)数据块的索引值计算公式为:
Indexi=Tsize/BlockSizei  (1)
其中,Indexi表示第i个数据块的索引值,Tsise表示多维气象网格数据的单个场数据量,BlockSizei表示第i个数据块的定义的数据块大小;
2)每个数据块的起始字节位置和结束字节位置计算公式如下:
Bstartpos=Blocki/BlockSizei  (2)
Bendpos=Bstartpos+BlockSizei  (3)
其中,Bstartpos表示第i个数据块的起始字节位置,Blocki表示块号,BlockSizei表示第i个数据块的单块数据量大小,Bendpos表示第i个数据块的结束字节位置;
步骤23:根据公式(4)建立索引值与数据块的对应关系,再根据公式(5)合并数据库,形成数据-索引模型,并其存储到属性列;
BlockDi=read(Bstartpos,Bendpo:)  (4)
其中,BlockDi表示第i个数据块的数据,n表示数据块总数。
Dset=Map{BlockD1,BlockD2,…,BlockDn}  (5);
进一步地,步骤3的具体操作步骤包括:
步骤31:存储数据主键列(资料编码、时间、层次、时次)、属性列、数据列中的索引-数据
Figure BDA0004069264430000041
射关系值到分布式NoSQL数据库系统的索引表;
步骤32:每个索引对应的数据块存储到分布式NoSQL数据库系统的数据表。
进一步地,步骤4的具体操作步骤包括:
步骤41:读取某个网格场数据主键、索引和属性信息,获取单块数据量大小BlockSizei,单个数据所占字节数ByteSizei、地理信息范围最小经度为minLng,最小纬度为minLat,横向网格数Countx,纵向网格数County,横向网格间距Resx,纵向网格间距Resy
步骤42:通过公式(6),计算每个单块数据个数Si
Si=BlockSizei/ByteSizei  (6);
步骤43:按照地理范围,计算查询数据所在的块号Blocki
ILngj=(lhgj-minLng)/Resx    (7)
ILatk=(latk-minLat)/Resy    (8)
Blocki=(ILatk*Countx+ILngj)/Si  (9)
得到地理范围的所有数据块集Blockset
Blockset={Block1,Block2,…,Blockn}  (10)
其中,lngj表示查询地理范围中的第j个经度,latk表示查询地理范围中的第k个纬度,ILngj表示经度方向上的位置,ILatk表示纬度方向上的位置,n表示块数;
步骤44:按块号索引值Indexi,读取相应的列数据:
Dset=read(Map(Blockset))  (11)
其中,Map表示Indexi和Blocki
Figure BDA0004069264430000051
射关系;
步骤45:基于读取的块内数据Dset,从整体数据块中获取新的网格数据场并返回。
进一步地,步骤45的具体操作步骤包括:
步骤451:计算数据在块内的位置,公式如下:
BIi=Blocki%Si    (12)
其中,BIi表示数据在块内的序号。
步骤452:合并数据块,按照查询范围生成新的网格数据场NewDset,公式如下:
NewDset(i*Countx+j)=Dset(BIi)  (13)
步骤453:返回新的网格数据场NewDset
一种多维空间气象网格数据分布式存储查询系统,其特征在于,包括应用层、客户端SDK、服务端和数据层;
所述应用层,用于提供用户应用;
所述客户端SDK,用于为应用层的应用系统提供JAVA/Python/C#语言SDK和RestfulAPI,实现与服务端进行交互;
所述服务端,用于向客户端提供各种服务,其采用多节点分布式的方式,提供负载均衡、SDK服务端,数据层调用和操作功能;
所述数据层,用于数据库操作、模型建立、数据存储与查询,提供数据服务API、模型定义、库表操作、数据操作、算法扩展包、数据配置服务功能。
进一步地,所述数据层包括基本操作模块、模型与通用算法模型模块、数据库模型模块;
所述基本操作模块,包括数据服务API模块、客户端创建与初始化模块、数据库连接模块、表空间操作模块、表操作模块和客户端关闭模块;其中数据服务API模块,用于为服务端提供统一的模型定义、数据配置服务、数据库连接、表空间操作、表操作、客户端关闭API;客户端创建与初始化模块,用于创建系统对象、初始化API,包括配置信息读取、数据库连接和服务模块初始化;数据库连接模块,用于根据配置数据信息,进行数据库连接;表空间操作模块,用于提供创建、修改、删除表空间等操作的功能,调用服务层表空间操作模块,并接收服务层操作信息向用户返回;表操作模块,用于提供表创建、表属性修改、读写表、批量读写表、任意点查询、范围查询、几何和基于任意地理数据的查询、表删除的功能;客户端关闭模块,用于关闭NoSQL数据库连接,释放数据库资源;
所述模型与通用算法模型模块,包括模型类模块以及通用与算法类模块;其中所述的模型类模块,用于形状模型、数据模型,批处理、处理结果、版本模型,为整个系统提供模型支撑;所述算法类模块,用于提供字节转换、文件操作、数据加密、压缩、批任务通用类,提供分块、检索算法,为其他模块使用;
所述数据库模型模块包括通用异构模块和数据存储模型;其中所述的通用异构模块用于提供Cassandra等NoSQL数据库异构支撑;数据存储模型,用于将数据按照索引数据块关系存储结构,存储到NoSQL数据库的各个节点。
有益效果:
本发明提出了适合于多维空间气象网格数据的分布式存储与查询方法,在此基础上,构建了分布式气象网络数据存储与查询的系统实时应用表格系统ATS(ApplicationTable System),通过提出的数据模型、存储和查询方法和系统,解决了传统气象网格数据存储和服务存储查询效率不高,难以满足气象大数据的高性能、高并发需求的问题,保证了多维空间气象网格数据的存储与查询的高效和高并发。本发明采用多语言开发,具有可扩展性强,平台移植性高,为多维空间气象网格数据(如数值预报等)的应用提供支撑基础,使其发挥最大的价值。
附图说明
图1为本发明所提方法的示意图;
图2为本发明的索引数据块关系存储结构示意图;
图3为本发明所提系统的架构图;
图4为本发明所提系统的示意图;
图5为本发明所提系统返回地理范围内的网格数据示意图。
具体实施方式
为了使本领域的普通技术人员能更好的理解本发明的技术方案,下面结合附图和实施例对本发明的技术方案做进一步的描述。
本发明提出了一种多维空间气象网格数据分布式存储查询方法,其核心思路为:首先建立多维空间的气象网格数据模型;其次,基于所述的网格数据模型,按照自定义的数据块大小,通过计算网格数据与自定义数据块的起始字节位置和结束字节位置及索引值,将多维空间气象网格数据分解为若干个小的数据块,建立索引与数据的对应关系。索引和数据参数信息作为属性存储到数据库,数据以索引值为主键,存储到不同的数据池节点,从而构建统一的分布式存储模型;最后,通过计算和查询索引,获取到索引对应的数据池节点中的部分数据块,从而将大气象网格数据合理分解为多个数据块,实现数据存储与查询快速响应引擎和系统,其具体流程如附图1所示。
1、构建网格化数据模型
先针对多维空间气象网格数据,构建网格化数据模型。该网格化数据模型包括建立表空间、表、行、主键、列、索引和数据模型:
表空间结构(ATSKeyspace):名称、描述、表集合。
表结构(ATSTable):名称、行集、数据存活时间、描述。
行结构(ATSRow):主键集、列集、描述。
主键结构(ATSRowPrimaryKey):名称,类型、主键值。
列结构(ATSColumn):名称、类型、列值。
主键类型(ATSPrimaryKeyType):STRING(字符串),LONG(长整型),
DATETIME(日期型),DOUBLE(双浮点型),INTEGER(整型),INSET(集合)。
列数据类型(ATSColumnType):STRING(字符串),LONG(长整型),
DATETIME(日期型),DOUBLE(双浮点型),INTEGER(整型),INSET(集合)、ARRAY(数组),BINARY(二进制),BOOLEAN(布尔型),FLOAT(单浮点型),MAP(键值型),LIST(集合型)。
所述主键结构包括一组主键列,包括资料编码、时间、层次、时次;
所述列结构包括数据列和属性列,所述数据列包括:索引表存储索引-数据
Figure BDA0004069264430000091
射关系值以及数据表存储索引对应的数据块;属性列包括网格经纬度范围、格距、产品制作者、制作时间信息,用于存储网格数据的属性信息。
2、数据库索引存储和查询方法
包括以下步骤:
(1)获取多维气象网格数据的地理范围、数据大小和配置每个数据块的大小,数据块的大小根据不同的数据库系统特征设置;
(2)按照公式(1)-(3),分别计算获取每个数据块的索引值、起始字节位置和结束字节位置,将整个气象网格数据分解为多个数据块,建立索引与数据的对应关系存储到属性列。数据块的索引值计算如下:
Indexi=Tsize/BlockSizei  (1)
其中,Indexi表示第i个数据块的索引值,Tsize表示多维气象网格数据的单个场数据量,BlockSizei表示第i个数据块的定义的数据块大小。
将整个气象网格数据分解为多个数据块,每个数据块的起始字节位置和结束字节位置计算公式如下:
Bstartpos=Blocki/BlockSizei  (2)
Bendpos=Bstartpos+BlockSizei  (3)
其中,Bstartpos表示第i个数据块的起始字节位置,Blocki(从0至n)表示块号,BlockSizei表示第i个数据块的单块数据量大小(固定值),Bendpos表示第i个数据块的结束字节位置,i从0至n。
合并数据块,形成数据-索引模型:
BlockDi=read(Bstartpos,Bendpos)  (4)
其中,BlockDi表示第i个数据块的数据;
Dset=Map{BlockD1,BlockD2,…,BlockDn}  (5)
(3)存储数据主键集(资料编码、时间、层次、时次)、属性列、数据列(索引值);并将每个数据块存储到分布式NoSQL数据库系统。
(4)查询数据时,读取索引表数据及地理信息属性,根据地理信息范围和每个数据块的大小,计算需要读取的数据块存储位置,分别读取各个数据块并合并成整体数据。设查询的地理信息范围西经为wLng,东经为eLng,北纬为nLat,南纬为sLat。
(a)读取某个网格场数据主键、索引和属性信息,获取单块数据量大小BlockSizei,单个数据所占字节数ByteSizei、地理信息范围最小经度为minLng,最小纬度为minLat,横向网格数Countx,纵向网格数County,横向网格间距Resx,纵向网格间距Resy
(b)计算每个单块数据个数Si
Si=BlockSizei/ByteSizei    (6)
(c)按照地理范围,计算查询数据所在的块号Blocki
ILngj=(lngj-minLng)/Resx  (7)
ILatk=(latk-minLat)/Resy    (8)
Blocki=(ILatk*Countx+ILngj)/Si  (9)
得到地理范围的所有数据块集Blockset
Blockset={Block1,Block2,…,Blockn}  (10)
其中,lngj表示查询地理范围中的第j个经度,latk表示查询地理范围中的第k个纬度,ILngj表示经度方向上的位置,ILatk表示纬度方向上的位置,n表示块数。
(d)按块号索引值Indexi,读取相应的列数据:
Dset=read(Map(Blockset))   (11)
其中,Map表示Indexi和Blocki
Figure BDA0004069264430000121
射关系。
(5)根据查询地理信息范围从整体数据块中,获取地理信息范围内的数据并返回:
(a)按照公式(9),计算地理信息范围内的数据所在块号Blocki,按照公式(11),读取块内数据;
(b)计算数据在块内的位置,公式如下:
BIi=Blocki%Si  (12)
其中,BIi表示数据在块内的序号。
(c)合并数据块,按照查询范围生成新的网格数据场NewDset,公式如下:
NewDset(i*Countx+j)=Dset(BIi)  (13)
(d)返回新的网格数据场NewDset
本发明基于该方法,还提供一种多维空间气象网格数据分布式存储查询系统,其具体架构如图3所示。从图3中可知,本系统主要分为四个部分,分别是应用层、客户端SDK、服务端和数据层;
所述应用层,表示用户应用系统;
所述客户端SDK,用于为应用层的应用系统提供JAVA/Python/C#语言SDK和Restful API,实现与服务端进行交互;
所述服务端,用于向客户端提供各种服务,其采用多节点分布式的方式,提供负载均衡、SDK服务端,数据层调用和操作功能;
所述数据层,用于数据库操作、模型建立、数据存储与查询,提供数据服务API、模型定义、库表操作、数据操作、算法扩展包、数据配置服务功能,分为基本操作模块、模型与通用算法模型模块、数据库模型模块3个模块。
(1)基本操作模块
a.数据服务API模块:为服务端提供统一的模型定义、数据配置服务、数据库连接、表空间操作、表操作、客户端关闭API;
b.客户端创建与初始化模块:用于创建系统对象、初始化API,包括配置信息读取、数据库连接和服务模块初始化
c.数据库连接模块:根据配置数据信息(数据库类型、数据库连接地址、用户名和密码、表空间等信息),数据库连接模块;
d.表空间操作模块:提供创建、修改、删除表空间等操作的功能,调用服务层表空间操作模块,并接收服务层操作信息向用户返回;
e.表操作模块:提供表创建、表属性修改、读写表、批量读写表、任意点查询、范围查询、几何(点、线、面)和基于任意地理数据的查询、表删除的功能。提供了自适应数据分割、压缩、网格提取、插值和单点计算,以实现气象数据处理;
f.客户端关闭模块:关闭NoSQL数据库连接,释放数据库资源。
(2)模型与通用算法模型
a.模型类模块(自定义):定义了点、线、面、区域的形状模型,定义了表、行、列、数据、数据类型的数据模型,定义了批处理、处理结果、版本等辅助模型,为整个系统提供模型支撑。
b.通用与算法类模块:提供字节转换、文件操作、数据加密、压缩、批任务通用类,提供分块、检索算法,为其他模块使用。
(3)数据库模型
a.通用异构模块:通过抽象类,实现了通过数据库连接与操作类,提供Cassandra等NoSQL数据库异构支撑。
b.数据存储模型:通过继承通用异构类,数据按照索引数据块关系存储结构,进行存储到NoSQL数据库的各个节点。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。尽管参照前述实施例对本发明专利进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改。

Claims (8)

1.一种多维空间气象网格数据分布式存储查询方法,其特征在于,包括以下步骤:
步骤1:构建多维空间的网格化数据模型;
步骤2:基于构建的网格化数据模型,建立索引与数据的对应关系,将整个气象网格数据分解为多个数据块,形成数据块池;
步骤3:将模型、索引-数据
Figure FDA0004069264420000011
射关系存储到索引表,每个索引对应的数据块存储到分布式NoSQL数据库系统的数据表;
步骤4:通过计算和查询索引,获取到索引对应的数据,合并数据块形成新的网格数据集。
2.根据权利要求1所述的一种多维空间气象网格数据分布式存储查询方法,其特征在于,步骤1构建的网格化数据模型包括表空间结构、表结构、行结构、主键结构、列结构、主键类型、列数据类型,其中表空间结构包括名称、描述、表集合属性;表结构包括名称、行集、数据存活时间、描述;行结构包括主键集、列集、描述;主键结构包括名称,类型、主键值;列结构包括名称、类型、列值;主键类型分为字符串、长整型、日期型、双浮点型、整型和集合;列数据类型包括字符串、长整型、日期型、双浮点型、整型、集合、数组、二进制、布尔型、单浮点型、键值型和集合型;
所述主键结构包括一组主键列;
所述列结构包括数据列和属性列,所述数据列包括:索引表存储索引-数据
Figure FDA0004069264420000012
射关系值以及数据表存储索引对应的数据块;属性列包括网格经纬度范围、格距、产品制作者、制作时间信息,用于存储网格数据的属性信息。
3.根据权利要求1所述的一种多维空间气象网格数据分布式存储查询方法,其特征在于,步骤2的具体操作步骤包括:
步骤21:获取多维气象网格数据的地理范围、数据大小并将将整个气象网格数据分解为多个数据块,配置每个数据块的大小;
步骤22:根据公式(1)-(3),分别计算每个数据块的索引值、起始字节位置和结束字节位置;
1)数据块的索引值计算公式为:
Indexi=Tsize/BlockSizei    (1)
其中,Indexi表示第i个数据块的索引值,Tsize表示多维气象网格数据的单个场数据量,BlockSizei表示第i个数据块的定义的数据块大小;
2)每个数据块的起始字节位置和结束字节位置计算公式如下:
Bstartpos=Blocki/BlockSizei    (2)
Bendpos=Bstartpos+BlockSizei    (3)
其中,Bstartpos表示第i个数据块的起始字节位置,Blocki表示块号,BlockSizei表示第i个数据块的单块数据量大小,Bendpos表示第i个数据块的结束字节位置;
步骤23:根据公式(4)建立索引值与数据块的对应关系,再根据公式(5)合并数据库,形成数据-索引模型,并其存储到属性列;
BlockDi=read(Bstartpos,Bendpos)    (4)
其中,BlockDi表示第i个数据块的数据,n表示数据块总数;
Dset=Map{BlockD1,BlockD2,…,BlockDn}    (5)。
4.根据权利要求1所述的一种多维空间气象网格数据分布式存储查询方法,其特征在于,步骤3的具体操作步骤包括:
步骤31:存储数据主键列、属性列、数据列中的索引-数据
Figure FDA0004069264420000031
射关系值到分布式NoSQL数据库系统的索引表;
步骤32:每个索引对应的数据块存储到分布式NoSQL数据库系统的数据表。
5.根据权利要求2所述的一种多维空间气象网格数据分布式存储查询方法,其特征在于,步骤4的具体操作步骤包括:
步骤41:读取某个网格场数据主键、索引和属性信息,获取单块数据量大小BlockSizei,单个数据所占字节数ByteSizei、地理信息范围最小经度为minLng,最小纬度为minLat,横向网格数Countx,纵向网格数County,横向网格间距Resx,纵向网格间距Resy;
步骤42:通过公式(6),计算每个单块数据个数Si
Si=BlockSizei/ByteSizei    (6);
步骤43:按照地理范围,计算查询数据所在的块号Blocki
ILngj=(lngj-minLng)/Resx    (7)
ILatk=(latk-minLat)/Resy    (8)
Blocki=(ILatk*Countx+ILngj)/Si
(9)
得到地理范围的所有数据块集Blockset
Blockset={Block1,Block2,…,Blockn}
(10)
其中,lngj表示查询地理范围中的第j个经度,latk表示查询地理范围中的第k个纬度,ILngj表示经度方向上的位置,ILatk表示纬度方向上的位置,n表示块数;
步骤44:按块号索引值Indexi,读取相应的列数据:
Dset=read(Map(Blockset))    (11)
其中,Map表示Indexi和Blocki
Figure FDA0004069264420000041
射关系;
步骤45:基于读取的块内数据Dset,从整体数据块中获取新的网格数据场并返回。
6.根据权利要求4所述的一种多维空间气象网格数据分布式存储查询方法,其特征在于,步骤45的具体操作步骤包括:
步骤451:计算数据在块内的位置,公式如下:
BIi=Blocki%Si    (12)
其中,BIi表示数据在块内的序号;
步骤452:合并数据块,按照查询范围生成新的网格数据场NewDset,公式如下:
NewDset(i*Countx+j)=Dset(BIi)    (13)
步骤453:返回新的网格数据场NewDset
7.一种多维空间气象网格数据分布式存储查询系统,其特征在于,包括应用层、客户端SDK、服务端和数据层;
所述应用层,用于提供用户应用;
所述客户端SDK,用于为应用层的应用系统提供JAVA/Python/C#语言SDK和RestfulAPI,实现与服务端进行交互;
所述服务端,用于向客户端提供各种服务,其采用多节点分布式的方式,提供负载均衡、SDK服务端,数据层调用和操作功能;
所述数据层,用于数据库操作、模型建立、数据存储与查询,提供数据服务API、模型定义、库表操作、数据操作、算法扩展包、数据配置服务功能。
8.如权利要求7所述的一种多维空间气象网格数据分布式存储查询系统,其特征在于,所述数据层包括基本操作模块、模型与通用算法模型模块、数据库模型模块;
所述基本操作模块,包括数据服务API模块、客户端创建与初始化模块、数据库连接模块、表空间操作模块、表操作模块和客户端关闭模块;其中数据服务API模块,用于为服务端提供统一的模型定义、数据配置服务、数据库连接、表空间操作、表操作、客户端关闭API;客户端创建与初始化模块,用于创建系统对象、初始化API,包括配置信息读取、数据库连接和服务模块初始化;数据库连接模块,用于根据配置数据信息,进行数据库连接;表空间操作模块,用于提供创建、修改、删除表空间等操作的功能,调用服务层表空间操作模块,并接收服务层操作信息向用户返回;表操作模块,用于提供表创建、表属性修改、读写表、批量读写表、任意点查询、范围查询、几何和基于任意地理数据的查询、表删除的功能;客户端关闭模块,用于关闭NoSQL数据库连接,释放数据库资源;
所述模型与通用算法模型模块,包括模型类模块以及通用与算法类模块;其中所述的模型类模块,用于形状模型、数据模型,批处理、处理结果、版本模型,为整个系统提供模型支撑;所述算法类模块,用于提供字节转换、文件操作、数据加密、压缩、批任务通用类,提供分块、检索算法,为其他模块使用;
所述数据库模型模块包括通用异构模块和数据存储模型;其中所述的通用异构模块用于提供Cassandra等NoSQL数据库异构支撑;数据存储模型,用于将数据按照索引数据块关系存储结构,存储到NoSQL数据库的各个节点。
CN202310087591.XA 2023-02-09 2023-02-09 一种多维空间气象网格数据分布式存储查询方法 Active CN116126942B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310087591.XA CN116126942B (zh) 2023-02-09 2023-02-09 一种多维空间气象网格数据分布式存储查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310087591.XA CN116126942B (zh) 2023-02-09 2023-02-09 一种多维空间气象网格数据分布式存储查询方法

Publications (2)

Publication Number Publication Date
CN116126942A true CN116126942A (zh) 2023-05-16
CN116126942B CN116126942B (zh) 2023-11-24

Family

ID=86302557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310087591.XA Active CN116126942B (zh) 2023-02-09 2023-02-09 一种多维空间气象网格数据分布式存储查询方法

Country Status (1)

Country Link
CN (1) CN116126942B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117093641A (zh) * 2023-10-20 2023-11-21 中国电子科技集团公司第十五研究所 一种气象海洋格点数据综合处理方法及系统
CN117635796A (zh) * 2024-01-08 2024-03-01 国家气象中心(中央气象台) 一种三维气象网格数据处理方法、系统、装置及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102750294A (zh) * 2011-08-10 2012-10-24 新奥特(北京)视频技术有限公司 一种地形影像数据的生成方法、生成装置及生成系统
CN102999584A (zh) * 2012-11-14 2013-03-27 厦门亿力吉奥信息科技有限公司 电力gis跨平台空间数据服务方法及系统
CN103412962A (zh) * 2013-09-04 2013-11-27 国家测绘地理信息局卫星测绘应用中心 一种海量瓦片数据的存储方法及读取方法
CN107423422A (zh) * 2017-08-01 2017-12-01 武大吉奥信息技术有限公司 基于网格的空间数据分布式存储及检索方法和系统
CN110765331A (zh) * 2019-07-08 2020-02-07 中国人民解放军战略支援部队信息工程大学 一种时空数据的检索方法及系统
CN112214472A (zh) * 2020-09-02 2021-01-12 国家气象信息中心 气象格点数据的存储及查询方法、装置及存储介质
WO2021073242A1 (zh) * 2019-10-18 2021-04-22 蚂蚁区块链科技(上海)有限公司 索引创建和数据查询方法、装置及设备
CN113010525A (zh) * 2021-04-01 2021-06-22 东北大学 一种基于pid的海洋时空大数据并行knn查询处理方法
CN113626437A (zh) * 2021-08-09 2021-11-09 北京东方通科技股份有限公司 一种海量矢量数据快速查询方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102750294A (zh) * 2011-08-10 2012-10-24 新奥特(北京)视频技术有限公司 一种地形影像数据的生成方法、生成装置及生成系统
CN102999584A (zh) * 2012-11-14 2013-03-27 厦门亿力吉奥信息科技有限公司 电力gis跨平台空间数据服务方法及系统
CN103412962A (zh) * 2013-09-04 2013-11-27 国家测绘地理信息局卫星测绘应用中心 一种海量瓦片数据的存储方法及读取方法
CN107423422A (zh) * 2017-08-01 2017-12-01 武大吉奥信息技术有限公司 基于网格的空间数据分布式存储及检索方法和系统
CN110765331A (zh) * 2019-07-08 2020-02-07 中国人民解放军战略支援部队信息工程大学 一种时空数据的检索方法及系统
WO2021073242A1 (zh) * 2019-10-18 2021-04-22 蚂蚁区块链科技(上海)有限公司 索引创建和数据查询方法、装置及设备
CN112214472A (zh) * 2020-09-02 2021-01-12 国家气象信息中心 气象格点数据的存储及查询方法、装置及存储介质
CN113010525A (zh) * 2021-04-01 2021-06-22 东北大学 一种基于pid的海洋时空大数据并行knn查询处理方法
CN113626437A (zh) * 2021-08-09 2021-11-09 北京东方通科技股份有限公司 一种海量矢量数据快速查询方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHEN DONGHUI等: "HBase-based distributed storage system for meteorological gound minute data", JOURNAL OF COMPUTER APPLICATIONS, vol. 34, no. 9 *
徐拥军: "气象大数据存储体系设计与实现", 电子测量技术, vol. 43, no. 22 *
王新昊: "面向Web的大规模气象雷达数据三维可视化", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 04 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117093641A (zh) * 2023-10-20 2023-11-21 中国电子科技集团公司第十五研究所 一种气象海洋格点数据综合处理方法及系统
CN117635796A (zh) * 2024-01-08 2024-03-01 国家气象中心(中央气象台) 一种三维气象网格数据处理方法、系统、装置及介质

Also Published As

Publication number Publication date
CN116126942B (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
CN116126942B (zh) 一种多维空间气象网格数据分布式存储查询方法
Moniruzzaman et al. Nosql database: New era of databases for big data analytics-classification, characteristics and comparison
Zhang et al. Hbasespatial: A scalable spatial data storage based on hbase
CN102521386A (zh) 基于集群存储的空间元数据分组方法
CN107451225A (zh) 用于半结构化数据的可缩放分析平台
CN110275920A (zh) 数据查询方法、装置、电子设备及计算机可读存储介质
CN104239511B (zh) 一种面向MongoDB的用户空间文件系统实现方法
CN103714145A (zh) 关系型和Key-Value型数据库空间数据索引方法
WO2022105372A1 (zh) 时空关联数据的查询方法、装置、电子设备和存储介质
CN103399945A (zh) 一种基于云计算数据库系统的数据结构
US11500934B2 (en) POI recommendation method and device based on graph database, and storage medium
CN106991149B (zh) 一种融合编码和多版本数据的海量空间对象存储方法
Zhang et al. Improving NoSQL storage schema based on Z-curve for spatial vector data
CN111639075A (zh) 一种基于扁平化r树的非关系数据库矢量数据管理方法
Li NoSQL Databases
CN117520470A (zh) 基于GeoSOT网格编码的气象数据管理方法、装置及电子设备
de Souza Baptista et al. NoSQL geographic databases: an overview
CN113742505A (zh) 一种海量合成孔径雷达干涉测量(InSAR)数据在线可视化方法
CN116414867A (zh) 一种基于量化哈希编码的时空数据检索方法
Lai et al. A spatial multi-scale integer coding method and its application to three-dimensional model organization
CN113312823B (zh) 一种有限元后处理数据处理方法、系统、设备及存储介质
CN115730410A (zh) 基于配用电全息数据模型的电网配网网架拓扑构建方法
CN101877005A (zh) 一种基于文档模式的gml压缩方法
Weixin et al. The non-sql spatial data management model in big data time
CN114372034A (zh) 一种基于遥感影像地图服务的存取方法

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