Cassandra数据建模问题

时间:2019-02-05 18:59:36

标签: database cassandra nosql data-modeling datastax

请帮助我为下面的表格建模。我被困在这里。我的分区键是agent_id,群集列是rowid。每个代理程序最多可以有1000行到10M,这取决于代理程序的繁忙程度。我忙碌的座席面临大分区问题。

我在这里使用SizeTieredCompaction。该表具有“写入/读取”(比率为70/30),并且在表中也有agent_id删除。

CREATE TABLE IF NOT EXISTS XXX (
 agent_id UUID,
 row_id BIGINT,
 col_a TEXT,
 col_b TEXT,
 col_c TEXT,
 PRIMARY KEY (agent_id,row_id)
)

1 个答案:

答案 0 :(得分:1)

在C *中建模时,会多次出现此问题。

  1. 如果任何列(col_acol_b等)与时间有关,并且您知道每个业务代表将插入每个代理多少行(大约)每天,我强烈建议将year-month-day用作分区键(如果一天足够,如果不是,则转到小时或分钟)。

  2. 您可以对agent_id + row_id以1M为模进行某种哈希处理(例如)。该哈希可以是分区键,您可以在插入和/或检索之前在应用程序中进行哈希。这样,您知道如果估计的行数为10M,则分区的大小将为10。