首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用CQLEngine在Cassandra中创建无价值列

如何用CQLEngine在Cassandra中创建无价值列
EN

Stack Overflow用户
提问于 2013-07-22 02:44:24
回答 2查看 597关注 0票数 3

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

EN

回答 2

Stack Overflow用户

发布于 2013-07-24 05:02:58

传统上,您所询问的内容将使用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

票数 0
EN

Stack Overflow用户

发布于 2013-07-31 22:40:11

好的,首先我需要这样定义我的列族: create table test( user text,itemLiked text,主键(user,itemLiked))

因此,用户是行键,而itemLiked是聚类键。如果我向这个cf插入值,cassanndra不会(在内部)为它创建行,而itemliked值将是插入到测试(user,itemLiked)值( "user1",“Item1”)中的列的名称;插入到测试(user,itemLiked)值( "user1",“Item1”)中的列的名称;

因此,cassandra将为row KEY user1创建两个名为Item1和Item2的列。此列没有任何值,如本文所述:http://cassandra.apache.org/doc/cql3/CQL.html in line:此外,表必须定义至少一列不是主键的一部分,因为只有当一行包含至少一个这样的列的值时,才存在于Cassandra中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17775648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档