我正尝试在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()应该能起到作用!仍然存在的问题是,验证器是否可以以某种方式持久?
发布于 2011-11-24 02:03:36
您可能不想直接修改column_validators。它们是根据柱族的column_metadata属性自动设置的。您可以在pycassa中使用'alter_column‘命令来修改Cassandra中的列族模式。然后,column_validators将永久正确设置。
http://pycassa.github.com/pycassa/api/pycassa/system_manager.html#pycassa.system_manager.SystemManager.alter_column
https://stackoverflow.com/questions/8244725
复制相似问题