2015-11-18 13 views
2

Я пытаюсь добавить первичный ключ, используя pycassa. Я могу сделать это с помощью CQL3, но я не могу найти какой-либо документ, который объясняет, как это сделать с Pycassa в Интернете. Я слишком много искал, не нашел ничего.Как указать первичный ключ с помощью pycassa?

  • Кто-нибудь знает, как я могу указать, каким будет мой первичный ключ моего семейства столбцов, используя Pycassa?

  • Кроме того, у меня есть другой вопрос. Возможно ли иметь большой первичный ключ? Например, PRIMARY KEY (id, name, last_name, age).

Спасибо

ответ

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}) 
Смежные вопросы