V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sacuba
V2EX  ›  Hadoop

有没有成熟的基于空间的 nosql 存储方案

  •  
  •   sacuba · 2015-11-20 17:57:06 +08:00 · 3450 次点击
    这是一个创建于 3277 天前的主题,其中的信息可能已经有所发展或是发生改变。

    数据量: 5t , 500 亿条数据,以后每年至少 2t , 200 亿条的量增加。
    数据内容: id,时间,位置+详细数据
    需求大概是两个: 1 、通过 id+时间进行查询。 2 、通过位置范围+时间进行查询。
    之前的做法是存 hypertable,数据存储两份.现在想把两份数据存一份。
    已经尝试过 hbase+华为的二级索引以及 hbase+phoenix,效果并不尽如人意。所以来 v2 请教下。

    ps:节点放 hadoop 不知道对不对

    6 条回复    2015-11-21 14:41:12 +08:00
    yuankui
        1
    yuankui  
       2015-11-20 20:43:35 +08:00
    明显你的数据是基于时间序列的.
    可以考虑使用 es

    没隔一段时间(比如一个月)建立一个库

    场景 1: 可以根据时间,迅速缩小库的范围(比如某几个库).再来根据时间过滤(时间是建了索引的)

    场景 2: 还是根据时间,先缩小库的范围,然后再根据位置范围,进行大致过滤(画一个正方形而不是圆).最后在将减少的数据集在客户端做最后筛选.

    key: 按时间分库

    关于画正方形:
    center.x - distance < dest.x < center.x + distance && center.y - distance < dest.y < center.y + distance
    这个条件可以在 es 中用 4 个过滤条件进行表达

    关于画圆
    (center.x - dest.x) ^2 + (center.y-dest.y) ^2 <= distance ^ 2
    这个条件应该暂时没有数据库能实现索引.
    yuankui
        2
    yuankui  
       2015-11-20 20:45:16 +08:00
    有些笔误,谅解.
    场景一中后面两个时间 -> id
    akira
        3
    akira  
       2015-11-20 22:30:56 +08:00
    不是 GIS ?
    sacuba
        4
    sacuba  
    OP
       2015-11-20 22:50:32 +08:00
    @akira 你说对了 是 GIS
    pixstone
        5
    pixstone  
       2015-11-21 12:44:29 +08:00 via iPad   ❤️ 1
    es 的话 有 地理索引了,可以画奇怪的图案。
    5T 的话 有点纠结。最好分库处理下,时间尺度+空间尺度,比如一个城市一个库。

    NoSQL 的话 还有 MongoDB , 5T 的量的话,有上集群了,分片+副本,还要根据时间和空间 再做下划分。读有什么额外的要求吗。
    sacuba
        6
    sacuba  
    OP
       2015-11-21 14:41:12 +08:00 via Android
    @pixstone 地理范围是全球的,查询的话两种查阅万条记录达到毫秒级别,万条以上的查阅并不做太多要求 es 还没搞透 数据必须在集群上,为了面对以后可能会出现的各种数据分析的需求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1505 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:19 · PVG 01:19 · LAX 09:19 · JFK 12:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.