sacuba
V2EX  ›  Hadoop

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

  •  
  •   sacuba · Nov 20, 2015 · 4119 views
    This topic created in 3912 days ago, the information mentioned may be changed or developed.

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

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

    6 replies    2015-11-21 14:41:12 +08:00
    yuankui
        1
    yuankui  
       Nov 20, 2015
    明显你的数据是基于时间序列的.
    可以考虑使用 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  
       Nov 20, 2015
    有些笔误,谅解.
    场景一中后面两个时间 -> id
    akira
        3
    akira  
       Nov 20, 2015
    不是 GIS ?
    sacuba
        4
    sacuba  
    OP
       Nov 20, 2015
    @akira 你说对了 是 GIS
    pixstone
        5
    pixstone  
       Nov 21, 2015 via iPad   ❤️ 1
    es 的话 有 地理索引了,可以画奇怪的图案。
    5T 的话 有点纠结。最好分库处理下,时间尺度+空间尺度,比如一个城市一个库。

    NoSQL 的话 还有 MongoDB , 5T 的量的话,有上集群了,分片+副本,还要根据时间和空间 再做下划分。读有什么额外的要求吗。
    sacuba
        6
    sacuba  
    OP
       Nov 21, 2015 via Android
    @pixstone 地理范围是全球的,查询的话两种查阅万条记录达到毫秒级别,万条以上的查阅并不做太多要求 es 还没搞透 数据必须在集群上,为了面对以后可能会出现的各种数据分析的需求
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3330 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 11:14 · PVG 19:14 · LAX 04:14 · JFK 07:14
    ♥ Do have faith in what you're doing.