小编Car*_*ila的帖子

使用包含单行分区的 Cassandra 表是一种不好的做法吗?

假设我有一张这样的桌子

CREATE TABLE request(
  transaction_id text,
  request_date timestamp,
  data text, 
  PRIMARY KEY (transaction_id)
);
Run Code Online (Sandbox Code Playgroud)

transaction_id 是唯一的,因此据我了解此表中的每个分区只有一行,我不确定这种情况是否会导致操作系统中的性能问题,也许是因为 Cassandra 为每个分区创建一个文件,导致大量文件来管理其托管操作系统,请注意,我不确定 Cassandra 如何为其表创建文件。

在这种情况下,我可以通过其 transaction_id 找到请求,例如

select data from request where transaction_id = 'abc';

如果前面的假设是正确的,那么下一个可能会采用不同的方法?

CREATE TABLE request( 
  the_date date, 
  transaction_id text, 
  request_date timestamp, 
  data text, 
  PRIMARY KEY ((the_date), transaction_id)
);
Run Code Online (Sandbox Code Playgroud)

字段the_date每隔一天都会更改,因此表中的分区将为每一天创建。

在这种情况下,我必须让the_date数据始终可供客户端使用,以便我可以使用下一个查询找到请求

select data from request where the_date = '2020-09-23' and transaction_id = 'abc';

预先感谢您的帮助!

primary-key cassandra partition

6
推荐指数
1
解决办法
1717
查看次数

标签 统计

cassandra ×1

partition ×1

primary-key ×1