千万级别以上的地图兴趣点(POI)的快速查找测试

近期,终于有点时间,将之前的地图兴趣点爬虫程序(http://blog.csdn.net/sparkexpert/article/details/51554813)完善了下,并用了七天的时间爬取了覆盖全国的任一地区的所有类别的兴趣点数据。

数据下载还是一个艰难的过程,不过幸运的是,采用了新方法之后,基本上很少需要人工去干预,当然也会有网络的限制,但是基本上同时开辟5个下载通道,速度一直是嗖嗖的。

下载完成后,由于没有直接处理,只是下载了JSON格式的文本数据,约占磁盘空间60G以上。而汇总的POI个数则有好几千万。(目前有些超出范围还下载得不全,主要原因是网站服务端的限制,只允许下载前几页。当然这个也有办法处理,只是目前没有太计较于这些。)

那么下载数据之后,就在琢磨如何能够快速查找数据,像百度谷歌等各种地图网站加载数据是非常快的,那么如何去实现这个步骤呢。本文主要就是解决这个问题。

于是采用redis的HASH来进行每个兴趣点的存储。处理过程中会过滤掉一些重复的键值,但这个过滤是有条件的,如报刊亭,可能有很多同样的键值,但是它们都是独立的,就需要在这些后缀添加个0,1,2,.....

下附一张在redis客户端查找的个数。这张图只是在导入过程中随便截的图。实际上已经是好几千万了。

为了验证查询效率,进行了查找,一种是直接查找某个城市的某种类别的数据,如图所示:

可以说,用redis来做地图POI缓存,速度还是特别快的。在下面的状态栏实时显示的了查询所占用的时间,非常少的时间就返回结果了。

为了更好地测试对全部信息的查找,如在不限制城市,不限制类别进行查找,其结果如下:

发现总的测试时间也就5秒多一些,这还是在一台非常普通的PC上的测试。而真正要做地图服务器,则可以采用大内存高性能服务器,完全可以做得毫秒级响应。

不过采用这种列式数据库有个不好的地方,就是没有办法在上面直接做附近POI查询。(这在键值上也没有办法做到。)这估计还得依靠以前近格网索引的办法才能实现吧。(不过要是限制在某个城市,某种类别的,用redis肯定也能够做到,毕竟在小数据上做查询效率还是很高的)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏晓晨的专栏

ASP.NET Core的身份认证框架IdentityServer4(1)-特性一览

12330
来自专栏京东技术

闲话高并发的那些神话,看京东架构师如何把它拉下神坛

高并发也算是这几年的热门词汇了,尤其在互联网圈,开口不聊个高并发问题,都不好意思出门。高并发有那么邪乎吗?动不动就千万并发、亿级流量,听上去的确挺吓人。但仔细想...

34740
来自专栏大数据文摘

手把手 | 如何在计算机上配置数据科学开发环境

从Python、R等编程语言到以Git为例的版本控制系统甚至Unix Shell等命令行工具,数据科学家的武器库现在越来越丰富了,在个人计算机上同时使用这些武器...

8400
来自专栏人云亦云

Windows下XGBoost和LightGBM环境配置

环境配置过程是一个很头疼的事情,网上参考资料参差不齐,按照一个教程去执行,总是会出问题,把折腾的过程总结起来,供大家参考。

94970
来自专栏程序员宝库

Python库大全(涵盖了Python应用的方方面面),建议收藏留用!

学Python,想必大家都是从爬虫开始的吧。毕竟网上类似的资源很丰富,开源项目也非常多。

17440
来自专栏微信终端开发团队的专栏

微信自研生产级paxos类库PhxPaxos实现原理介绍

微信重磅开源生产级paxos类库PhxPaxos,本文用科普的口吻向大家介绍PhxPaxos背后的实现原理以及一些有意思的细节。 开源地址:https://g...

33970
来自专栏ImportSource

NoSQL-Master-Slave Replication 主从复制

翻译内容: NoSQL Distilled 第四章 Distribution Models 作者简介: ? 本节摘要: 各位好,今天我们主要讨...

54060
来自专栏杨建荣的学习笔记

关于session leak的问题分析(r3笔记第13天)

在生产环境中,作为dba需要对系统的负载有一个很清晰的认识。能够在很快的时间内能够发现系统潜在的问题,并且及时定位问题,高效的响应和处理问题。 比如说对于生产环...

35950
来自专栏owent

游戏服务器的不停服更新

我们目前的游戏第一次测试的时候笔记送匆忙,导致上线之后频繁更新。 比如BOSS战由于大区的人数和预期不一样导致的难度调整,或者是任务链或者数值调整,再加上一些...

47030
来自专栏大数据和云计算技术

零基础入门Redis,这篇够了!

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

17360

扫码关注云+社区

领取腾讯云代金券