我正在尝试使用 pycassa 添加主键。我可以使用CQL3做到这一点,但我找不到任何解释如何在网络上与Pycassa一起做这件事的文档。我google了太多,没找到任何东西。
有谁知道我如何使用Pycassa指定哪个将成为我的列系列的主键?
另外,我有另一个问题。是否可以拥有一个大型主键?例如PRIMARY KEY(id,name,last_name,age)。
谢谢
答案 0 :(得分:2)
是的,您可以拥有一个大型主键(" 复合键")。在您的示例中,id
将是分区键,而name
,last_name
,age
是群集密钥。所有字段组合在一起构成主键。
有关密钥的不同类型(和命名)的非常好的解释,请查看this SO answer。
This post给出了如何创建复合键的示例:
system_manager.create_column_family(..., key_validation_class="CompositeType(UTF8Type, Int32Type)")
对于您的数据,我猜:
system_manager.create_column_family(..., key_validation_class="CompositeType(Int32Type, UTF8Type, UTF8Type, Int32Type)")
我自己没有使用过pycassa,但pycassa documentation有这个例子:
col_fam.insert('row_key', {'col_name': 'col_val'})
所以我会猜测你的情况(为了完整性而添加几列):
col_fam.insert((id,name,last_name,age), {'firstname':first_name,'city':city})