gpt4 book ai didi

redis - 聚合数据存储

转载 作者:可可西里 更新时间:2023-11-01 11:20:39 25 4
gpt4 key购买 nike

用于快速聚合数据的首选数据存储是什么?我有定期从其他系统提取的数据,数据存储应支持如下查询:

  • 用户在某个时间范围内完成的交易数量是多少。
  • 用户在某个时间范围内完成的成功交易的总和是多少。
  • 查询应该支持 sql 结构,例如对大量数据进行分组、计数、求和等。

现在,我在 Redis 中使用自定义数据模型,数据在内存中获取,然后在其上运行聚合。这个模型的问题是它与我的枢轴(列)和任何额外的枢轴密切相关,如果添加会导致我的数据爆炸,导致我的 redis 盒消耗大量内存。

我探索过 elasticsearch,但对于我拥有的那种数据,带有聚合的 elasticsearch 查询花费的时间超过 200 毫秒。

还有其他选择吗,我现在也在看Aerospike。有人可以阐明 aerospike 聚合体在这种情况下的工作原理吗?

最佳答案

Aerospike 支持二级索引查询之上的聚合。似乎您的大部分查询都以用户为中心。可以在userid之上建立二级索引,查询一个用户对应的所有数据。然后,您可以拍打聚合逻辑并根据所需的时间范围过滤内容。您需要这样做,因为 Aerospike 尚不支持您同时查询用户和时间范围的多个 where 子句。

您的查询 1 和 2 可以通过编写基于 userid 二级索引查询的聚合 UDF 来完成,如上所述。

你的3个问题我不是很清楚。 Aerospike 不提供 group by、sum、count 等作为 native 查询。但您始终可以编写一个聚合 UDF 来实现它。 http://www.aerospike.com/docs/guide/aggregation.html

关于redis - 聚合数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35332425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com