Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020192225 - REMOTE SENSING DATA INDEXING METHOD FOR SPARK, SYSTEM AND ELECTRONIC DEVICE

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112  

权利要求书

1   2   3   4   5   6   7   8   9   10   11  

附图

1   2   3   4   5  

说明书

发明名称 : 一种面向Spark的遥感数据索引方法、系统及电子设备

技术领域

[0001]
本申请属于大数据应用技术领域,特别涉及一种面向Spark的遥感数据索引方法、系统及电子设备。

背景技术

[0002]
随着大数据云计算技术的发展,各个领域的数据也越来越多。遥感数据是卫星在太空运行所拍摄的图像信息,这些图像信息由于日积月累的拍摄和收集,遥感数据量已经越来越多,从而导致大量的存储和计算问题。
[0003]
传统上,不同的处理框架在实时性、可用性、批处理性能等方面对底层的存储系统都有不同的要求。遥感数据的存储与计算方法大都围绕空间数据库管理系统(SDBMS)而设计,SDBMS的存储能力很大程度上依赖于底层DBMS的性能。大规模的农情遥感数据和高并发访问对基于SDBMS的农情遥感数据存储与计算方法构成了强力挑战。从可扩展性上看,SDBMS一般是通过垂直扩展的方式,通过升级硬件如CPU、大容量内存、高速磁盘等来增强其处理的能力。由于技术和成本的原因,垂直扩展方式是不可持续的,同时也是能力、规模有限的扩展方式。从可用性上看,单机SDBMS固有的性能瓶颈以及单点失效的问题也使其很难适应大规模的并发访问。
[0004]
目前已经有很多种索引技术用来服务遥感数据的存储,用的最多的储存方法主要是按照经纬度存储、四叉树存储、R树存储等方式。经纬度索引存储方式主要思想是通过经纬度方式来建立索引表,而每一个索引块的大小通过使用者来界定或者由HDFS(Hadoop分布式文件系统)中的数据块来限制每一个 数据块的大小。此方式利于Spark等大数据框架的计算,因为它基于HDFS文件系统,并且适当的对文件进行切割,适用于大数据计算框架的接口。四叉树是通过将空间区域划分为四个子区域然后一直向下进行操作,然后得到最后不可划分的子节点之后建立的索引系统。R树是通过聚类的方式,将相近的节点结合在一起生成一颗树,然后相互嵌套生成整个树所生成的索引系统。
[0005]
基于以上的索引存储方法所建立的索引存储系统通常采用二级索引系统建立,即在第一层使用宏观的全局索引分类之后,再到二级的细节索引分类。这样的分类方式可以适应于不同的存储类型,并且可以有效的定义数据块的大小,方便管理和存储。国内外已经有很多的系统是基于这些索引存储系统所建立完成。Hadoop-GIS[Aji A,Wang F,Vo H,et al.Hadoop gis:a high performance spatial data warehousing system over mapreduce[J].Proceedings of the VLDB Endowment,2013,6(11):1009-1020.]是基于一个全局索引来完成索引的建立工作,用户可以界定每一个数据块的大小来方便存储和索引。SpatialHadoop[Eldawy A,Mokbel M F.Spatialhadoop:A mapreduce framework for spatial data[C].Data Engineering(ICDE),2015 IEEE 31st International Conference on.IEEE,2015:1352-1363.]是一个基于R树所建立的索引系统,主要是通过将数据分块的技术,然后通过Hadoop来完成相关的数据库索引工作。GeoSpark[Yu J,Wu J,Sarwat M.A demonstration of GeoSpark:A cluster computing framework for processing big spatial data[C].2016 IEEE 32nd International Conference on Data Engineering(ICDE).IEEE,2016:1410-1413.]是一种典型的用户定义式二级索引的遥感数据索引系统,它通过用户自定义数据块,然后通过经纬度和R或者四叉树来完成索引系统的建立。SHAHED[Eldawy A,Mokbel M F,Alharthi S,et al.Shahed:A mapreduce-based system for querying and visualizing spatio-temporal satellite data[C].2015 IEEE 31st International Conference on Data Engineering(ICDE).IEEE,2015:1585-1596.]是目前业界最成熟的索引系统,它主要是采用的两级索引方式完成的,第一层采用多维度和经纬度结合的方式,第二层采用竞争四叉树的方式建立索引。
[0006]
上述的索引存储方法都是各位学者在遥感大数据存储方向上所做的研究工作。这些存储方式各有优势,通过全局和局部双层存储的方式解决了索引快速查找的需求,但是可以看到有些数据库对于拓展等方面不够完善,也有对数据库拓展等建立的索引方法特别完善,但是忽略了整个数据库空间消耗的问题。各位学者的研究内容仅仅是在如何建立好的单一的索引系统,然后更加快速的查找或者获取信息,但单一的索引系统无法对多种不同的场景提供高效的索引系统,导致在索引文件时浪费大量的时间和资源,会降低整个处理系统的工作效率。
[0007]
目前最新的云计算技术Spark非常适用于处理大型数据集的运算,但是目前所存在的存储和索引方式无法对Spark的计算提供有效的数据支持,因此本申请预提供一种可以适应于Spark在不同场景下都可以进行高效计算的索引策略,使得在数据快速查找的同时,加速Spark的运算,使得资源和时间得到更高效的利用。
[0008]
发明内容
[0009]
本申请提供了一种面向Spark的遥感数据索引方法、系统及电子设备,旨在至少在一定程度上解决现有技术中的上述技术问题之一。
[0010]
为了解决上述问题,本申请提供了如下技术方案:
[0011]
一种面向Spark的遥感数据索引方法,包括以下步骤:
[0012]
步骤a:在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash和R树索引系统,并将所述四叉树、GeoHash和R树索引系统进行分别存放,得到面向Spark多索引共存的多索引存储系统;
[0013]
步骤b:选择索引策略选择器,建立Spark与所述多索引存储系统的对接;
[0014]
步骤c:基于所述索引策略选择器,根据计算场景分配对应的索引方式,根据所述索引方式在所述多索引存储系统中查找遥感数据。
[0015]
本申请实施例采取的技术方案还包括:所述步骤a还包括:获取遥感数据,并将所述遥感数据存储在HDFS文件系统中。
[0016]
本申请实施例采取的技术方案还包括:所述步骤a还包括:在HDFS文件系统中建立一层索引系统,并将所述索引系统存储在PostgreSQL数据库中。
[0017]
本申请实施例采取的技术方案还包括:所述步骤b还包括:在所述索引策略选择器上建立访问热区内存文件系统,通过机器学习寻找查询和计算的特征,分析得到热区内存文件系统的位置,完善热区内存文件系统的建立,并对不同的计算场景进行特征分析,得到适应于不同计算场景的索引策略选择器。
[0018]
本申请实施例采取的技术方案还包括:在所述步骤c中,所述根据计算场景分配对应的索引方式,根据索引方式在所述多索引存储系统中查找遥感数据具体包括:
[0019]
步骤c1:获取计算参数;
[0020]
步骤c2:判断所述计算参数适合的索引方式;
[0021]
步骤c3:选择索引方式,根据索引方式查找遥感数据,并将遥感数据传递给计算函数;
[0022]
步骤c4:驱动Spark计算;
[0023]
步骤c5:返回计算结果,并存储计算结果和计算记录;
[0024]
步骤c6:发布计算结果。
[0025]
本申请实施例采取的另一技术方案为:一种面向Spark的遥感数据索引系统,包括:
[0026]
多索引存储系统建立模块:用于在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash和R树索引系统,并将所述四叉树、GeoHash和R树索引系统进行分别存放,得到面向Spark多索引共存的多索引存储系统;
[0027]
索引对接模块:用于选择索引策略选择器,建立Spark与所述多索引存储系统的对接;
[0028]
数据索引模块:用于基于所述索引策略选择器,根据计算场景分配对应的索引方式,根据所述索引方式在所述多索引存储系统中查找遥感数据。
[0029]
本申请实施例采取的技术方案还包括:
[0030]
数据获取模块:用于获取遥感数据;
[0031]
数据存储模块:用于将所述遥感数据存储在HDFS文件系统中。
[0032]
本申请实施例采取的技术方案还包括:
[0033]
索引系统建立模块:用于在HDFS文件系统中建立一层索引系统;
[0034]
索引系统存储模块:用于将所述索引系统存储在PostgreSQL数据库中。
[0035]
本申请实施例采取的技术方案还包括:所述索引对接模块还用于在所述索引策略选择器上建立访问热区内存文件系统,通过机器学习寻找查询和计算的特征,分析得到热区内存文件系统的位置,完善热区内存文件系统的建立,并对不同的计算场景进行特征分析,得到适应于不同计算场景的索引策略选择器。
[0036]
本申请实施例采取的技术方案还包括:所述数据索引模块根据计算场景分配对应的索引方式,根据索引方式在所述多索引存储系统中查找遥感数据具体 包括:获取计算参数;判断所述计算参数适合的索引方式;选择索引方式,根据索引方式查找遥感数据,并将遥感数据传递给计算函数;驱动Spark计算;返回计算结果,并存储计算结果和计算记录;发布计算结果。
[0037]
本申请实施例采取的又一技术方案为:一种电子设备,包括:
[0038]
至少一个处理器;以及
[0039]
与所述至少一个处理器通信连接的存储器;其中,
[0040]
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的面向Spark的遥感数据索引方法的以下操作:
[0041]
步骤a:在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash和R树索引系统,并将所述四叉树、GeoHash和R树索引系统进行分别存放,得到面向Spark多索引共存的多索引存储系统;
[0042]
步骤b:选择索引策略选择器,建立Spark与所述多索引存储系统的对接;
[0043]
步骤c:基于所述索引策略选择器,根据计算场景分配对应的索引方式,根据所述索引方式在所述多索引存储系统中查找遥感数据。
[0044]
相对于现有技术,本申请实施例产生的有益效果在于:本申请实施例的面向Spark的遥感数据索引方法、系统及电子设备通过集成驱动多种索引方式,根据不同的计算场景分配索引方式,使得索引时间相对于单一的索引方式大幅度下降,对于计算遥感大数据的平台有了有力的支撑,并且适应Spark计算任务,可以快速高效的索引到所需文件,实现遥感数据的高效计算。本申请利用分布式存储系统加上索引的方式可以更高效的利用机器的存储性能,使得使用率增加。

附图说明

[0045]
图1是本申请实施例的多索引存储系统建立方法的流程图;
[0046]
图2是本申请实施例的多索引系统结构示意图;
[0047]
图3为基于多索引存储系统的遥感数据索引方法流程图;
[0048]
图4是本申请实施例的面向Spark的遥感数据索引系统的结构示意图;
[0049]
图5是本申请实施例提供的面向Spark的遥感数据索引方法的硬件设备结构示意图。

具体实施方式

[0050]
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
[0051]
针对现有技术中存在的不足,本申请通过在一些常见的空间数据索引的结构下,针对遥感数据建立一个面向Spark多索引共存的多索引存储系统,可以集成驱动多种索引方式,并且适应Spark计算任务,可以快速高效的索引到所需的文件,传递给计算函数,实现高效计算,不同的计算场景对应于不同的索引方法,从而充分的发挥各个索引系统的特点,适应于Spark高效计算。
[0052]
具体地,请参阅图1,是本申请实施例的多索引存储系统建立方法的流程图。本申请实施例的多索引存储系统建立方法包括以下步骤:
[0053]
步骤100:获取遥感数据;
[0054]
步骤110:将遥感数据存储在HDFS文件系统中;
[0055]
步骤110中,HDFS文件系统在遥感数据存储的过程中会产生另外两个副本,来保证它本身单一节点出现错误后可以通过其他的机器来恢复原文件,避免数据丢失,多副本的情况也对Spark的并行计算提供支持。
[0056]
步骤120:在HDFS文件系统中建立一层索引系统;
[0057]
步骤130:将索引系统存储在PostgreSQL数据库中;
[0058]
步骤140:在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash 和R树索引系统,并将四叉树、GeoHash和R树索引系统分别存放在PostgreSQL中三个不同的数据库下,得到一个面向Spark多索引共存的多索引存储系统;
[0059]
步骤140中,在建立索引系统时,每增加一个索引系统会增加三个文件副本存放在存储系统中。在本申请实施例中,为每个文件副本分别建立一层索引系统,在不增加数据冗余的情况下,实现多索引存储系统的建立。具体如图2所示,为本申请实施例的多索引系统结构示意图。
[0060]
经过研究发现,四叉树、Geohash和R树三种索引方式适合建立多索引存储系统,但是这三种索引方式都存在一定的局限性,其中,四叉树因为其结果是树状结构,在添加数据之后,索引会出现不平衡树的状态,这样会导致查找效率降低,使得计算效率降低。geohash只是空间索引的一种方式,特别适合点数据,而对线、面数据采用R树索引更有优势。R树直接存储对象的位置信息,但由于连续运动对象的位置会不断变化,导致频繁更新。R树结点的MBR(主引导记录)允许重叠,因此,在查找旧索引项时需要遍历多条路径。为了提高查询性能,R树要求MBR的边界尽可能紧凑,这会导致高昂的更新代价,因为边界上的对象很容易频繁地出入该MBR,而每次删除或插入操作都可以引起合并与分裂操作。
[0061]
因此,本申请通过将四叉树、Geohash和R树三种索引方式进行集成,使得上述三种索引方式在工作时互不干扰,并且为Spark提供数据支撑。而由于遥感数据存储在HDFS文件系统中,需要提供具体的存储路径,才可以得到Spark计算所需的遥感数据。因此需要在HDFS文件系统中建立一层索引系统,方便在计算的过程中查找所需的数据。Spark在进行遥感大数据的处理过程中会使用到不同的数据范围(时间,空间),这会导致单纯的索引系统压力过大,无法保证高效的提供所需数据。建立一个面向Spark多索引共存的索引系统,实现Spark与索引系统的对接,既能满足Spark的访问需求,又可以有效的提高Spark的计算能力。
[0062]
步骤150:通过学习得到一个合理的索引策略选择器,建立Spark与多索 引存储系统的对接,并在索引策略选择器上建立经常访问的数据的热区内存文件系统;
[0063]
步骤150中,由于索引系统本身的优缺点,使得索引策略选择器可以实现,当在进行不同指数计算,或者不同的范围进行计算时,所需要的数据量和数据格式都会影响索引的效率,因此本申请通过学习和实验得到一个合理的索引策略选择器,根据不同的场景分配索引方式,使得索引时间相对于单一的索引方式大幅度下降。
[0064]
具体的,索引策略选择器的选择具体包括:(1)在集群上搭建好Spark大数据处理框架,测试其功能是否完善,是否可以正常运行;(2)进行Spark与索引策略选择器的连接工作,测试接口是否可用,调整接口可用性,使得接口可以为Spark提供服务;(3)在实现对接的情况下,完成对不同场景下的计算测试工作。测试不用索引策略选择器的情况下,单一索引的工作情况,比较测试结果并优化索引策略选择器。
[0065]
同时,在索引策略选择器上建立访问热区内存文件系统,通过机器学习寻找查询和计算的特征,分析学习得到热区内存文件系统的位置,完善热区内存文件系统的建立,并对不同的计算场景进行特征分析,集成一个适应于不同场景的索引策略选择器,为Spark提供索引服务;可以有效的减少重复数据的搜索与查询,不仅可以减少内存开销,还可以提高计算效率。
[0066]
步骤160:基于索引策略选择器,根据不同的计算场景分配索引方式,根据索引方式在多索引存储系统中查找遥感数据并进行Spark计算;
[0067]
步骤160中,请一并参阅图3,为基于多索引存储系统的遥感数据索引方法流程图。其具体包括以下步骤:
[0068]
步骤161:获取计算参数;
[0069]
步骤162:判断参数适合的索引方式;
[0070]
步骤163:选择索引方式,根据索引方式查找遥感数据,并将遥感数据传递给计算函数;
[0071]
步骤164:驱动Spark计算;
[0072]
步骤165:返回计算结果,并存储计算结果和计算记录;
[0073]
步骤166:发布计算结果。
[0074]
请参阅图4,是本申请实施例的面向Spark的遥感数据索引系统的结构示意图。本申请实施例的面向Spark的遥感数据索引系统包括:
[0075]
数据获取模块:用于获取遥感数据;
[0076]
数据存储模块:用于将遥感数据存储在HDFS文件系统中;其中,HDFS文件系统在遥感数据存储的过程中会产生另外两个副本,来保证它本身单一节点出现错误后可以通过其他的机器来恢复原文件,避免数据丢失,多副本的情况也对Spark的并行计算提供支持。
[0077]
索引系统建立模块:用于在HDFS文件系统中建立一层索引系统;
[0078]
索引系统存储模块:用于将索引系统存储在PostgreSQL数据库中;
[0079]
多索引存储系统建立模块:用于在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash和R树索引系统,并将四叉树、GeoHash和R树索引系统分别存放在PostgreSQL中三个不同的数据库下,得到一个面向Spark多索引共存的多索引存储系统;其中,在建立索引系统时,每增加一个索引系统会增加三个文件副本存放在存储系统中。在本申请实施例中,为每个文件副本分别建立一层索引系统,在不增加数据冗余的情况下,实现多索引存储系统的建立。
[0080]
经过研究发现,四叉树、Geohash和R树三种索引方式适合建立多索引存储系统,但是这三种索引方式都存在一定的局限性,其中,四叉树因为其结果是树状结构,在添加数据之后,索引会出现不平衡树的状态,这样会导致查找效率降低,使得计算效率降低。geohash只是空间索引的一种方式,特别适合点数据,而对线、面数据采用R树索引更有优势。R树直接存储对象的位置信息,但由于连续运动对象的位置会不断变化,导致频繁更新。R树结点的MBR(主引导记录)允许重叠,因此,在查找旧索引项时需要遍历多条路径。为了提高查询性能,R树要求MBR的边界尽可能紧凑,这会导致高昂的更新代价,因为边界上的对象很容易频繁地出入该MBR,而每次删除或插入操作都可以 引起合并与分裂操作。
[0081]
因此,本申请通过将四叉树、Geohash和R树三种索引方式进行集成,使得上述三种索引方式在工作时互不干扰,并且为Spark提供数据支撑。而由于遥感数据存储在HDFS文件系统中,需要提供具体的存储路径,才可以得到Spark计算所需的遥感数据。因此需要在HDFS文件系统中建立一层索引系统,方便在计算的过程中查找所需的数据。Spark在进行遥感大数据的处理过程中会使用到不同的数据范围(时间,空间),这会导致单纯的索引系统压力过大,无法保证高效的提供所需数据。建立一个面向Spark多索引共存的索引系统,实现Spark与索引系统的对接,既能满足Spark的访问需求,又可以有效的提高Spark的计算能力。
[0082]
索引对接模块:用于通过学习得到一个合理的索引策略选择器,建立Spark与多索引存储系统的对接,并在索引策略选择器上建立经常访问的数据的热区内存文件系统;其中,由于索引系统本身的优缺点,使得索引策略选择器可以实现,当在进行不同指数计算,或者不同的范围进行计算时,所需要的数据量和数据格式都会影响索引的效率,因此本申请通过学习和实验得到一个合理的索引策略选择器,根据不同的场景分配索引方式,使得索引时间相对于单一的索引方式大幅度下降。
[0083]
具体的,索引策略选择器的选择具体包括:(1)在集群上搭建好Spark大数据处理框架,测试其功能是否完善,是否可以正常运行;(2)进行Spark与索引策略选择器的连接工作,测试接口是否可用,调整接口可用性,使得接口可以为Spark提供服务;(3)在实现对接的情况下,完成对不同场景下的计算测试工作。测试不用索引策略选择器的情况下,单一索引的工作情况,比较测试结果并优化索引策略选择器。
[0084]
同时,在索引策略选择器上建立访问热区内存文件系统,通过机器学习寻找查询和计算的特征,分析学习得到热区内存文件系统的位置,完善热区内存文件系统的建立,并对不同的计算场景进行特征分析,集成一个适应于不同场景的索引策略选择器,为Spark提供索引服务;可以有效的减少重复数据的搜 索与查询,不仅可以减少内存开销,还可以提高计算效率。
[0085]
数据索引模块:用于基于索引策略选择器,根据不同的计算场景分配索引方式,根据索引方式在多索引存储系统中查找遥感数据并进行Spark计算;具体的,数据索引方式包括:
[0086]
1:获取计算参数;
[0087]
2:判断参数适合的索引方式;
[0088]
3:选择索引方式,根据索引方式查找遥感数据,并将遥感数据传递给计算函数;
[0089]
4:驱动Spark计算;
[0090]
5:返回计算结果,并存储计算结果和计算记录;
[0091]
6:发布计算结果。
[0092]
图5是本申请实施例提供的面向Spark的遥感数据索引方法的硬件设备结构示意图。如图5所示,该设备包括一个或多个处理器以及存储器。以一个处理器为例,该设备还可以包括:输入系统和输出系统。
[0093]
处理器、存储器、输入系统和输出系统可以通过总线或者其他方式连接,图5中以通过总线连接为例。
[0094]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例的处理方法。
[0095]
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理系统。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0096]
输入系统可接收输入的数字或字符信息,以及产生信号输入。输出系统可包括显示屏等显示设备。
[0097]
所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个处理器执行时,执行上述任一方法实施例的以下操作:
[0098]
步骤a:在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash和R树索引系统,并将所述四叉树、GeoHash和R树索引系统进行分别存放,得到面向Spark多索引共存的多索引存储系统;
[0099]
步骤b:选择索引策略选择器,建立Spark与所述多索引存储系统的对接;
[0100]
步骤c:基于所述索引策略选择器,根据计算场景分配对应的索引方式,根据所述索引方式在所述多索引存储系统中查找遥感数据。
[0101]
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例提供的方法。
[0102]
本申请实施例提供了一种非暂态(非易失性)计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行以下操作:
[0103]
步骤a:在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash和R树索引系统,并将所述四叉树、GeoHash和R树索引系统进行分别存放,得到面向Spark多索引共存的多索引存储系统;
[0104]
步骤b:选择索引策略选择器,建立Spark与所述多索引存储系统的对接;
[0105]
步骤c:基于所述索引策略选择器,根据计算场景分配对应的索引方式,根据所述索引方式在所述多索引存储系统中查找遥感数据。
[0106]
本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行以下操作:
[0107]
步骤a:在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash和R树索引系统,并将所述四叉树、GeoHash和R树索引系统进行分别存放,得到面向Spark多索引共存的多索引存储系统;
[0108]
步骤b:选择索引策略选择器,建立Spark与所述多索引存储系统的对接;
[0109]
步骤c:基于所述索引策略选择器,根据计算场景分配对应的索引方式,根据所述索引方式在所述多索引存储系统中查找遥感数据。
[0110]
为了验证本申请的可行性和有效性,已经在实验中存储了300GB的数据集进行测试,在实验中整个索引系统运行正常,能为Spark的计算提供正确的索引,并且查找速度快,面对不同的计算场景可以使用不同的索引方式,进而加速计算。
[0111]
本申请实施例的面向Spark的遥感数据索引方法、系统及电子设备通过集成驱动多种索引方式,根据不同的计算场景分配索引方式,使得索引时间相对于单一的索引方式大幅度下降,对于计算遥感大数据的平台有了有力的支撑,并且适应Spark计算任务,可以快速高效的索引到所需文件,实现遥感数据的高效计算。本申请利用分布式存储系统加上索引的方式可以更高效的利用机器的存储性能,使得使用率增加。
[0112]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本申请中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本申请所示的这些实施例,而是要符合与本申请所公开的原理和新颖特点相一致的最宽的范围。

权利要求书

[权利要求 1]
一种面向Spark的遥感数据索引方法,其特征在于,包括以下步骤: 步骤a:在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash和R树索引系统,并将所述四叉树、GeoHash和R树索引系统进行分别存放,得到面向Spark多索引共存的多索引存储系统; 步骤b:选择索引策略选择器,建立Spark与所述多索引存储系统的对接; 步骤c:基于所述索引策略选择器,根据计算场景分配对应的索引方式,根据所述索引方式在所述多索引存储系统中查找遥感数据。
[权利要求 2]
根据权利要求1所述的面向Spark的遥感数据索引方法,其特征在于,所述步骤a还包括:获取遥感数据,并将所述遥感数据存储在HDFS文件系统中。
[权利要求 3]
根据权利要求2所述的面向Spark的遥感数据索引方法,其特征在于,所述步骤a还包括:在HDFS文件系统中建立一层索引系统,并将所述索引系统存储在PostgreSQL数据库中。
[权利要求 4]
根据权利要求1所述的面向Spark的遥感数据索引方法,其特征在于,所述步骤b还包括:在所述索引策略选择器上建立访问热区内存文件系统,通过机器学习寻找查询和计算的特征,分析得到热区内存文件系统的位置,完善热区内存文件系统的建立,并对不同的计算场景进行特征分析,得到适应于不同计算场景的索引策略选择器。
[权利要求 5]
根据权利要求4所述的面向Spark的遥感数据索引方法,其特征在于,在所述步骤c中,所述根据计算场景分配对应的索引方式,根据索引方式在所述多索引存储系统中查找遥感数据具体包括: 步骤c1:获取计算参数; 步骤c2:判断所述计算参数适合的索引方式; 步骤c3:选择索引方式,根据索引方式查找遥感数据,并将遥感数据传递给计算函数; 步骤c4:驱动Spark计算; 步骤c5:返回计算结果,并存储计算结果和计算记录; 步骤c6:发布计算结果。
[权利要求 6]
一种面向Spark的遥感数据索引系统,其特征在于,包括: 多索引存储系统建立模块:用于在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash和R树索引系统,并将所述四叉树、GeoHash和R树索引系统进行分别存放,得到面向Spark多索引共存的多索引存储系统; 索引对接模块:用于选择索引策略选择器,建立Spark与所述多索引存储系统的对接; 数据索引模块:用于基于所述索引策略选择器,根据计算场景分配对应的索引方式,根据所述索引方式在所述多索引存储系统中查找遥感数据。
[权利要求 7]
根据权利要求6所述的面向Spark的遥感数据索引系统,其特征在于,还包括: 数据获取模块:用于获取遥感数据; 数据存储模块:用于将所述遥感数据存储在HDFS文件系统中。
[权利要求 8]
根据权利要求7所述的面向Spark的遥感数据索引系统,其特征在于,还包括: 索引系统建立模块:用于在HDFS文件系统中建立一层索引系统; 索引系统存储模块:用于将所述索引系统存储在PostgreSQL数据库中。
[权利要求 9]
根据权利要求6所述的面向Spark的遥感数据索引系统,其特征在于, 所述索引对接模块还用于在所述索引策略选择器上建立访问热区内存文件系统,通过机器学习寻找查询和计算的特征,分析得到热区内存文件系统的位置,完善热区内存文件系统的建立,并对不同的计算场景进行特征分析,得到适应于不同计算场景的索引策略选择器。
[权利要求 10]
根据权利要求9所述的面向Spark的遥感数据索引系统,其特征在于,所述数据索引模块根据计算场景分配对应的索引方式,根据索引方式在所述多索引存储系统中查找遥感数据具体包括:获取计算参数;判断所述计算参数适合的索引方式;选择索引方式,根据索引方式查找遥感数据,并将遥感数据传递给计算函数;驱动Spark计算;返回计算结果,并存储计算结果和计算记录;发布计算结果。
[权利要求 11]
一种电子设备,包括: 至少一个处理器;以及 与所述至少一个处理器通信连接的存储器;其中, 所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述1至5任一项所述的面向Spark的遥感数据索引方法的以下操作: 步骤a:在PostgreSQL数据库中分别建立遥感数据的四叉树、GeoHash和R树索引系统,并将所述四叉树、GeoHash和R树索引系统进行分别存放,得到面向Spark多索引共存的多索引存储系统; 步骤b:选择索引策略选择器,建立Spark与所述多索引存储系统的对接; 步骤c:基于所述索引策略选择器,根据计算场景分配对应的索引方式,根据所述索引方式在所述多索引存储系统中查找遥感数据。

附图

[ 图 1]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5]