如何索引cassandra中经常更新的字段

问题描述:

我有一个列字段,其中包含字段userid,名称,性别,电子邮件,状态。在userid中,电子邮件是主键。如何索引cassandra中经常更新的字段

我已经创建了tinyint类型的二级索引。

CREATE CUSTOM INDEX users_status_idx ON custom.users (status) USING 'org.apache.cassandra.index.sasi.SASIIndex'; 

状态值不断更新(每日2000万条记录)。

启动程序时,需要0秒从数据库中检索数据。随着时间的增加,检索数据的时间增加。

什么是索引这种类型的字段(状态)的最佳方式是什么?

+0

Is * crore * 10M? – xmas79

也许,最好的办法就是通过增加两个(或更多,这取决于国家的,你有多少)一个表,对各状态你通常查询非规范化的数据,并四处走动的用户,这些表之间。如果每天更改状态的用户数量非常多,则需要特别注意桌面设计,例如聪明的分区键,以避免墓碑问题。

+0

另外我想补充一点,对于大量的数据,您应该考虑未来的模式更改,导致完整的索引重建(如果更改它,会发生这种情况)会对生产造成很大的影响。你也可以使用自定义索引,如基于lucene的stratio(https://github.com/Stratio/cassandra-lucene-index) –