CN105354310A - 基于MapReduce的地图瓦片存储布局优化方法 - Google Patents
基于MapReduce的地图瓦片存储布局优化方法 Download PDFInfo
- Publication number
- CN105354310A CN105354310A CN201510758865.9A CN201510758865A CN105354310A CN 105354310 A CN105354310 A CN 105354310A CN 201510758865 A CN201510758865 A CN 201510758865A CN 105354310 A CN105354310 A CN 105354310A
- Authority
- CN
- China
- Prior art keywords
- tile
- indexvalue
- map
- map tile
- indexkey
- 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
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及基于MapReduce的地图瓦片存储布局优化方法,包括步骤:Map任务根据瓦片索引表计算出IndexKey对应的Number,将输入的(IndexKey,IndexValue)转换为(Number,IndexValue)输出;自定义分区算法将得到的(Number,IndexValue)进行分区;每个Reduce任务获得专属分区号的(Number,IndexValue),自定义分组算法进行分组,最终根据IndexValue读取瓦片数据,再重新写到新瓦片打包文件,更新索引项指向新打包文件;瓦片重新写入结束后删除旧打包文件。本发明满足了快速读取瓦片的需求,提高了系统性能,不影响瓦片生成存储的速度,保证了瓦片生成后以及在地图瓦片存储布局优化的过程中,瓦片正常对外提供服务。
Description
技术领域
本发明属于分布式存储技术领域,具体涉及一种基于MapReduce的地图瓦片存储布局优化方法。
背景技术
地理信息系统(GeographicInformationSystem,GIS)是一个运用计算机科学对地理信息进行采集、存储、管控、检索、处理、分析和显示的综合性技术系统。GIS具有数据量大、需要复杂的空间处理与分析等特点,而云计算技术具有分布式存储、高吞吐量、分布式计算、负载均衡、扩展性、数据备份以及错误恢复等特点,所以使得云计算广泛地应用在GIS领域中。目前,国内外的公司和研究机构相继推出各自的GIS产品,包括国外的MapXtreme、GeoMediaWebMap、MapServer、MapGuide以及GoogleMaps等,国内的SuperMap、MapGIS和GeoBeans等。
GIS产品主要是向用户输出大数据量的点阵形式的地图,并在其中包含了诸如空间数据的检索、查询等常见内容。传统的GIS产品提供的图片是由GIS服务器实时动态渲染生成的。而由于服务器通常需要比较长的时间才能将用户感兴趣区域的地图转换为图片格式,因此很大程度上影响了GIS产品的响应速度。在“地图瓦片”概念提出后,以瓦片金字塔为模型的地图瓦片预生成方案通过对地图进行预先切片生成地图瓦片后将其存储在地图服务器端,取代图片的实时动态渲染生成,从而有效的解决了GIS产品服务的效率问题。所谓地图切片是指将指定地理范围内的地图,在某一比例尺级别下,切割成若干行和列均为固定尺寸的正方形图片的过程,这些规整的图片又称为地图瓦片。地图切片针对每个地图切片所表示的地理范围,进行下一个缩放级别的地图切片,直至地图达到设定的切片级数或者最大(最小)比例尺。
这些GIS产品在地图瓦片生成方案上大多采用瓦片按行生成或者瓦片按照空间邻近性生成。这两种方式各有优缺点。按行生成瓦片可以保证很快的生成速度,但是由于写入的瓦片不符合空间临近性,所以瓦片访问时效率比较低;按照空间临近性生成瓦片虽然写入的瓦片在访问时效率较高,但是瓦片生成速度比较慢。
发明内容
本发明的目的是提供一种基于MapReduce的地图瓦片存储布局优化方法,解决地图瓦片存储不符合空间临近性原则、读取瓦片性能差的问题。
本发明所采用的技术方案是:
基于MapReduce的地图瓦片存储布局优化方法,其特征在于:
包括以下步骤:
步骤一:Map任务读取地图瓦片金字塔生成时形成的瓦片索引表,根据(IndexKey,IndexValue)键值对中的IndexKey计算出该瓦片在金字塔中的顺序号Number,将IndexKey替换为其对应的Number值,形成(Number,IndexValue)键值对输出;
步骤二:采用自定义分区算法将得到的(Number,IndexValue)键值对进行分区,使得每个分区中Number列表是有序的,分区之间的Number也是有序的;
步骤三:每一个Reduce任务获得属于自己分区的(Number,IndexValue)键值对,采用自定义分组算法对所有键值对进行分组,将所有(Number,IndexValue)键值对中的Number替换为同一个值Number0,使得每一个Reduce任务最终只处理一个分组,这个唯一分组为(Number0,List(IndexValue));
步骤四:Reduce任务循环读取(Number0,List(IndexValue))中的每一个IndexValue,根据该索引值读取地图瓦片实体数据,然后将其写入到新的打包文件中,并同时更新索引表中该地图瓦片对应的索引项,使该索引项指向新的打包文件;
步骤五:所有地图瓦片重新写入结束之后,将旧的打包文件删除。
步骤一中,瓦片索引表的组织形式为(IndexKey,IndexValue)键值对;其中,行键IndexKey由地图瓦片金字塔版本名称、层级和行列号得出的四叉树编码组成,列族IndexValue由地图瓦片打包文件名称、瓦片在打包文件中的偏移量、瓦片大小和删除标志位组成。
步骤一中,根据(IndexKey,IndexValue)键值对中的IndexKey计算该瓦片在金字塔中的顺序号Number的具体过程为:
1)获得该金字塔的最小级别MinLevel,根据该MinLevel计算出该级别下第一张瓦片的四叉树编码MinQuadtreeCode,该四叉树编码即为该金字塔下的最小四叉树编码;
2)从IndexKey中解析出该地图瓦片对应的四叉树编码CurrentQuadtreeCode和该地图瓦片所在层级CurrentLevel,根据该CurrentLevel计算出该级别下第一张地图瓦片的四叉树编码CurrentMinQuadtreeCode,并计算出CurrentLevel和MinLevel之间所有的地图瓦片数FirstTileCount;
3)根据公式CurrentQuadtreeCode-CurrentMinQuadtreeCode得出QuanternaryNumber即地图瓦片在当前层级的四进制顺序号,最后将QuanternaryNumber转换为十进制并与FirstTileCount相加,即可得到地图瓦片顺序号Number。
步骤二中,采用自定义分区算法将得到的(Number,IndexValue)键值对进行分区的具体过程为:
分区数目等于Reduce任务数;
分区算法基于公式
式中,OrderPartitioner表示分区号,Number表示Map任务输出的地图瓦片顺序号,NumPartitions表示Reduce数量即分区数量,TileCount表示处理的总瓦片数。
本发明具有以下优点:
本发明是一种地图瓦片存储布局优化方案,利用该方案可以调整地图瓦片存储数据,使其符合空间临近性原则,提高瓦片读取性能。解决了地图瓦片存储不符合空间临近性原则,读取瓦片性能差的问题,满足了GIS应用要求尽可能低延时的访问地图数据的需求,同时不影响瓦片生成存储的速度,也保证了地图瓦片生成后,以及在瓦片存储布局优化的过程中,瓦片可以正常对外提供服务。
附图说明
图1是本发明流程图;
图2是瓦片索引IndexKey;
图3是瓦片索引IndexValue;
图4是Map任务过程。
具体实施方式
下面结合具体实施方式对本发明进行详细的说明。
本发明涉及的基于MapReduce的地图瓦片存储布局优化方法,针对现有方案的优缺点,在瓦片按行生成的基础上,对生成后的瓦片进行瓦片存储布局的优化,这样既保留了瓦片按行生成的高速度,同时也提高了瓦片的访问效率,并且在优化过程中,能够保证瓦片对外提供正常的服务。
参见图1,本发明具体包括以下步骤:
步骤一:Map任务读取地图瓦片金字塔生成时形成的瓦片索引表,根据(IndexKey,IndexValue)键值对中的IndexKey计算出该瓦片在金字塔中的顺序号Number,将IndexKey替换为其对应的Number值,形成(Number,IndexValue)键值对输出。
所述瓦片索引表的组织形式为(IndexKey,IndexValue)键值对;其中,行键IndexKey由地图瓦片金字塔版本名称、层级和行列号得出的四叉树编码组成,列族IndexValue由地图瓦片打包文件名称、瓦片在打包文件中的偏移量、瓦片大小和删除标志位组成。
所述根据(IndexKey,IndexValue)键值对中的IndexKey计算该瓦片在金字塔中的顺序号Number的具体过程为:
1)获得该金字塔的最小级别MinLevel,根据该MinLevel计算出该级别下第一张瓦片的四叉树编码MinQuadtreCode,该四叉树编码即为该金字塔下的最小四叉树编码;
2)从IndexKey中解析出该地图瓦片对应的四叉树编码CurrentQuadtreeCode和该地图瓦片所在层级CurrentLevel,根据该CurrentLevel计算出该级别下第一张地图瓦片的四叉树编码CurrentMinQuadtreeCode,并计算出CurrentLevel和MinLevel之间所有的地图瓦片数FirstTileCount;
3)根据公式CurrentQuadtreeCode-CurrentMinQuadtreeCode得出QuanternaryNumber即地图瓦片在当前层级的四进制顺序号,最后将QuanternaryNumber转换为十进制并与FirstTileCount相加,即可得到地图瓦片顺序号Number。
步骤二:采用自定义分区算法将得到的(Number,IndexValue)键值对进行分区,使得每个分区中Number列表是有序的,分区之间的Number也是有序的。
MapReduce框架默认的分区算法无法满足分到同一区的、分区之间的(Number,IndexValue)键值对中的Number是有序的。但自定义分区算法可以保证这点,使得每个Reduce任务负责处理的地图瓦片满足空间临近性原则,顺序写入打包文件中即可实现地图瓦片存储布局的优化。分区数目等于Reduce任务数,分区算法基于公式
式中,OrderPartitioner表示分区号,Number表示Map任务输出的地图瓦片顺序号,NumPartitions表示Reduce数量即分区数量,TileCount表示处理的总瓦片数。
步骤三:每一个Reduce任务获得属于自己分区的(Number,IndexValue)键值对,采用自定义分组算法对所有键值对进行分组,将所有(Number,IndexValue)键值对中的Number替换为同一个值Number0,使得每一个Reduce任务最终只处理一个分组,这个唯一分组为(Number0,List(IndexValue))。
MapReduce框架默认的分组算法,是根据(Number,IndexValue)键值对中的Number进行分组,Number相同的键值对分为一组,而经过之前步骤的处理,所有(Number,IndexValue)键值对中的Number各不相同,这将导致对每一个(Number,IndexValue)键值对都调用一次reduce()函数,对于海量的地图瓦片,这将十分影响效率;而自定义分组算法将所有(Number,IndexValue)键值对中的Number替换为同一个值,例如Number0,可以保证每一个Reduce任务只处理一个分组的键值对,因此Reduce任务将只调用一次reduce()函数,这将充分优化Reduce任务的执行过程。
步骤四:Reduce任务循环读取(Number0,List(IndexValue))中的每一个IndexValue,根据该索引值读取地图瓦片实体数据,然后将其写入到新的打包文件中,并同时更新索引表中该地图瓦片对应的索引项,使该索引项指向新的打包文件。
步骤五:所有地图瓦片重新写入结束之后,将旧的打包文件删除。
本发明与现有的瓦片存储布局优化方案不同的地方在于,现有的方案大多采用单线程、单客户端的方式进行优化调整,对于海量的瓦片数据,现有方案效率极低。本发明基于MapReduce实现,利用该分布式计算框架可以充分利用云计算平台的特性,最大化的提高瓦片存储布局优化的效率。
上述方法中,有以下技术特征需要结合附图重点说明:
1、瓦片索引表设计:
瓦片索引表地图瓦片索引IndexKey如图2所示,IndexKey由瓦片金字塔版本名、层级和行列号得出的四叉树编码组成。瓦片金字塔版本名为该瓦片所处的瓦片金字塔版本的名称。层级为瓦片所处的层级(或称级别)。行列号得出的四叉树编码在四叉树编码模型的基础上进行改进之后计算得出。瓦片索引IndexKey可以唯一确定一张瓦片。
瓦片索引表的瓦片索引IndexValue存储瓦片在HDFS中的位置信息,如图3所示,它由瓦片打包文件名、偏移量、瓦片大小和删除标志位组成。
瓦片打包文件名即瓦片所处的瓦片打包文件的文件名。由于在瓦片的索引IndexKey中已经存储了瓦片所处的瓦片金字塔版本名,所以可以由瓦片打包文件名和瓦片金字塔版本名进行计算得出瓦片打包文件在HDFS中存储的绝对路径。
偏移量为瓦片在所处的瓦片打包文件中的偏移量。
瓦片大小为瓦片的存储大小。增加这个字段不仅可以只通过索引信息而不必对瓦片打包文件进行操作就可以判断两张瓦片在物理存储上是否相邻,而且可以直接根据瓦片索引信息一次性读取瓦片数据而不必先从瓦片打包文件中读取瓦片大小,再根据读取到的瓦片大小读取瓦片,产生对HDFS的两次读操作,增加瓦片读取时间。
删除标志位采用一种标记删除的方法,当用户删除一张瓦片的时候,只需要设置删除标记位,而不必真正删除数据。删除标志位为1表示瓦片存在,为0表示瓦片已删除。
2、生成瓦片顺序号算法:
根据(IndexKey,IndexValue)键值对中的IndexKey计算出瓦片顺序号Number,生成算法为:获得该金字塔的最小级别MinLevel,根据该MinLevel计算出该级别下第一张瓦片的四叉树编码MinQuadtreeCode,该四叉树编码即为该金字塔下的最小四叉树编码;从IndexKey中解析出该地图瓦片对应的四叉树编码CurrentQuadtreeCode和该地图瓦片所在层级CurrentLevel,根据该CurrentLevel计算出该级别下第一张地图瓦片的四叉树编码CurrentMinQuadtreeCode,并计算出CurrentLevel和MinLevel之间所有的地图瓦片数FirstTileCount;
根据公式CurrentQuadtreeCode-CurrentMinQuadtreeCode得出QuanternaryNumber即地图瓦片在当前层级的四进制顺序号,最后将QuanternaryNumber转换为十进制并与FirstTileCount相加,即可得到地图瓦片顺序号Number。
3、分区算法:
分区操作默认情况下使用哈希分区算法,但是哈希分区算法无法满足分到同一区的、分区之间的(Number,IndexValue)键值对中的Number是有序的,所以需要实现自定义分区算法。自定义分区算法,可以使得每个Reduce任务负责处理的瓦片满足空间临近性原则,顺序写入打包文件中即可实现瓦片存储布局的优化。自定义分区算法中分区数目等于Reduce任务数,根据下面的公式得到分区号:。
其中,OrderPartitioner表示分区号,Number表示Map任务输出的地图瓦片顺序号,NumPartitions表示Reduce数量即分区数量,TileCount表示处理的总瓦片数。
最终分区号相同的瓦片被分配到同一个Reduce任务进行处理。
4、分组算法:
默认的分组算法,是根据(Number,IndexValue)键值对中的Number进行分组,Number相同的键值对分为一组,而经过之前步骤的处理,所有(Number,IndexValue)键值对中的Number将各不相同,这将导致对每一个(Number,IndexValue)键值对都调用一次reduce()函数,对于海量的地图瓦片,这将十分影响效率;而自定义分组算法将所有(Number,IndexValue)键值对中的Number替换为同一个值,例如Number0,可以保证每一个Reduce任务只处理一个分组的键值对,因此Reduce任务将只调用一次reduce()函数,这将充分优化Reduce任务的执行过程。
实施例:
本实施例首先需要传入一个瓦片金字塔名称,系统根据该瓦片金字塔名称查询瓦片金字塔元数据表,获得该瓦片金字塔下的所有版本,针对该瓦片金字塔的每一个版本,执行本发明提出的基于MapReduce的地图瓦片存储布局优化方案。本实施例使用金字塔名称TestW,金字塔版本名选用TestW20151027092339151,该金字塔版本的最小级别为3,最大级别为8,投影方式为墨卡托投影。
本方案根据金字塔版本名称,扫描存储瓦片的打包文件和存储瓦片索引的瓦片索引表,获得该金字塔版本的打包文件列表FilePathList,总瓦片数TileCount,瓦片总大小TileTotalSize。金字塔版本TestW20151027092339151的FilePathList为{“hdfs://cloudgis/tilePyramid/TestW/TestW20151027092339151/20151027092343608”,....,“hdfs://cloudgis/tilePyramid/TestW/TestW20151027092339151/”20151027093141499}共81个文件,TileCount为87360个,TileTotalSize为5370194244B。
通过读取配置文件获得用户设置的Reduce数量SetReduceCount;获得集群可用的Reduce数量ReduceTaskCapacity;根据公式获得计算出的Reduce数量,公式为
,
其中,BLOCK_SIZE为打包文件大小即块大小;最后根据公式获得最终的Reduce数量NumPartitions,其计算公式为
金字塔版本TestW20151027092339151的SetReduceCount为10,ReduceTaskCapacity为5个,打包文件大小BLOCK_SIZE为64MB,ComputeReduceCount计算出为41,最后NumPartitions为5。
Map任务读取地图瓦片金字塔生成时形成的瓦片索引表,根据(IndexKey,IndexValue)键值对中的IndexKey计算出该瓦片在金字塔中的顺序号Number,将IndexKey替换为其对应的Number值,形成(Number,IndexValue)键值对输出。具体计算方法为:读取瓦片元数据表,获得该金字塔的最小级别MinLevel,根据该MinLevel计算出该级别下第一张瓦片的四叉树编码MinQuadtreeCode,该四叉树编码即为该金字塔下的最小四叉树编码;从IndexKey中解析出该地图瓦片对应的四叉树编码CurrentQuadtreeCode和该地图瓦片所在层级CurrentLevel,根据该CurrentLevel计算出该级别下第一张地图瓦片的四叉树编码CurrentMinQuadtreeCode,并计算出CurrentLevel和MinLevel之间所有的地图瓦片数FirstTileCount;根据公式CurrentQuadtreeCode-CurrentMinQuadtreeCode得出QuanternaryNumber即地图瓦片在当前层级的四进制顺序号,最后将QuanternaryNumber转换为十进制并与FirstTileCount相加,即可得到地图瓦片顺序号Number。金字塔版本TestW20151027092339151的MinLevel为3,MinQuadtreeCode经计算为30000,假设读取到的其中一个IndexKey为TestW20151027092339151#700133311,解析出的四叉树编码CurrentQuadtreeCode为700133311,CurrentLevel为7,所以需计算从第3级四叉树编码为30000到第6级(包括第6级)之间的瓦片数,经计算为FirstTileCount为5440,CurrentMinQuadtreeCode为700000000,相减得QuanternaryNumber为700133311,转为10进制为2037,所以Number为7477。最终输出(7477,IndexValue)。
Map任务结束以后,经过定制的分区函数,将(Number,IndexValue)分配到其对应的Reduce任务上,该分区函数使得每个分区中Number是有序的,分区之间的Number也是有序的。分区公式为
。
对于金字塔版本TestW20151027092339151,NumPartitions为5,TileCount为87360,Number为7477的瓦片最后分区号为0。
Reduce任务获得获得自己分区对应的(Number,IndexValue)键值对,在处理之前先进行分组,以优化Reduce过程。分组算法将所有(Number,IndexValue)键值对中的Number替换为同一个值,使得一个Reduce任务只处理一个分组,最终Reduce任务的输入为(0,List(IndexValue))。Reduce任务循环读取List(IndexValue)中的每一个IndexValue,根据该索引值读取瓦片数据,然后将其写入到新的打包文件中。
所有瓦片重新写入结束之后,最后删除旧的瓦片打包文件。
本发明的内容不限于实施例所列举,本领域普通技术人员通过阅读本发明说明书而对本发明技术方案采取的任何等效的变换,均为本发明的权利要求所涵盖。
Claims (4)
1.基于MapReduce的地图瓦片存储布局优化方法,其特征在于:
包括以下步骤:
步骤一:Map任务读取地图瓦片金字塔生成时形成的瓦片索引表,根据(IndexKey,IndexValue)键值对中的IndexKey计算出该瓦片在金字塔中的顺序号Number,将IndexKey替换为其对应的Number值,形成(Number,IndexValue)键值对输出;
步骤二:采用自定义分区算法将得到的(Number,IndexValue)键值对进行分区,使得每个分区中Number列表是有序的,分区之间的Number也是有序的;
步骤三:每一个Reduce任务获得属于自己分区的(Number,IndexValue)键值对,采用自定义分组算法对所有键值对进行分组,将所有(Number,IndexValue)键值对中的Number替换为同一个值Number0,使得每一个Reduce任务最终只处理一个分组,这个唯一分组为(Number0,List(IndexValue));
步骤四:Reduce任务循环读取(Number0,List(IndexValue))中的每一个IndexValue,根据该索引值读取地图瓦片实体数据,然后将其写入到新的打包文件中,并同时更新索引表中该地图瓦片对应的索引项,使该索引项指向新的打包文件;
步骤五:所有地图瓦片重新写入结束之后,将旧的打包文件删除。
2.根据权利要求1所述的基于MapReduce的地图瓦片存储布局优化方法,其特征在于:
步骤一中,瓦片索引表的组织形式为(IndexKey,IndexValue)键值对;其中,行键IndexKey由地图瓦片金字塔版本名称、层级和行列号得出的四叉树编码组成,列族IndexValue由地图瓦片打包文件名称、瓦片在打包文件中的偏移量、瓦片大小和删除标志位组成。
3.根据权利要求1所述的基于MapReduce的地图瓦片存储布局优化方法,其特征在于:
步骤一中,根据(IndexKey,IndexValue)键值对中的IndexKey计算该瓦片在金字塔中的顺序号Number的具体过程为:
1)获得该金字塔的最小级别MinLevel,根据该MinLevel计算出该级别下第一张瓦片的四叉树编码MinQuadtreeCode,该四叉树编码即为该金字塔下的最小四叉树编码;
2)从IndexKey中解析出该地图瓦片对应的四叉树编码CurrentQuadtreeCode和该地图瓦片所在层级CurrentLevel,根据该CurrentLevel计算出该级别下第一张地图瓦片的四叉树编码CurrentMinQuadtreeCode,并计算出CurrentLevel和MinLevel之间所有的地图瓦片数FirstTileCount;
3)根据公式CurrentQuadtreeCode-CurrentMinQuadtreeCode得出QuanternaryNumber即地图瓦片在当前层级的四进制顺序号,最后将QuanternaryNumber转换为十进制并与FirstTileCount相加,即可得到地图瓦片顺序号Number。
4.根据权利要求1所述的基于MapReduce的地图瓦片存储布局优化方法,其特征在于:
步骤二中,采用自定义分区算法将得到的(Number,IndexValue)键值对进行分区的具体过程为:
分区数目等于Reduce任务数;
分区算法基于公式
式中,OrderPartitioner表示分区号,Number表示Map任务输出的地图瓦片顺序号,NumPartitions表示Reduce数量即分区数量,TileCount表示处理的总瓦片数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510758865.9A CN105354310B (zh) | 2015-11-10 | 2015-11-10 | 基于MapReduce的地图瓦片存储布局优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510758865.9A CN105354310B (zh) | 2015-11-10 | 2015-11-10 | 基于MapReduce的地图瓦片存储布局优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105354310A true CN105354310A (zh) | 2016-02-24 |
CN105354310B CN105354310B (zh) | 2018-07-10 |
Family
ID=55330282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510758865.9A Active CN105354310B (zh) | 2015-11-10 | 2015-11-10 | 基于MapReduce的地图瓦片存储布局优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105354310B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682110A (zh) * | 2016-12-06 | 2017-05-17 | 北京航天世景信息技术有限公司 | 一种基于哈希格网索引的影像文件存储和管理系统及方法 |
CN107862048A (zh) * | 2017-11-08 | 2018-03-30 | 四川易利数字城市科技有限公司 | 基于四叉树分层网格的地图缓存切片分布式集群管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7870114B2 (en) * | 2007-06-15 | 2011-01-11 | Microsoft Corporation | Efficient data infrastructure for high dimensional data analysis |
CN103177577A (zh) * | 2011-12-26 | 2013-06-26 | 北京掌城科技有限公司 | 基于图层叠加的动态交通信息服务提供方法 |
CN103744855A (zh) * | 2013-11-29 | 2014-04-23 | 航天恒星科技有限公司 | 一种基于聚合文件的瓦片地图存储方法 |
-
2015
- 2015-11-10 CN CN201510758865.9A patent/CN105354310B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7870114B2 (en) * | 2007-06-15 | 2011-01-11 | Microsoft Corporation | Efficient data infrastructure for high dimensional data analysis |
CN103177577A (zh) * | 2011-12-26 | 2013-06-26 | 北京掌城科技有限公司 | 基于图层叠加的动态交通信息服务提供方法 |
CN103744855A (zh) * | 2013-11-29 | 2014-04-23 | 航天恒星科技有限公司 | 一种基于聚合文件的瓦片地图存储方法 |
Non-Patent Citations (1)
Title |
---|
邱晨健: ""栅格地图分布式存储方案设计与性能分析"", 《中国优秀硕士学位论文全文数据库-信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682110A (zh) * | 2016-12-06 | 2017-05-17 | 北京航天世景信息技术有限公司 | 一种基于哈希格网索引的影像文件存储和管理系统及方法 |
CN106682110B (zh) * | 2016-12-06 | 2020-03-17 | 北京航天世景信息技术有限公司 | 一种基于哈希格网索引的影像文件存储和管理系统及方法 |
CN107862048A (zh) * | 2017-11-08 | 2018-03-30 | 四川易利数字城市科技有限公司 | 基于四叉树分层网格的地图缓存切片分布式集群管理方法 |
CN107862048B (zh) * | 2017-11-08 | 2021-05-18 | 四川易利数字城市科技有限公司 | 基于四叉树分层网格的地图缓存切片分布式集群管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105354310B (zh) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN102567495B (zh) | 一种海量信息存储系统及实现方法 | |
CN102663117B (zh) | 面向数据库与Hadoop混合平台的OLAP查询处理方法 | |
CN104820714B (zh) | 基于hadoop的海量瓦片小文件存储管理方法 | |
CN102662992B (zh) | 一种海量小文件的存储、访问方法及装置 | |
CN102799679B (zh) | 基于Hadoop的海量空间数据索引更新系统及方法 | |
Wang et al. | Research and implementation on spatial data storage and operation based on Hadoop platform | |
CN102662639A (zh) | 一种基于Mapreduce的多GPU协同计算方法 | |
CN103853714A (zh) | 一种数据处理方法和装置 | |
CN104866497A (zh) | 分布式文件系统列式存储的元数据更新方法、装置、主机 | |
CN102855239A (zh) | 一种分布式地理文件系统 | |
CN103152395A (zh) | 一种分布式文件系统的存储方法及装置 | |
CN106682110B (zh) | 一种基于哈希格网索引的影像文件存储和管理系统及方法 | |
CN103312791A (zh) | 物联网异构数据存储方法及系统 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN103905540A (zh) | 基于两级哈希的对象存储数据分布机制 | |
CN103455531A (zh) | 一种支持高维数据实时有偏查询的并行索引方法 | |
CN103595799A (zh) | 一种实现分布式共享数据库的方法 | |
CN106055678A (zh) | 一种基于hadoop的全景大数据分布式存储方法 | |
CN103501319A (zh) | 一种低延迟的面向小文件的分布式存储系统 | |
CN104216961A (zh) | 一种数据处理方法和装置 | |
CN104572505A (zh) | 一种保证海量数据缓存最终一致性的系统及方法 | |
CN102158533B (zh) | 基于QoS的分布式web服务选择方法 | |
CN102404411A (zh) | 云存储系统的数据同步方法 | |
CN103473258A (zh) | 云存储文件系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |