CN115934669A - 一种三维瓦片存储与分发方法及装置 - Google Patents
一种三维瓦片存储与分发方法及装置 Download PDFInfo
- Publication number
- CN115934669A CN115934669A CN202211456772.7A CN202211456772A CN115934669A CN 115934669 A CN115934669 A CN 115934669A CN 202211456772 A CN202211456772 A CN 202211456772A CN 115934669 A CN115934669 A CN 115934669A
- Authority
- CN
- China
- Prior art keywords
- dimensional tile
- storage
- dimensional
- information
- tile
- 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
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种三维瓦片存储与分发方法,涉及三维GIS领域,特别涉及一种三维瓦片存储与分发方法和装置,其利用开源的分布式文件系统可实现海量三维瓦片存储管理,以解决海量瓦片分布式存储、高可用性及高效检索;基于结合lua脚本语言,调用分布式文件系统中的文件管理组件,实现瓦片目录组织管理和瓦片路径检索,简化瓦片存储管理与读写流程;同时结合应用服务器缓存机制,实现瓦片高效检索与快速响应。
Description
技术领域
本发明涉及三维GIS领域,特别涉及一种三维瓦片存储与分发方法和装置。
背景技术
随着地理信息技术、测绘技术不断发展,地理信息数据的获取能力得到了飞速提升,高精度、高频度、大覆盖的海量三维地理空间数据急剧增长。不同类型的三维地理空间数据(倾斜摄影模型、点云、精细模型等)的精度不同,代表着对现实世界表达的详细程度不同,分别应用于不同空间尺度的城市三维场景。这些具有数据体量大、更新速度快、数据类型繁多等特性的三维地理空间数据不仅增加了数据管理复杂度,而且增加了大场景下海量三维瓦片调度效率要求。
在现有技术中,对于海量三维瓦片存储管理方面还存在着某些不足之处。使用传统文件、数据库和分布式文件系统(fastdfs)是三维瓦片数据存储的常用方法。传统文件管理方式一般采用分层级(lod)、分文件存储,并按一定格式存储为磁盘文件。这种方式会产生数据存储量大,查询检索效率缓慢,海量数据读取响应时间长等问题。数据库管理方式一般将三维瓦片序列化后存储到mysql、postgresql等大型关系数据库中,虽然在查询检索和读取响应效率有一定改善和提升,但数据库占用存储空间大,迁移困难,高并发环境下瓦片调度延迟长等缺陷,无法满足海量三维瓦片存储与读取要求。分布式文件系统采用分组管理方式,将三维瓦片划分到不同分组进行存储,从而在海量存储、高可用及访问性能得到提升,但由于分布式文件系统中的文件标识有组名和文件名组成,其文件名是由分布式文件系统自动计算生成,无法保留三维瓦片原始名称,为解决后续三维瓦片调度加载,需要引入关系数据库进行维护三维瓦片原始名称与分布式文件系统中的文件标识的映射关系,增加了数据存储复杂度以及降低了三维瓦片调度效率。
因此,针对现有技术中存在的问题,亟需提供一种能够降低数据存储复杂度,提高三维瓦片调度效率的技术显得尤为重要。
发明内容
本发明的目的在于避免现有技术中的不足之处而提供一种能够降低数据存储复杂度,提高三维瓦片调度效率的三维瓦片存储与分发方法及装置。
本发明的目的通过以下技术方案实现:
因此,根据本发明公开的一个方面,提供了一种三维瓦片存储与分发方法,包括以下步骤:
S1:获取三维瓦片的读取请求信息,并解析出对应的路径信息;
S2:根据路径信息,在应用服务器的缓存中进行检索,判断缓存中是否存在三维瓦片对应的数据内容;若存在,返回三维瓦片对应的数据内容至用户端;若不存在,进入步骤S3;
S3:调取索引文件,并在索引文件中检索出三维瓦片的元数据信息;
S4:根据元数据信息,从数据卷服务器中读取三维瓦片对应的数据内容,并返回至用户端。
具体的,包括以下步骤:
S0:上传三维瓦片对应的数据内容,并存储在数据卷服务器中,同时根据对应的路径信息、数据内容的大小以及在数据卷服务器中的标识信息生成元数据信息。
更具体的,步骤S0还包括以下步骤:根据生成的元数据信息生成或更新对应的索引文件。
更具体的,步骤S0包括:通过seaweedfs客户端,把三维瓦片对应的数据内容上传至seaweedfs的文件管理组件;文件管理组件把上传的数据内容写入到seaweedfs的数据卷服务器,并在文件管理组件的存储目录下生成或更新索引文件。
更具体的,步骤S3包括:连接并调用文件管理组件的目录结构检索功能;文件管理组件调取存储目录中的索引文件,并根据索引文件的目录结构信息,检索出三维瓦片对应的元数据信息。
更具体的,存储目录中包括若干个索引文件,各个索引文件包括对应的三维瓦片的元数据信息。
以上的,应用服务器为openresty服务器;步骤S1包括:通过lua脚本语言对三维瓦片的读取请求信息进行解析,解析出对应的路径信息和服务器信息。
根据本发明公开的另一个方面,提供了一种三维瓦片存储与分发装置,采用上述的一种三维瓦片存储与分发方法,包括:解析模块、缓存查询模块、检索模块和数据加载模块;解析模块用于对获取的三维瓦片的读取请求信息进行解析,解析出对应的路径信息和服务器信息;缓存查询模块用于根据路径信息,在应用服务器的缓存中进行检索,判断缓存中是否存在三维瓦片对应的数据内容;检索模块用于调取索引文件,并在索引文件中检索出三维瓦片的元数据信息;数据加载模块用于根据元数据信息,从数据卷服务器中读取三维瓦片对应的数据内容,并返回。
根据本发明公开的再一方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,处理器执行指令时实现如上一种三维瓦片存储与分发方法的步骤。
根据本发明公开的另一方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如上一种三维瓦片存储与分发方法的步骤。
本发明的有益效果:一种三维瓦片存储与分发方法,利用开源的分布式文件系统可实现海量三维瓦片存储管理,以解决海量瓦片分布式存储、高可用性及高效检索;基于结合lua脚本语言,调用分布式文件系统中的文件管理组件,实现瓦片目录组织管理和瓦片路径检索,简化瓦片存储管理与读写流程;同时结合应用服务器缓存机制,实现瓦片高效检索与快速响应。
附图说明
通过结合附图对于本发明公开的示例性实施例进行描述,可以更好地理解本发明,在附图中:
图1所示的是根据本发明公开实施例一的一种三维瓦片存储与分发方法示意性流程图;
图2所示的是根据本发明公开实施例一的一种三维瓦片存储与分发装置的程序模块示意图;
图3所示的是根据本发明公开实施例一的计算设备的硬件结构示意图。
具体实施方式
以下将描述本发明的具体实施方式,需要指出的是,在这些实施方式的具体描述过程中,为了进行简明扼要的描述,本说明书不可能对实际的实施方式的所有特征均作详尽的描述。应当可以理解的是,在任意一种实施方式的实际实施过程中,正如在任意一个工程项目或者设计项目的过程中,为了实现开发者的具体目标,为了满足系统相关的或者商业相关的限制,常常会做出各种各样的具体决策,而这也会从一种实施方式到另一种实施方式之间发生改变。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本发明公开的内容相关的本领域的普通技术人员而言,在本发明揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本发明的内容不充分。
除非另作定义,权利要求书和说明书中使用的技术术语或者科学术语应当为本发明所属技术领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“一个”或者“一”等类似词语并不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的元件或者物件及其等同元件,并不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,也不限于是直接的还是间接的连接。
实施例一
请参阅图1所示,一种三维瓦片存储与分发方法,包括文件存储方法和文件分发方法,具体包括以下步骤:
文件存储:
S0:上传三维瓦片对应的数据内容,并存储在数据卷服务器中,同时根据对应的存储路径的路径信息、数据内容的大小以及在数据卷服务器中的标识信息生成元数据信息;根据生成的元数据信息生成或更新对应的索引文件。
更具体的,步骤S0包括以下步骤:
S01:用户端读取需要上传的三维瓦片的文件(包括三维瓦片对应的名称和数据内容),并通过seaweedfs客户端,把三维瓦片对应的数据内容上传至seaweedfs的文件管理组件(filer);其中,seaweedfs是一种分布式文件系统;
S02:通过文件管理组件把上传的数据内容写入到seaweedfs的数据卷服务器(volumeserver);
S03:在文件管理组件的存储目录下生成或更新索引文件。
文件分发:
在本申请中,用户端基于开源web容器openresty(即应用服务器),结合lua脚本语言,开发出瓦片分发装置,来实现文件分发,具体包括以下步骤:
S1:获取三维瓦片的读取请求信息,并解析出对应的路径信息以及服务器信息;
其中,请求信息包括三维瓦片对应的存储地址;路径信息即三维瓦片对应的存储目录路径。
具体的,通过lua脚本语言对三维瓦片的读取请求信息进行解析。
S2:根据路径信息和服务器信息,在应用服务器的缓存中进行检索,判断缓存中是否存在三维瓦片对应的数据内容;若存在,返回三维瓦片对应的数据内容至用户端;若不存在,进入步骤S3;
S3:调取索引文件,并在索引文件中检索出三维瓦片的元数据信息;
S4:根据元数据信息,从数据卷服务器中读取三维瓦片对应的数据内容,并返回至用户端。
具体的,步骤S3包括:连接并调用文件管理组件的目录结构检索功能;通过文件管理组件调取存储目录中的索引文件,并根据索引文件的目录结构信息,检索出三维瓦片对应的元数据信息。
其中,存储目录中包括若干个索引文件,各个索引文件包括对应的三维瓦片的元数据信息。
请继续参阅图2,示出了一种三维瓦片存储与分发装置,在本实施例中,一种三维瓦片存储与分发装置可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述一种三维瓦片存储与分发方法。本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述一种三维瓦片存储与分发装置在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:其中,包括:解析模块、缓存查询模块、检索模块和数据加载模块。
解析模块用于对获取的三维瓦片的读取请求信息进行解析,解析出对应的路径信息和服务器信息。
缓存查询模块用于根据路径信息,在应用服务器的缓存中进行检索,判断缓存中是否存在三维瓦片对应的数据内容。
检索模块用于调取索引文件,并在索引文件中检索出三维瓦片的元数据信息。
数据加载模块用于根据元数据信息,从数据卷服务器中读取三维瓦片对应的数据内容,并返回至用户端。
本实施例还提供一种计算设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图3所示。需要指出的是,图3仅示出了具有组件21-22的计算设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算设备20的内部存储单元,例如该计算设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算设备20的外部存储设备,例如该计算设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算设备20的操作系统和各类应用软件,例如实施例一的一种三维瓦片存储与分发装置的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行一种三维瓦片存储与分发装置,以实现实施例一的一种三维瓦片存储与分发方法。
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储一种三维瓦片存储与分发装置,被处理器执行时实现实施例一的一种三维瓦片存储与分发方法。
综上所述,根据示例性实施例,本申请的一种三维瓦片存储与分发方法,利用开源的分布式文件系统可实现海量三维瓦片存储管理,以解决海量瓦片分布式存储、高可用性及高效检索;基于结合lua脚本语言,调用分布式文件系统中的文件管理组件,实现瓦片目录组织管理和瓦片路径检索,简化瓦片存储管理与读写流程;同时结合应用服务器缓存机制,实现瓦片高效检索与快速响应。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。流程图中或在此以其它方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
本技术领域的普通技术人员可以理解,实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种三维瓦片存储与分发方法,其特征在于,包括以下步骤:
S1:获取三维瓦片的读取请求信息,并解析出对应的路径信息;
S2:根据所述路径信息,在应用服务器的缓存中进行检索,判断所述缓存中是否存在所述三维瓦片对应的数据内容;若存在,返回所述三维瓦片对应的数据内容至用户;若不存在,进入步骤S3;
S3:调取索引文件,并在所述索引文件中检索出所述三维瓦片的元数据信息;
S4:根据所述元数据信息,从数据卷服务器中读取所述三维瓦片对应的数据内容,并返回至用户端。
2.根据权利要求1所述的一种三维瓦片存储与分发方法,其特征在于,包括以下步骤:
S0:上传三维瓦片对应的数据内容,并存储在数据卷服务器中,同时根据对应的路径信息、数据内容的大小以及在数据卷服务器中的标识信息生成元数据信息。
3.根据权利要求2所述的一种三维瓦片存储与分发方法,其特征在于,所述步骤S0还包括以下步骤:
根据生成的元数据信息生成或更新对应的索引文件。
4.根据权利要求3所述的一种三维瓦片存储与分发方法,其特征在于:
所述步骤S0包括:通过seaweedfs客户端,把三维瓦片对应的数据内容上传至seaweedfs的文件管理组件;
所述文件管理组件把上传的数据内容写入到seaweedfs的数据卷服务器,并在所述文件管理组件的存储目录下生成或更新所述索引文件。
5.根据权利要求4所述的一种三维瓦片存储与分发方法,其特征在于:
所述步骤S3包括:连接并调用所述文件管理组件的目录结构检索功能;所述文件管理组件调取存储目录中的索引文件,并根据所述索引文件的目录结构信息,检索出所述三维瓦片对应的元数据信息。
6.根据权利要求5所述的一种三维瓦片存储与分发方法,其特征在于:
所述存储目录中包括若干个索引文件,各个所述索引文件包括对应的三维瓦片的元数据信息。
7.根据权利要求1至6任一项所述的一种三维瓦片存储与分发方法,其特征在于:
所述应用服务器为openresty服务器;
所述步骤S1包括:通过lua脚本语言对所述三维瓦片的读取请求信息进行解析,解析出对应的路径信息和服务器信息。
8.一种三维瓦片存储与分发装置,其特征在于,采用权利要求1至7任一项所述的一种三维瓦片存储与分发方法,包括:解析模块、缓存查询模块、检索模块和数据加载模块;
所述解析模块用于对获取的三维瓦片的读取请求信息进行解析,解析出对应的路径信息和服务器信息;
所述缓存查询模块用于根据所述路径信息,在应用服务器的缓存中进行检索,判断所述缓存中是否存在所述三维瓦片对应的数据内容;
所述检索模块用于调取索引文件,并在所述索引文件中检索出所述三维瓦片的元数据信息;
所述数据加载模块用于根据所述元数据信息,从数据卷服务器中读取所述三维瓦片对应的数据内容,并返回。
9.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1至7任意一项所述方法的步骤。
10.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1至7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211456772.7A CN115934669A (zh) | 2022-11-21 | 2022-11-21 | 一种三维瓦片存储与分发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211456772.7A CN115934669A (zh) | 2022-11-21 | 2022-11-21 | 一种三维瓦片存储与分发方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934669A true CN115934669A (zh) | 2023-04-07 |
Family
ID=86556705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211456772.7A Pending CN115934669A (zh) | 2022-11-21 | 2022-11-21 | 一种三维瓦片存储与分发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934669A (zh) |
-
2022
- 2022-11-21 CN CN202211456772.7A patent/CN115934669A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9678969B2 (en) | Metadata updating method and apparatus based on columnar storage in distributed file system, and host | |
US9377959B2 (en) | Data storage method and apparatus | |
US9424271B2 (en) | Atomic incremental load for map-reduce systems on append-only file systems | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN111339041A (zh) | 文件解析入库、文件生成方法及装置 | |
CN102033948A (zh) | 一种数据更新方法和装置 | |
CN114138776A (zh) | 图结构和图属性分离设计的方法、系统、装置和介质 | |
CN114780641A (zh) | 多库多表同步方法、装置、计算机设备和存储介质 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
US20190188291A1 (en) | Utilization of Optimized Ordered Metadata Structure for Container-Based Large-Scale Distributed Storage | |
CN111414422B (zh) | 一种数据分布方法、装置、设备和存储介质 | |
CN115470235A (zh) | 一种数据处理方法、装置以及设备 | |
CN115080114B (zh) | 应用程序的移植处理方法、装置和介质 | |
US10572452B1 (en) | Context-based read-ahead for B+ tree data structures in a deduplication system | |
CN103809915A (zh) | 一种磁盘文件的读写方法和装置 | |
CN114297196B (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
CN115934669A (zh) | 一种三维瓦片存储与分发方法及装置 | |
CN115586872A (zh) | 一种容器镜像管理方法、装置、设备及存储介质 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN115114297A (zh) | 数据轻量存储及查找方法、装置、电子设备及存储介质 | |
CN113608724A (zh) | 一种基于模型缓存实现的离线仓库实时交互方法与系统 | |
CN113672556A (zh) | 一种批量文件的迁移方法及装置 | |
CN114911886B (zh) | 一种遥感数据的切片方法、装置和云服务器 | |
CN115421785B (zh) | 应用程序的移植处理方法、装置和介质 | |
CN115840786B (zh) | 一种数据湖数据同步方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |