在HBase中存储瓦片地图是否科学生产中,瓦片地图都是咋存储的呢
有几个点应该可以改进:
要测试性能,最好不用用HBase shell,使用程序来统计时间,因为HBase shell会默认将二进制转化成string,再打印到屏幕,这都会消耗时间。rowkey中的x,y坐标完全分开,是否能精确查询?可以考虑使用Geohash想问 一张图片有多大?正常的一条HBase记录的get的时延大约也就是10ms的级别。实验中的HBase的配置也是比较低,可以试试简单建一张表,put一条数据,用HBase shell get出来的时延对比一下,就知道是查询一张瓦片慢还是本身的HBase查询慢了。表格存储服务(CloudTable Service)_数据存储_数据托管_云数据查询-华为云 免费公测阶段,提供HBase、时序数据库OpenTSDB、时空大数据套件GeoMesa能力,欢迎试用。
■网友
最近在做公司的底层数据改造工作,做到地图服务这一块。目前也是在开发阶段,还没有进入生产环境中,仅作参考。
查询一张图片0.9秒是无法忍受的。自己的解决方案是影像数据存储在SQLite数据库中,利用数据库提高查询速度。
这样做的好处是:SQLite便于迁移,不同db文件可以存放不同来源或时相的数据。数据库中维持两张表,metadata表与tiles表,metadata表存放影像名称、来源、成像时间、投影方式、包含区域等信息,tiles四个字段,存放level, col, row, data。对level, col, row建索引。
通过切分、组合(或提前设计区域)的方式组织数据库文件,保证db文件的大小合理(具体大小探索中),满足地图服务的查询速度和底层数据迁移时的快速性。最终要实现谷歌地球可以访问不同时相的地图的效果。
定时维护一个capacities文件(xml)格式,维持一个到db文件本地路径的映射关系,xml中存储所有提供地图数据的范围、名称、时间等。返回给前端供前端选择加载的图层。后端根据前端的url中的layer字段寻找明确的db文件,并查找到确定的瓦片返回。
【在HBase中存储瓦片地图是否科学生产中,瓦片地图都是咋存储的呢】 欢迎大家帮忙想想这个解决方案是否可行,目前正在实验中。
有一个问题:自己设计的rowkey(类似题主的方式)和对level、col、row建索引的方式哪个更好?个人主观觉得后者更好,后者减少了计算步骤,利用了数据库索引。待实验检验。
觉得不错随手点个赞呗,给点动力
■网友
谢邀!看起来不错,不懂帮顶
■网友
同意亚砜的说法。
好久不做gis方面的东西了,仅凭印象大概说一下:
我们在实际生产环境中,有三种格式使用,其一就是亚砜所说的sqlite的形式,另一种是普通的文件系统格式,前端服务器直接将url映射到对应的文件上,在有足够的静态文件缓存的情况下,这种最快;再一种是自定义的一种紧凑格式,本质上和数据库的索引有点类似。
■网友
28000条记录搜索时间高达0.9秒,感觉太夸张了,你用rowkey作为文件名存磁盘都比这个快多了吧
■网友
如果并发度是1,请求响应时间900毫秒,那么这种在生产环境基本是不可用的。单张图片有多大?
■网友
您好,我想请教您一个问题。我现在也将瓦片数据存储在了HBase中,现在想把它取出来进行可视化。请问您有没有好的可视化方法呢?
(老师项目中的一部分,要求不能取到本地后再进行可视化。)谢谢!
推荐阅读
- 微博目前已经支持文本,图片,位置分享,为啥没有语音和视频呢微博的pm肯定想过这两种微博形态,但迟迟不做的原因到底是啥。是语音和视频不符合产
- 电商会怎样存储和保护客户的信用卡信息不被泄漏
- 在1对多的情况下,有啥好的存储方式及查找方法
- 电脑内存条跟固态硬盘和机械硬盘存储速度哪个快
- 网络存储,数通,安全,这三个方面的工程师主要都是干啥,在现今那个技术找工作容易些呢
- Minecraft中通过定义具体继承的方块类来存储方块的额外属性,咋通过编写API改进这种方法
- 怎样评价华为存储的颜值
- 就淘宝,京东而言,他们在网站架构上是怎样设计和实现的,各自的特点在那里(尤其是在数据的存储和并发访问上)
- 怎样在家搭建一个云平台主要用于文件存储
- 为啥说HBase是列式数据库