Использование column_validators в pycassa

Я пытаюсь настроить некоторые column_validators в pycassa, но у меня проблемы с этим с какой-то настройкой суперстолбца: кажется, я не могу установить валидатор для столбца, содержащегося в суперстолбце. Я пытаюсь что-то вроде

cf.column_validators['supercolumn_name']['column_name'] = types.FloatType()

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

cf.column_validators['supercolumn_name'] = {}

тоже не работает... Поэтому приветствуется любой пример того, как с этим справиться, поскольку официальный документ pycassa не содержит более подробной информации об этом. Кроме того, эти валидаторы не кажутся постоянными, поэтому есть ли возможность установить их постоянно?

РЕДАКТИРОВАТЬ: после просмотра источника pycassa я узнал, что для валидаторов вам не нужно указывать суперстолбец, в котором содержится столбец, поэтому

cf.column_validators['column_name'] = types.FloatType()

должен сделать трюк! Тем не менее остается вопрос, можно ли как-то сделать валидаторы постоянными?


person Bernhard Vallant    schedule 23.11.2011    source источник


Ответы (1)


Вы, вероятно, не хотите напрямую изменять column_validators. Они устанавливаются автоматически на основе свойств column_metadata семейства столбцов. Вы можете использовать команду «alter_column» в pycassa, чтобы изменить схему семейства столбцов в Cassandra. Тогда column_validators будут установлены правильно навсегда.

http://pycassa.github.com/pycassa/api/pycassa/system_manager.html#pycassa.system_manager.SystemManager.alter_column

person nickmbailey    schedule 23.11.2011
comment
Правильный. Если вы хотите, чтобы это сохранялось, вам нужно использовать «alter_column», чтобы изменить фактическую схему. Pycassa позволяет вам самостоятельно устанавливать column_validators, чтобы вы могли сделать что-то вроде «предполагать» в cassandra-cli, но это не сохраняется, и поэтому никакие другие клиенты не будут автоматически преобразовывать значения в этот тип. - person Tyler Hobbs; 24.11.2011
comment
@nickmbailey: спасибо, это то, что я искал, так как это на самом деле не упоминается ни в одном учебнике, который я просматривал, его довольно сложно найти для новичка, поскольку вы действительно не знаете, в каком модуле вам следует ожидать этого ... - person Bernhard Vallant; 24.11.2011