如何使用pycassa指定主键?

时间:2015-11-18 15:46:26

标签: cassandra pycassa nosql

我正在尝试使用 pycassa 添加主键。我可以使用CQL3做到这一点,但我找不到任何解释如何在网络上与Pycassa一起做这件事的文档。我google了太多,没找到任何东西。

  • 有谁知道我如何使用Pycassa指定哪个将成为我的列系列的主键?

  • 另外,我有另一个问题。是否可以拥有一个大型主键?例如PRIMARY KEY(id,name,last_name,age)。

谢谢

1 个答案:

答案 0 :(得分:2)

是的,您可以拥有一个大型主键(" 复合键")。在您的示例中,id将是分区键,而namelast_nameage群集密钥。所有字段组合在一起构成主键

有关密钥的不同类型(和命名)的非常好的解释,请查看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})