在pycassa中使用列验证器
我正在尝试在 pycassa
中设置一些 column_validators
,但在使用某种超级列的设置时遇到了麻烦:我似乎无法为包含在超级列中的列设置验证器。我尝试了类似下面的代码:
cf.column_validators['supercolumn_name']['column_name'] = types.FloatType()
但是这个方法不行,因为第二个字典还没有初始化。我试着把它设置成下面这样的:
cf.column_validators['supercolumn_name'] = {}
但也不行……所以如果有任何处理这个问题的例子,我会非常感激,因为官方的 pycassa
文档没有提供更详细的信息。此外,这些验证器似乎不是持久的,那么有没有办法让它们持久化呢?
补充:在查看 pycassa
的源代码后,我发现对于验证器,你不需要指定列所在的超级列,所以
cf.column_validators['column_name'] = types.FloatType()
应该可以解决这个问题!不过,问题仍然是这些验证器是否可以以某种方式持久化?
1 个回答
4
你可能不想直接修改 column_validators。它们是根据列族的 column_metadata 属性自动设置的。你可以使用 pycassa 中的 'alter_column' 命令来修改 Cassandra 的列族结构。这样,column_validators 就会被正确地永久设置。