我最近在 cassandra 中使用不同的设计进行了一些性能测试。我目前正在使用 cassandra 作为写入密集型项目。但是,我将添加读取密集型部分以使用select
语句导出数据。
我正在用下表做时间序列;
CREATE TABLE events (
date text,
n int, // it could be 1,2,3
id timeuuid,
PRIMARY KEY ((date, n), id)
);
我有date|n
作为分区键。为了提高读取性能,我试图利用宽行的概念。在文档中,指出;
如果分区键相同,则将它们插入到同一个物理节点,并扩大分区键的行。
因此,我使用均匀分布行以防出现此处n
所述的热点;
但是,在多节点集群中,当我插入以下内容时;
'2013-07-30'|1, some-timeuuid
'2013-07-30'|1, another-timeuuid
我看到它们不在同一个物理节点中。
我通过以下方式获取节点信息;
nodetool getendpoint keyspace columnfamily some-timeuuid
因此,不知何故,我希望它们位于同一行以提高读取性能,但在获得 20 亿列的情况下不要太宽。(这是列的大小限制)
那么,有什么想法吗?