我想在pycassa
中設置一些column_validators
,但在使用某種supercolum設置時遇到問題:我似乎無法爲包含在超列中的列設置驗證程序。我想是這樣在pycassa中使用column_validators
cf.column_validators['supercolumn_name']['column_name'] = types.FloatType()
不工作,因爲第二庫尚未初始化,試圖將其設置爲類似
cf.column_validators['supercolumn_name'] = {}
也不管用...因此,任何關於如何處理這個問題的例子都會受到讚賞,因爲官方的pycassa文檔沒有提供更詳細的信息。 此外,這些驗證器似乎不是持久的,所以有沒有可能持續設置它們?
編輯:看着pycassa的源代碼後,我發現,對於該驗證你不必指定列包含在supercolumn,所以
cf.column_validators['column_name'] = types.FloatType()
應該做的伎倆!仍然問題是否驗證者可以以某種方式持久化?
正確。如果你想持久化,你需要使用'alter_column'來改變實際的模式。 Pycassa允許你自己設置column_validator,這樣你就可以在cassandra-cli中做'假設',但它不會持久化,所以沒有其他客戶端會自動將值轉換爲該類型。 –
@nickmbailey:感謝這就是我一直在尋找的東西,因爲在任何教程中都沒有提到它,所以我很難找到它,因爲你並不真正瞭解你將不得不期待哪個模塊它... –