【问题标题】:What is the best database for single row select with billions of data?具有数十亿数据的单行选择的最佳数据库是什么?
【发布时间】:2021-03-27 11:11:26
【问题描述】:

我目前每周使用 ClickHouse 存储数十亿条数据。我们使用聚合表来获取数据,到目前为止一切都很好。现在需要从这个数据库中获取一行。

ClickHouse 不适用于这种情况,即使在应用了 ClickHouse 推荐的一些优化之后,单行选择仍然有点慢(几秒钟)。

为了更清楚地说明这一点,该表由 a、b、c 和 d 列索引,并且还按月分区(该表还有更多列)。一个新服务必须查询这个表,而只知道 a 和 b 和 z(一个 UUID 列)。但是,对于 100 亿条数据,平均响应时间在 3 到 10 秒之间。

我有机会添加一个额外的数据存储层,以便我可以将数据存储到一个额外的数据库中以满足此需求。

现在的实际问题是:对于我们只需要读取单行数十亿数据的情况,最好的数据库是什么?

附注:

  1. 由于存储和网络成本,我们无法使用 Redis
  2. 我们无法在选择查询中添加更多列来优化查询

【问题讨论】:

标签: database nosql clickhouse


【解决方案1】:

卡桑德拉?

您可以使用附加表和物化视图来模拟倒排索引。

此附加表应按 z 排序并包含主表中的 pk 列(a、b、c、d)。

然后像查询主表

select ... from main_table where (a,b,c,d) in 
  ( select a,b,c,d from additional_table where z= ... )
and z = ...

additional_table 可以由 main_table 中的物化视图自动填充。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多