如何创建无价值的列在Cassandra中通过CQLEngine

时间:2013-07-21 18:44:24

标签: python django cql

我有一个关于如何通过CQLEngine在Cassandra中创建无价值列的问题。我的意思是我希望商店信息以列名而不是列值出于某种目的。 但是在CqlEngine中,您应该在模型文件中运行项目之前定义列名。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

传统上你使用Thrift api和宽行来完成你的要求,定义你自己的列名。这不是CQL3的工作原理。如果您想以这种方式工作,您可以使用pycassa,或者您可以使用复合键创建列。

例如,使用CQL3:

create table ratings ( user_id uuid, item_id uuid, rating int, primary key (user_id, item_id));

您实际上创建了一个宽行,user_id作为键,列将具有item_id,并且评级将是值。使用复合主键,行将转换为列。

您可能需要阅读此内容:http://brianoneill.blogspot.com/2012/09/composite-keys-connecting-dots-between.html

答案 1 :(得分:0)

好的,首先我需要像这样定义我的列族:     创建表测试(     用户文字,     itemLiked文字,     主键(user,itemLiked))

因此用户是行键,而itemLiked是群集键。 如果我向此cf插入值,cassanndra不会为此创建行(内部) itemliked值将是列的名称     插入test(user,itemLiked)值(“user1”,“Item1”);     插入test(user,itemLiked)值(“user1”,“Item1”);

因此cassandra将为rowkey user1创建两个名为Item1和Item2的列 这列没有任何值,如本文所述:    http://cassandra.apache.org/doc/cql3/CQL.html 符合: 此外,一个表必须至少定义一个不属于PRIMARY KEY的列,因为Cassandra中只有一行包含至少一个这样的列的值。