CN116383144A - 一种多源异构遥感数据存储方法和装置 - Google Patents
一种多源异构遥感数据存储方法和装置 Download PDFInfo
- Publication number
- CN116383144A CN116383144A CN202310294237.4A CN202310294237A CN116383144A CN 116383144 A CN116383144 A CN 116383144A CN 202310294237 A CN202310294237 A CN 202310294237A CN 116383144 A CN116383144 A CN 116383144A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- remote sensing
- sensing data
- storage
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000013500 data storage Methods 0.000 title claims abstract description 48
- 238000003860 storage Methods 0.000 claims abstract description 57
- 238000000638 solvent extraction Methods 0.000 claims abstract description 10
- 238000003780 insertion Methods 0.000 claims description 10
- 230000037431 insertion Effects 0.000 claims description 10
- 230000000903 blocking effect Effects 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 6
- 238000013479 data entry Methods 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 abstract description 7
- 230000008520 organization Effects 0.000 abstract description 5
- 238000010276 construction Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 23
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012098 association analyses Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012732 spatial analysis Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例提供了一种多源异构遥感数据存储方法。所述方法包括,获取当前遥感数据;根据所述当前遥感数据的索引的类型将所述索引插入到对应的索引树数据中,生成索引条目,将所述当前遥感数据进行分块,得到多个分块数据,根据所述分块数据的ID确定在数据存储结构中对应的存储位置;将存储节点和索引条目进行关联。以此方式,可以对大量多源异构遥感数据进行了高效组织和索引建设,支撑数据网络关系构建与自适应组织更新,实现数据高效智能管理。
Description
技术领域
本公开涉及地理信息数据处理领域,尤其涉及一种多源异构遥感数据存储方法和装置。
背景技术
随着遥感技术的高速发展,应用领域也在急速扩张,导致真实性检验数据的获取趋向于多源化、复杂化,这种现状给管理带来了极大的困难。如何对复杂的真实性检验数据进行有效的存储和管理,国内外相关领域的学者专家都已经做了大量的工作,并在相关领域取得了重大的进步,如今也有了很多成熟的真实性检验数据管理系统和软件对真实性检验数据据进行存储管理和调取。但这些软件无论是在存储的容量、索引的速度或者显示的效率来看,都是在单一方面比较突出,缺少既能满足存储需求又能兼顾快速查询的综合存储能力。
在数据大规模增长的时代,海量数据的有效存储和组织管理成为当前面临的重大挑战之一,海量遥感图像数据需基于三维数字地球进行发布和访问,未来数据规模将达到PB级,对空间数据的组织与存储提出了新的挑战。
在传统GIS软件中,各类卫星遥感影像以及数字高程等空间栅格数据主要采用文件存储,在进行影像处理、影像分析以及可视化时,实时从文件系统中读取,将数据加载到内存中进行数据范围裁剪和波段过滤等,这种方式对于大范围的栅格计算和分析可视化效率太低。
分布式数据库采用可扩展的系统架构,整合了集群中各节点的存储和计算资源,通过利用多台存储服务器分担存储负荷位,利用置服务器定位存储信息,可以满足对时空大数据的高效存储和快速访问。因此,越来越多的研究人员将分布式数据库应用到了空间数据的存储领域中。
发明内容
本公开提供了一种多源异构遥感数据存储方法和装置。
根据本公开的第一方面,提供了一种多源异构遥感数据存储方法。该方法包括:
获取当前遥感数据;
根据所述当前遥感数据的索引的类型将所述索引插入到对应的索引树数据中,生成索引条目,将所述当前遥感数据进行分块,得到多个分块数据,根据所述分块数据的ID确定在数据存储结构中对应的存储位置;其中,所述数据存储结构是分布式架构的数据库的数据存储结构,分布式架构的数据库中存储有多源异构遥感数据,所述多源异构遥感数据对应有多个不同维度的索引树数据;
将存储节点和索引条目进行关联,
进一步的,所述分布式架构的数据库的数据存储结构包括:
网络分布式文件系统,用于将所述遥感数据分散存放在多个物理服务器上;
元数据服务器,用于管理和存储所述遥感数据的元数据信息,并感知服务器集群状态并进行调度;
元数据日志服务器,用于备份所述元数据服务器的变化的日志文件;
数据存储服务器,用于对分块的遥感数据进行存储,并在数据插入时进行分块存储。
进一步的,所述分布式架构的数据库中存储有多源异构遥感数据包括:
其中,所述多源异构遥感数据包括结构化数据和半结构化数据;
将结构化数据利用所述分布式数据库的并行框架进行并行存储,半结构化数据使用文件系统进行存储。
进一步的,所述索引树数据是通过以下方式构建的:
选择二维,高度,三维,时间,二维—时间,三维—时间中至少两个的索引算子创建索引树;
将索引树的子节点作为索引数据条目。
进一步的,所述根据所述当前遥感数据的索引的类型将所述索引插入到对应的索引树数据中,生成索引条目包括:
根据所述根据当前接收到的遥感数据的索引类型创建对应的索引条目;
将所述索引条目增加至索引页中;
根据所述索引条目对索引树数据进行更新,将当前具有相同ID的索引条目替代前一索引条目更新至所述索引树数据中。
进一步的,所述根据所述索引条目对索引树数据进行更新还包括:
判断所述索引页中是否包含当前插入的数据ID;
若否,在所述索引页中创建对应的索引条目。
进一步的,所述将存储节点和索引条目进行关联包括:
将分块ID、分块数据、元数据、存储节点以表格形式进行存储生成分块表格;
根据分块ID、分块数据的空间索引信息形成的元数据表;
将元数据表和分块表格进行映射关联。
根据本公开的第二方面,提供了一种多源异构遥感数据存储装置。该装置包括:
数据获取模块,用于;获取当前遥感数据;
数据插入模块,用于根据所述当前遥感数据的索引的类型将所述索引插入到对应的索引树数据中,生成索引条目,将所述当前遥感数据进行分块,得到多个分块数据,根据所述分块数据的ID确定在数据存储结构中对应的存储位置;其中,所述数据存储结构是分布式架构的数据库的数据存储结构,分布式架构的数据库中存储有多源异构遥感数据,所述多源异构遥感数据对应有多个不同维度的索引树数据;
数据关联模块,用于将存储节点和索引条目进行关联。
根据本公开的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
本公开中针对地面观测数据多源异构数据特点,包括数据来源多,数据多样,数据量大,数据汇聚接收频次不一致,访问量大等特点,采用了对不同类型的数据进行不同的存入数据库的方式,从而利用关系数据库的数据关联能力,将栅格数据与矢量、属性等数据进行关联分析。并且采用4D R-Tree的自适应时空混合索引构建了多维度的索引算子,对数据进行了高效组织和索引建设,支撑数据网络关系构建与自适应组织更新,实现数据高效智能管理。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。附图用于更好地理解本方案,不构成对本公开的限定在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了根据本公开的实施例的多源异构遥感数据存储方法的流程图;
图2示出了根据本公开的实施例的多源异构遥感数据存储装置的框图;
图3示出了用来实现本公开实施例的多源异构遥感数据存储方法的电子设备框图;
图4示出了用来实现本公开实施例的多源异构遥感数据存储方法的数据库结构图;
图5示出了能够实施本公开的实施例的分块示意图;
图6示出了能够实施本公开的实施例的金字塔分块示例图;
图7示出了能够实施本公开的实施例的矢量数据多进程并行处理流程图;
图8示出了能够实施本公开的实施例的矢量数据多进程并行中后台进程处理流程图;
图9示出了能够实施本公开的实施例的索引更新流程示例图;
图10示出了能够实施本公开的实施例的数据插入流程图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开中,通过对栅格数据使用数据库栅格数据存储技术,进行快速入库和快速插入。在做金字塔、数据导入等,大型并行需求的时采用并行框架的海量时空数据处理技术,在分布式数据库里进行并行存储。针对时序数据采用时序数据中的实时数据聚类查询加速方法,将最新的数据插入索引树数据中最新的索引条目下,能更快速的查询到最新一条数据。针对不同维度的遥感数据,使用4D R-Tree的自适应时空混合索引技术,可以选择不同的索引算子,增加时空数据查询效率。
本公开的多源异构遥感数据存储方法包括以下步骤:
S1:获取当前遥感数据。
具体的,当前遥感数据可以通过客户端向元数据服务器发送写入请求,响应于写入请求获取当前遥感数据。
S2:根据所述当前遥感数据的索引的类型将所述索引插入到对应的索引树数据中,生成索引条目,将所述当前遥感数据进行分块,得到多个分块数据,根据所述分块数据的ID确定在数据存储结构中对应的存储位置;其中,所述数据存储结构是分布式架构的数据库的数据存储结构,分布式架构的数据库中存储有多源异构遥感数据,所述多源异构遥感数据对应有多个不同维度的索引树数据。
具体的,搭建分布式数据库,客户端向元数据服务器发送写入请求;将经过清洗、质检、处理后数据输入分布式数据库。其中,所述分布式数据库主要包括以下四个部分:
网络分布式文件系统:将数据分散存放在多个物理服务器上,而呈现给客户端的则是一个统一个资源。
元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据,主要有两个职责,一方面管理和存储元数据信息,另一方面感知集群状态并进行调度。Master是MFS的管理服务器,管理着整个MFS(Moose File System是一个具备容错功能的网络分布式文件系统,它将数据分布在网络中的不同服务器上,MooseFS通过FUSE使之看起来就是一个Unix的文件系统。)文件系统。Master除了负责分发用户请求外,还负责存储整个MFS系统中的数据文件的元信息。(元信息,或者是元数据就是“描述信息的信息,描述数据的数据”,在MFS中包括文件的大小、属性、文件存储路径等等)。Master是数据库入口,会认证客户端连接、处理到来的SQL命令。在Master组件中,会根据元数据情况在Segment之间分布工作负载、协调每一个Segment返回的结果以及把最终结果呈现给客户端程序。
元数据日志服务器(Metalogger):备份元数据服务器的变化日志文件,当元数据服务器损坏,可以从日志服务器中取得文件恢复。
Metalogger组件用于备份Master设备的metadata元数据信息,其文件类型为changelog_ml.*.mfs。Metalogger可以有一台或者多台。Metalogger组件的作用在于当Master出现问题时,通过很简单的操作让新的主服务器进行工作。
数据存储服务器(ChunkServer):真正存储数据的服务器,服务器越多,容量就越大,可靠性越高,性能越好,一方面负责数据的存储,另一方面负责数据一致性。
Chunkserver的底层按照chunk进行空间管理,但是chunk的切分粒度比较小,每chunk最大为64M,如果按照chunk进行分配,大量chunk分配会对元数据造成一定的压力,而且对性能也有影响。所有chunk的分配按照批量分配的原则,也就是一次性分配一批chunk。在chunk之上引入了一个segment的概念。Segment是一个逻辑概念,是数据存储和数据查询处理的节点,也是空间分配的基本单元,用户定义的表及其索引分布在数据库系统中的可用Segments中,每个Segments包含数据的不同部分,用户不会直接与数据库系统中的Segment操作,而是通过Master Host进行操作。在Chunkserver中,文件会按照segment为粒度去进行空间分配。Chunk外面包一层segment的好处是减少元数据量。
如图4所示,为数据库结构图。其中,数据冗余是通过副本机制进行实现的,副本数大于1即文件冗余存储时,同一文件的不同副本存放在不同的Chunkserver上,多个副本对外只体现出同一文件。在并发请求时,多副本同时响应可以提高响应率和降低存储服务器的负载。当服务器宕机或磁盘损坏数据丢失,若失效服务器数小于副本数,文件系统仍能保证数据的完整性。由于多副本的存在,无需为系统再做复杂的数据备份。
进一步的,所述获取的遥感数据包括结构化数据和半结构化数据;将结构化数据利用所述分布式数据库的并行框架进行并行存储,半结构化数据使用文件系统进行存储。
其中,结构化数据以栅格数据为主,通过扩展关系数据库存储模型,将栅格数据元信息和像素信息,以数据库存储模型进行存储,通过对存储模型构建时空索引,既可以支持基于大尺度时空范围的栅格数据快速检索,又可以利用关系数据库的数据关联能力,提供栅格数据与矢量、属性等数据进行关联分析。半结构化数据以遥感影像数据为主,以文件的方式存储在文件系统中;在数据处理场景中,需要将数据导入至专业软件中进行处理。在数据可视化场景用,为了实现大数规模数据、多尺度的快速浏览,需要首先将大的影像按金字塔的规则切割成小的瓦片,存储至文件系统或sqlite等轻量数据库中,供前端请求调用。
由于传统的数据存储模式有如下几个缺点:
(1)在数据分析处理场景中,需要将数据导入至相关软件,而这些软件多为客户端软件,需要将海量的数据从服务器拷贝至客户端,费时费力,造成存储资源浪费。
(2)在可视化场景,影像数据被按照TMS层级规则切割成瓦片,有些波段信息会被抛弃,为了迎合层级要求,还可能会导致分辨率的降低。
(3)传统的文件系统存储方式,会造成数据不能集中管理,数据容易丢失,数据迁移难度大等困难。
本公开针对传统栅格数据存储和管理的不足,在关系型空间数据库构建栅格模型,实现栅格数据在数据库中的组织、存储、索引和检索。
具体的,在数据库内部存储时,先对数据进行切块,方便管理、存储、及检索栅格影像数据。预设分块规则为,每块分块包含的像素点个数是256*256*3(波段),然后经过压缩算法以后,以二进制的方式存储在数据库系统中。切块坐标原点是左上角点,第0级不降采样。在图像边界处,像素数量不能达到256*256时,将空白像素补0,保证每块像素个数均为256*256;当波段数不是3的整数倍时,也会填充一个空白的波段(每个像素值都为0),保证总体像素数达到256*256*3。需要说明的是,针对不同的运行场景,相关人员也可以根据参数来调整相关属性,例如每个分块的大小和波段数,是否补齐像素值和波段数等等。
参见图5,以一幅存在8波段的影像为例,可以按照(256,256,3)这样的块大小来分块,那么分块后的结果就是图2所示结果,将该幅影像分为3块,第三块中缺少的波段的像素以全0的方式补齐。
图5中描述的是各分块数据对应的像素个数,具体到每个瓦片所占磁盘空间的大小,则需要依据像素对应的数据类型和所使用的压缩算法来确定。
根据在导入数据时指定的参数,上图中存储像素在内存中的排列方式也可能会有所不同。
参见图6,以一个金字塔分块构建过程为例。为了方便客户端能够根据当前分辨率来分级按块加载影像数据,还需要提供构建金字塔的功能。构建金字塔是对一个栅格数据按照不同层级进行切块。第0层是原始分辨率(第0层实际上就是上面分块一节的原始的分块数据),从第一层级开始,分辨率的宽和高都比原来缩小1/2,相应的切块的行和列也是原来的1/4,而栅格影像表示的区域则没有变化。这样,客户端可以在低分辨率情况下加载高层级的瓦片,从而实现快速显示、按需加载栅格数据的目的。
为了在数据库中能以最小的代价同时不牺牲读写性能的方式来存储影像,将分块ID、分块数据、元数据、存储节点以表格形式进行存储生成分块表格;根据分块ID、分块数据的空间索引信息形成的元数据表。
更为具体的,栅格元数据表中的raster字段是bestdb拓展的一个栅格元数据字段,其中包含了栅格数据的宽、高等基本信息、空间地理信息、通道元信息以及分块信息在内的原始信息。此表默认情况下对用户不可见,但是在执行导入数据的时候,会返回相应的raster值以供用户使用,用户可以将raster对象存储在自己的业务表中,然后通过bestdb提供的函数来操作raster对象,best内部会根据raster内部存储的信息来进行相应的操作。
chunk表存储了普通切块和金字塔切块后的分块数据,chunk表的表名不固定,而是由用户在导入和创建金字塔的时候指定,然后数据库内部会自动在bestdb_information下创建对应的表,然后将切块后的分块数据存储在此表中。每个分块数据都是二进制的形式存储在表中,每个数据仅包含了像素数据,不包含额外的例如宽、高、空间索引等相关的信息。分块表是bestdb中设计到操作像素值的相关函数的基础,因此和元数据表一样,此表默认配置下对用户不可见,用户也无法直接操作此表。
针对传统的文件系统存储方式的不足,分别对结构化数据和半结构化数据采用不同的并行处理策略。对于结构化数据,每一个像元上的计算形式相同且相对独立,单个像元计算任务复杂度低,因此多采用数据并行的策略,即在数据分块的基础上利用并行技术进行分析和处理。
对于半结构数据大部分是不定长结构,且实体之间存在着复杂的空间关系,从而导致如果仅简单地按照数据并行的划分方式,会导致数据量存在很大的差异,从而导致并行任务负载不均衡,数据通信成本高等问题。
因此,针对不同的场景和数据需求并行策略主要分为3个方向:第一:从数据划分策略入手,将问题转换为数据并行问题;第二:从并行算法入手,主要包括空间分析,空间关系运算等;第三:从并行框架入手,基于现有的并行框架以及大规模集群基础之上提升并行算法的执行效率。
参见图7,是基于PostgreSQL多进程并行框架,矢量数据并行批量导入具体流程示例。
PostgreSQL是多进程框架,主要包括守护进程(postmaster),辅助进程(bgwriter进程等)以及后台工作进程。这些进程被postgres启动、停止和监控,它们的生命周期与postmaster的状态紧密联系。其中,后台工作进程是用于执行特定任务而动态启动的进程。多进程之间通过共享内存来进行通信,共享内存在真正执行时完成内存的分配和创建,进程完成各自的生命周期之后,共享内存也随之释放。
进一步的,图8为矢量数据多进程并行中后台进程处理流程图。在主进程获取可用的后台进程个数,并根据可用进程数完成数据任务的划分,将各部分的划分信息保存在共享内存中。启动子进程之后,子进程由共享内存中获取待处理的任务元数据信息,并根据划分好的任务,执行相应的算法逻辑。同时,主进程阻塞等待各个后台进程执行完毕之后,再执行对应的事务提交以及内存释放等操作。主进程会监控中断信号,根据不同的中断信号,通知后台进程完成对应的信号操作。
后台进程执行相同的算法逻辑,读取矢量数据相关元数据信息,根据主进程分配的任务逐条读取数据并写入到缓存中,待缓存数据达到某一阈值之后,执行多数据的批量插入,再重复继续执行读取插入操作。具体流程如图所示。
在对遥感影像存储的同时,对切块后的各类数据的存储位置进行索引条目构建。
具体的,为了实现在时序数据中对实时数据进行查询分析,需要实现一种新的索引类型,不同于其他类型的索引,该索引在创建时指定数据对象的ID作为索引更新的依据,在有新的数据插入到表中的时候,索引自动进行更新。
索引的更新流程如下,可以看到,索引中对于相同ID的数据只保存了一个tid,该tid指向了时序表中的数据记录。在需要查询实时数据时,只需要检查索引,可以直接拿到最新的数据,提高查询效率。
为了能够支持不同维度自适应的时空混合索引,根据不同的业务场景和业务需求选择不同的索引算子,从而构建不同维度的索引树,目前4D R-Tree索引支持的维度组合为:2D,Z,3D,T,2D+T和3D+T(T是时间信息,Z是高度信息)共6个维度的时空检索算子。
索引创建过程:根据业务的具体需求,从2D,Z,3D,T,2D+T和3D+T中选择不同的索引算子创建索引。根据当前接收到的遥感数据的索引类型确定对应的索引算子,在所述索引算子所属的索引树数据下创建对应的索引条目;将所述索引条目增加至索引页中;从而根据所述索引条目对索引树数据进行更新,将当前具有相同ID的索引条目替代前一索引条目更新至索引树数据中。
参见图10为数据插入流程图。具体的,当索引树数据较少时(即每页索引页均预设了每页索引条目的阈值为N,当索引条目稀疏/未超出预设阈值时)或以及数据量较大(超过阈值N)。循环插入新的时空数据,直至索引页中数据项等于阈值N,执行picksplit函数(split(sep,maxsplit)切分字符串,返回切分后的列表)拆分当前索引页,分成新旧两组数据,并将新旧两组数据执行函数union进行合并。
对当前需要插入的遥感数据执行函数compress(函数对指定的字符串str进行压缩,并将压缩结果作为二进制字符串返回),将该遥感数据转换成索引类型,遍历找到索引树数据中对应的中间节点,选择待被插入的中间节点,将该索引条目追加到待被插入的中间节点的叶子节点的最尾位置,根据ID进行判断,判断在该中间节点下是否存在同一个ID对应的叶子节点Pold,若是合并Pold指向的叶子节点序列,生成中间节点,执行SOME(SameOrigin Method Execution,同源方式执行)函数,判断Pold和Pnew是否相等,如果不相等则用Pnew替换Pold。
S3:将存储节点和索引条目进行关联。
具体的,根据S2中生成的分块表格和元数据表中的ID与tid将分块后的遥感数据的存储节点和索引条目进行关联。
参见图9据插入过程将ID相同的放入索引树数据中时,可见该索引在创建时指定数据对象的ID作为索引更新的依据,在有新的数据插入到表中的时候,索引自动进行更新。索引的更新流程,索引中对于相同id的数据只保存了一个tid,该tid指向了时序表中的数据记录。在需要查询实时数据时,只需要检查索引,可以直接拿到最新的数据,提高查询效率。
具体的,4D R-tree查询采用的是最邻近搜索算法(nearest neighbor search),对于最近邻搜索来说,可以查询一个矩形或者一个点。先把根节点加入优先队列,然后查询优先队列中离查询的矩形或者点最近的项,直到优先队列被清空或者已经得到要求的邻居数。从优先队列顶端取出每个节点时先将其展开,然后把它的子节点插回优先队列。如果取出的是子节点就直接加入搜索结果。
数据查询围绕中间节点和叶子节点进行关系匹配操作。根据不同的运算符(目前支持相交,包含,被包含)来验证待查询属性是否与表中属性满足关系要求,如果满足则返回true,否则返回false。
(a)相交/包含:中间节点相交/包含,继续遍历中间节点指向的叶子节点,判断叶子节点是否满足相交/包含关系;
(b)被包含:与中间节点相交,继续遍历中间节点指向的叶子节点,判断叶子节点是否满足被包含的关系。
根据本公开的实施例,通过对栅格数据使用数据库栅格数据存储技术,进行快速入库和快速插入。在做金字塔、数据导入等,大型并行需求的时采用并行框架的海量时空数据处理技术,在分布式数据库里进行并行存储。针对时序数据采用时序数据中的实时数据聚类查询加速方法,将最新的数据插入索引树数据中最新的索引条目下,能更快速的查询到最新一条数据。针对不同维度的遥感数据,使用4D R-Tree的自适应时空混合索引技术,可以选择不同的索引算子,增加时空数据查询效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。
图2示出了根据本公开的实施例的一种多源异构遥感数据存储装置200的方框图。装置200包括:
数据获取模块210,用于;获取当前遥感数据;
数据插入模块220,用于根据所述当前遥感数据的索引的类型将所述索引插入到对应的索引树数据中,生成索引条目,将所述当前遥感数据进行分块,得到多个分块数据,根据所述分块数据的ID确定在数据存储结构中对应的存储位置;其中,所述数据存储结构是分布式架构的数据库的数据存储结构,分布式架构的数据库中存储有多源异构遥感数据,所述多源异构遥感数据对应有多个不同维度的索引树数据;
数据关联模块230,用于将存储节点和索引条目进行关联。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图3示出了可以用来实施本公开的实施例的电子设备300的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
设备300包括计算单元301,其可以根据存储在只读存储器(ROM)302中的计算机程序或者从存储单元308加载到随机访问存储器(RAM)303中的计算机程序,来执行各种适当的动作和处理。在RAM 303中,还可存储设备300操作所需的各种程序和数据。计算单元301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
设备300中的多个部件连接至I/O接口305,包括:输入单元306,例如键盘、鼠标等;输出单元307,例如各种类型的显示器、扬声器等;存储单元308,例如磁盘、光盘等;以及通信单元309,例如网卡、调制解调器、无线通信收发机等。通信单元309允许设备300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元301的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元301执行上文所描述的各个方法和处理,例如一种多源异构遥感数据存储方法。例如,在一些实施例中,一种多源异构遥感数据存储方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元308。在一些实施例中,计算机程序的部分或者全部可以经由ROM 302和/或通信单元309而被载入和/或安装到设备300上。当计算机程序加载到RAM 303并由计算单元301执行时,可以执行上文描述的一种多源异构遥感数据存储方法的一个或多个步骤。备选地,在其他实施例中,计算单元301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行一种多源异构遥感数据存储方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (10)
1.一种多源异构遥感数据存储方法,其特征在于,所述方法包括:
获取当前遥感数据;
根据所述当前遥感数据的索引的类型将所述索引插入到对应的索引树数据中,生成索引条目,将所述当前遥感数据进行分块,得到多个分块数据,根据所述分块数据的ID确定在数据存储结构中对应的存储位置;其中,所述数据存储结构是分布式架构的数据库的数据存储结构,分布式架构的数据库中存储有多源异构遥感数据,所述多源异构遥感数据对应有多个不同维度的索引树数据;
将存储节点和索引条目进行关联。
2.根据权利要求1所述的方法,其特征在于,所述分布式架构的数据库的数据存储结构包括:
网络分布式文件系统,用于将所述遥感数据分散存放在多个物理服务器上;
元数据服务器,用于管理和存储所述遥感数据的元数据信息,并感知服务器集群状态并进行调度;
元数据日志服务器,用于备份所述元数据服务器的变化的日志文件;
数据存储服务器,用于对分块的遥感数据进行存储,并在数据插入时进行分块存储。
3.根据权利要求1所述的方法,其特征在于,所述分布式架构的数据库中存储有多源异构遥感数据包括:
其中,所述多源异构遥感数据包括结构化数据和半结构化数据;
将结构化数据利用所述分布式数据库的并行框架进行并行存储,半结构化数据使用文件系统进行存储。
4.根据权利要求1所述的方法,其特征在于,所述索引树数据是通过以下方式构建的:
选择二维,高度,三维,时间,二维—时间,三维—时间中至少两个的索引算子创建索引树;
将索引树的子节点作为索引数据条目。
5.根据权利要求1所述的方法,其特征在于,所述根据所述当前遥感数据的索引的类型将所述索引插入到对应的索引树数据中,生成索引条目包括:
根据所述根据当前接收到的遥感数据的索引类型创建对应的索引条目;
将所述索引条目增加至索引页中;
根据所述索引条目对索引树数据进行更新,将当前具有相同ID的索引条目替代前一索引条目更新至所述索引树数据中。
6.根据权利要求5所述的方法,其特征在于,所述根据所述索引条目对索引树数据进行更新还包括:
判断所述索引页中是否包含当前插入的数据ID;
若否,在所述索引页中创建对应的索引条目。
7.根据权利要求1所述的方法,其特征在于,所述将存储节点和索引条目进行关联包括:
将分块ID、分块数据、元数据、存储节点以表格形式进行存储生成分块表格;
根据分块ID、分块数据的空间索引信息形成的元数据表;
将元数据表和分块表格进行映射关联。
8.一种多源异构遥感数据存储装置,其特征在于,所述装置包括:
数据获取模块,用于;获取当前遥感数据;
数据插入模块,用于根据所述当前遥感数据的索引的类型将所述索引插入到对应的索引树数据中,生成索引条目,将所述当前遥感数据进行分块,得到多个分块数据,根据所述分块数据的ID确定在数据存储结构中对应的存储位置;其中,所述数据存储结构是分布式架构的数据库的数据存储结构,分布式架构的数据库中存储有多源异构遥感数据,所述多源异构遥感数据对应有多个不同维度的索引树数据;
数据关联模块,用于将存储节点和索引条目进行关联。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一权利要求所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,其中,所述计算机指令用于使所述计算机执行根据权利要求1至7中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310294237.4A CN116383144A (zh) | 2023-03-23 | 2023-03-23 | 一种多源异构遥感数据存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310294237.4A CN116383144A (zh) | 2023-03-23 | 2023-03-23 | 一种多源异构遥感数据存储方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116383144A true CN116383144A (zh) | 2023-07-04 |
Family
ID=86978009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310294237.4A Pending CN116383144A (zh) | 2023-03-23 | 2023-03-23 | 一种多源异构遥感数据存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116383144A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056088A (zh) * | 2023-10-11 | 2023-11-14 | 武汉大学 | 一种基于MapReduce的多模态测图数据分布式并行计算方法及系统 |
CN117874157A (zh) * | 2024-03-12 | 2024-04-12 | 国家海洋技术中心 | 动态时空对象数据的自适应索引方法、产品、介质及设备 |
CN117931810A (zh) * | 2024-03-21 | 2024-04-26 | 成都歧明通信息科技有限公司 | 一种空间影像数据的结构化管理方法及系统 |
CN117931810B (zh) * | 2024-03-21 | 2024-05-31 | 成都歧明通信息科技有限公司 | 一种空间影像数据的结构化管理方法及系统 |
-
2023
- 2023-03-23 CN CN202310294237.4A patent/CN116383144A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056088A (zh) * | 2023-10-11 | 2023-11-14 | 武汉大学 | 一种基于MapReduce的多模态测图数据分布式并行计算方法及系统 |
CN117056088B (zh) * | 2023-10-11 | 2024-01-19 | 武汉大学 | 一种基于MapReduce的多模态测图数据分布式并行计算方法及系统 |
CN117874157A (zh) * | 2024-03-12 | 2024-04-12 | 国家海洋技术中心 | 动态时空对象数据的自适应索引方法、产品、介质及设备 |
CN117931810A (zh) * | 2024-03-21 | 2024-04-26 | 成都歧明通信息科技有限公司 | 一种空间影像数据的结构化管理方法及系统 |
CN117931810B (zh) * | 2024-03-21 | 2024-05-31 | 成都歧明通信息科技有限公司 | 一种空间影像数据的结构化管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797496B2 (en) | System and method for parallel support of multidimensional slices with a multidimensional database | |
US11704294B2 (en) | System and method for slowly changing dimension and metadata versioning in a multidimensional database environment | |
US11789978B2 (en) | System and method for load, aggregate and batch calculation in one scan in a multidimensional database environment | |
Tao et al. | Minimal mapreduce algorithms | |
CN116383144A (zh) | 一种多源异构遥感数据存储方法和装置 | |
US11093459B2 (en) | Parallel and efficient technique for building and maintaining a main memory, CSR-based graph index in an RDBMS | |
Im et al. | VisReduce: Fast and responsive incremental information visualization of large datasets | |
Hongchao et al. | Distributed data organization and parallel data retrieval methods for huge laser scanner point clouds | |
Jing et al. | An improved distributed storage and query for remote sensing data | |
US20220027381A1 (en) | System and method for real time data aggregation in a virtual cube in a multidimensional database environment | |
US20210081428A1 (en) | Techniques for in-memory spatial object filtering | |
US11256684B1 (en) | Applying relational algebraic operations to change result sets of source tables to update a materialized view | |
US11216416B2 (en) | Managing snapshotting of a dataset using an ordered set of B+ trees | |
Jhummarwala et al. | Parallel and distributed GIS for processing geo-data: an overview | |
CN109359205A (zh) | 一种基于地理格网的遥感影像切分方法及设备 | |
US11232095B2 (en) | Composite metadata objects for database systems | |
Xiao | A big spatial data processing framework applying to national geographic conditions monitoring | |
CN109492004A (zh) | 一种数字渔业异构数据存储方法、系统及装置 | |
US11841848B2 (en) | Stored procedures for incremental updates to internal tables for materialized views | |
US11868347B1 (en) | Rewriting queries to compensate for stale materialized views | |
Zhang et al. | Design and application of national reserved cultivated land resources investigation and evaluation database management system | |
CN116860790A (zh) | 地面观测数据的并行获取方法、装置、设备以及存储介质 | |
Liu et al. | Research on Effective Organization and Scheduling of Massive 3D Building Models for Constructing Digital Rural | |
CN117828112A (zh) | 栅格数据分片存储方法、装置、设备及存储介质 | |
Junior et al. | A Cost-Efficient Method for Big Geospatial Data on Public Cloud Providers |
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 |