如何在Cassandra中创建十亿列的模式?



我看到在Cassandra中,对于每一个行键,我们可以节省数十亿的列名/列值对。

我们还需要在Cassandra中持久化数据之前创建模式。

所以我想知道我们应该如何创建一个具有十亿列的模式?

这没有意义吗?我正在专门研究一个用例,我希望保存每分钟间隔生成的事件,每分钟可以有数百万(如果不是数十亿)事件。所以我想知道如何正确地建模。

2022-05-22-05-55 --> <event id as column name, event value as column value>

请帮助。

首先,Cassandra需要表的模式,因此您需要提前提供所有列(实时更改是一个坏主意)。其次,即使是成千上万的列也是一个坏主意,因为它将导致显著的开销。

但实际上,您可以使用以下模式:

create table events (
minute text,
event_id text,
value <some type>,
primary key(minute, event_id));

但仍有未完成的项目:

  • 不建议每个分区有超过100,000个单元格(使用Cassandra 4.0可能有数百万个)
  • 您的分区模式效率不高-在任何给定的分钟内,只有N个节点可以处理写操作,而其他节点则空闲。

我建议先描述你的用例,然后再决定模式。

相关内容

  • 没有找到相关文章

最新更新