请帮助我为下面的表格建模。我被困在这里。我的分区键是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)
)
答案 0 :(得分:1)
在C *中建模时,会多次出现此问题。
如果任何列(col_a
,col_b
等)与时间有关,并且您知道每个业务代表将插入每个代理多少行(大约)每天,我强烈建议将year-month-day
用作分区键(如果一天足够,如果不是,则转到小时或分钟)。
您可以对agent_id + row_id以1M为模进行某种哈希处理(例如)。该哈希可以是分区键,您可以在插入和/或检索之前在应用程序中进行哈希。这样,您知道如果估计的行数为10M,则分区的大小将为10。