在数据导入到我的cassandra测试集群之后,我发现我需要一些列的二级索引。因为数据已经在集群中,所以我想通过更新columnfamilydefinitions来实现这一点。
现在,问题是:这些列是动态列,因此它们对getcolumnmetadata()调用不可见。
如何通过hector检查是否已经创建了二级索引,如果不是这样,如何创建一个索引(我认为如何创造它的部分可以在http://comments.gmane.org/gmane.comp.db.hector.user/3151 )
如果不可能,是否必须将此动态列族中的所有数据复制到静态列族中?
1条答案
按热度按时间ulmd4ohb1#
不需要将动态列族中的所有数据复制到静态列族中。
那怎么办??让我用一个例子来解释你,假设你有一个下面提到的cf模式:
注意,我已经对标志和名称做了索引。
下面是cf中的一些数据。
从这些数据中,您可以理解address、id和col1都是动态创建的。
如果我问这样的问题
注意:col1没有索引,但我可以使用该字段进行筛选
输出:
另一个问题
注意:这里既没有索引id,也没有地址,仍然是我得到的输出
输出:
所以基本上如果你有一个列,它的值总是你知道的,并且它被索引了。然后,您可以轻松地筛选其余的动态列,并使用索引始终为正的列对它们进行聚合。