Как я могу указать первичный ключ с помощью pycassa?

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

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

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

Спасибо


person Nefeli    schedule 18.11.2015    source источник


Ответы (1)


Да, у вас может быть большой первичный ключ ("составной ключ"). В вашем примере id будет ключом раздела, а name, last_name, ageключами кластеризации. Все поля вместе образуют первичный ключ.

Очень хорошее объяснение различных типов (и названий) ключей см. в этом ответе SO.

В этом сообщении приведен пример создания составного ключа. :

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 есть этот пример:

col_fam.insert('row_key', {'col_name': 'col_val'})

Итак, я рискну предположить для вашего случая (добавив пару столбцов для полноты):

col_fam.insert((id,name,last_name,age), {'firstname':first_name,'city':city})
person Marius Waldal    schedule 19.11.2015