什么是快速聚合数据的首选数据存储区? 我有定期从其他系统提取的数据,数据存储应支持以下查询:
现在,我在Redis中使用自定义数据模型,并在内存中提取数据,然后在其上运行聚合。这个模型的问题在于它与我的枢轴(列)和任何其他枢轴密切相关,如果添加将导致我的数据爆炸导致我的redis盒上的大量内存消耗。
我已经探索过elasticsearch,但对于我拥有的数据类型,使用聚合的elasticsearch查询花费的时间超过200毫秒。
还有其他选择,我现在也在看Aerospike。有人可以说明在这种情况下,空气动力学聚合如何发挥作用吗?
答案 0 :(得分:1)
Aerospike支持在二级索引查询之上进行聚合。似乎您的大多数查询都是基于用户的。您可以在userid之上构建二级索引,并查询与用户对应的所有数据。然后,您可以打击聚合逻辑并根据所需的时间范围过滤内容。你需要这样做,因为Aerospike还不支持你在同一时间查询用户和时间范围的多个where子句。
您的疑问1&如上所述,可以通过基于userid上的二级索引查询编写聚合UDF来完成图2的处理。
我对你的3个问题不是很清楚。 Aerospike不提供分组,总和,计数等作为本机查询。但是你总是可以编写一个聚合UDF来实现它。 http://www.aerospike.com/docs/guide/aggregation.html