一种海量瓦片数据迁移及格式转换的方法和系统技术方案

技术编号:30337970 阅读:21 留言:0更新日期:2021-10-12 22:59
本申请提供了一种海量瓦片数据迁移及格式转换的方法和系统。所述转换方法包括以下步骤:根据经纬度范围和MBTiles文件的格式设定,对导入HBase数据库中的瓦片数据进行切分;根据切分后的瓦片数据建立多个任务,并将所述多个任务置于线程池队列中;并行地运行所述线程池队列中的任务,将所述HBase数据库中的瓦片数据迁移并转换为MBTiles文件。本发明专利技术在减少了设计复杂性的同时,提高了程序的运行效率。提高了程序的运行效率。提高了程序的运行效率。

【技术实现步骤摘要】
一种海量瓦片数据迁移及格式转换的方法和系统


[0001]本专利技术属于地理信息系统
,特别地涉及一种海量瓦片数据迁移及格式转换的方法和系统。

技术介绍

[0002]当前,越来越多的地图服务使用到了瓦片技术,这就需要存储TB级的海量瓦片数据。HBase数据库可以很好地满足这种海量瓦片数据的存储需求。一般情况下,将瓦片数据存储在HBase数据库中是一个很好的选择。
[0003]在大多数的地图服务中,需要通过访问MBTiles文件来获取服务所需要的瓦片数据。而这就需要我们将已有的海量瓦片数据从HBase数据库迁移转换为MBTiles文件。并且,在迁移的过程中,程序需要处理数据在两个数据库中不同的索引方式,对数据索引进行转换。GeoServer服务内置了生成MBTiles文件的程序,但其中间流程较多,迁移效率低下。
[0004]在实际情况下,38T的瓦片数据,预估迁移时间为5年。对于实际生产而言,这远远无法满足需求。

技术实现思路

[0005]本专利技术的目的在于提供一种海量瓦片数据迁移及格式转换的方法和系统,通过对瓦片数据的处理,减少了设计的复杂性,提高了程序的运行效率。
[0006]为此,根据本专利技术的第一方面,提供了一种海量瓦片数据迁移及格式转换的方法,包括以下步骤:
[0007]根据经纬度范围和MBTiles文件的格式设定,对导入HBase数据库中的瓦片数据进行切分;
[0008]根据切分后的瓦片数据建立多个任务,并将所述多个任务置于线程池队列中;/>[0009]并行地运行所述线程池队列中的任务,将所述HBase数据库中的瓦片数据迁移并转换为MBTiles文件。
[0010]进一步的,所述根据经纬度范围和MBTiles文件的格式设定,对导入HBase数据库中的瓦片数据进行切分包括:
[0011]根据所述瓦片数据的经纬度范围,按照坐标系转换规则,确定所述瓦片数据在HBase数据库中的rowkey范围;
[0012]根据MBTiles文件的格式设定,将所述rowkey范围的瓦片数据切分成多个互相独立的区域范围。
[0013]进一步的,所述根据切分后的瓦片数据建立多个任务包括:
[0014]每个任务对应于一个独立的区域范围内的瓦片数据。
[0015]进一步的,所述并行地运行所述线程池队列中的任务,将所述HBase数据库中的瓦片数据迁移并转换为MBTiles文件包括:
[0016]在每个线程中,计算各自任务中的瓦片数据的索引,并将索引转换为HBase数据库
中的rowkey,然后按照瓦片在HBase中的存储顺序向各个HRegion发送读取请求;
[0017]将获取到的数据的rowkey解析为MBTiles的索引格式,然后分批迁移到MBTiles的Sqlite文件中,并存储所迁移到的数据。
[0018]进一步的,所述并行地运行所述线程池队列中的任务过程还包括:
[0019]用于将已完成的任务存在日志文件中,如果所述线程池队列被中断运行,则下次按照日志文件中的信息继续运行未完成的任务。
[0020]根据本专利技术的第二方面,提供了一种海量瓦片数据迁移及格式转换的系统,包括:
[0021]数据切分模块,用于根据经纬度范围和MBTiles文件的格式设定,对导入HBase数据库中的瓦片数据进行切分;
[0022]任务建立模块,用于根据切分后的瓦片数据建立多个任务,并将所述多个任务置于线程池队列中;
[0023]迁移转换模块,用于并行地运行所述线程池队列中的任务,将所述HBase数据库中的瓦片数据迁移并转换为MBTiles文件。
[0024]进一步的,所述数据切分模块,还包括确定单元和切分单元:
[0025]确定单元,用于根据所述瓦片数据的经纬度范围,按照坐标系转换规则,确定所述瓦片数据在HBase数据库中的rowkey范围;
[0026]切分单元,用于根据MBTiles文件的格式设定,将所述rowkey范围的瓦片数据切分成多个互相独立的区域范围。
[0027]进一步的,所述任务建立模块,根据切分后的瓦片数据建立多个任务包括:
[0028]每个任务对应于一个独立的区域范围内的瓦片数据。
[0029]进一步的,所述迁移转换模块包括:
[0030]数据获取单元,用于在每个线程中,计算各自任务中的瓦片数据的索引,并将索引转换为HBase数据库中的rowkey,然后按照瓦片在HBase中的存储顺序向各个HRegion发送读取请求;
[0031]迁移转换单元,用于将获取到的数据的rowkey解析为MBTiles的索引格式,然后分批次迁移到MBTiles的Sqlite文件中,并存储所迁移到的数据。
[0032]进一步的,所述迁移转换模块,还用于将已完成的任务存在日志文件中,如果所述线程池队列被中断运行,则下次按照日志文件中的信息继续运行未完成的任务。
[0033]本专利技术具有的有益效果是:与现有技术相比较,本专利技术采用了一种高效多并发的数据转换机制,减少了设计的复杂性,提高了程序的运行效率,在设备相同的情况下,迁移38T瓦片数据花费的时间仅仅是18小时,相比现有技术的5年时间,实现了指数级的性能提升。
附图说明
[0034]本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0035]图1是根据本专利技术一实施例的海量瓦片数据迁移及格式转换方法的流程图。
[0036]图2是根据本专利技术一实施例的海量瓦片数据迁移及格式转换系统的框架图;
[0037]图3是根据本专利技术一实施例的海量瓦片数据迁移及格式转换系统中数据切分模块
的结构示意图;
[0038]图4是根据本专利技术一实施例的海量瓦片数据迁移及格式转换系统中迁移转换模块的结构示意图。
具体实施方式
[0039]为了能够更清楚地理解本专利技术的上述目的、特征和优点,下面结合附图和具体实施方式对本专利技术进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0040]在下面的描述中阐述了很多具体细节以便于充分理解本专利技术,但是,本专利技术还可以采用其他不同于在此描述的其他方式来实施,因此,本专利技术的保护范围并不受下面公开的具体实施例的限制。
[0041]如图1所示,根据本专利技术一实施例,提供了一种海量瓦片数据迁移及格式转换的方法,包括以下步骤:
[0042]S11、根据经纬度范围和MBTiles文件的格式设定,对导入HBase数据库中的瓦片数据进行切分;
[0043]接收从HBase数据库直接导入的HBase瓦片数据,先根据HBase瓦片数据传入的经纬度范围,按照坐标系转换规则,确定其在HBase数据库中的rowkey范围,然后根据MBTiles文件的格式设定,将确定了在HBase数据库中rowkey范围的瓦片数据,按照MB本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种海量瓦片数据迁移及格式转换的方法,其特征在于,包括:根据经纬度范围和MBTiles文件的格式设定,对导入HBase数据库中的瓦片数据进行切分;根据切分后的瓦片数据建立多个任务,并将所述多个任务置于线程池队列中;并行地运行所述线程池队列中的任务,将所述HBase数据库中的瓦片数据迁移并转换为MBTiles文件。2.根据权利要求1所述的方法,其特征在于,所述根据经纬度范围和MBTiles文件的格式设定,对导入HBase数据库中的瓦片数据进行切分包括:根据所述瓦片数据的经纬度范围,按照坐标系转换规则,确定所述瓦片数据在HBase数据库中的rowkey范围;根据MBTiles文件的格式设定,将所述rowkey范围的瓦片数据切分成多个互相独立的区域范围。3.根据权利要求1所述的方法,其特征在于,所述根据切分后的瓦片数据建立多个任务包括:每个任务对应于一个独立的区域范围内的瓦片数据。4.根据权利要求1所述的方法,其特征在于,所述并行地运行所述线程池队列中的任务,将所述HBase数据库中的瓦片数据迁移并转换为MBTiles文件包括:在每个线程中,计算各自任务中的瓦片数据的索引,并将索引转换为HBase数据库中的rowkey,然后按照瓦片在HBase中的存储顺序向各个HRegion发送读取请求;将获取到的数据的rowkey解析为MBTiles的索引格式,然后分批次迁移到MBTiles的Sqlite文件中,并存储所迁移到的数据。5.根据权利要求4所述的方法,其特征在于,所述并行地运行所述线程池队列中的任务还包括:用于将已完成的任务存在日志文件中,如果所述线程池队列被中断运行,则下次按照日志文件中的信息继续运行未完...

【专利技术属性】
技术研发人员:张敬亮赵文波毕俊傅伟康马银龙王晓东杨光辉张家旺
申请(专利权)人:中科星图股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1