次の列ファミリーに時系列データを保存しようとしています。
create column family t_data with comparator=TimeUUIDType and default_validation_class=UTF8Type and key_validation_class=UTF8Type;
私はこの方法でデータを正常に挿入しています:
data={datetime.datetime(2013, 3, 4, 17, 8, 57, 919671):'VALUE'}
key='row_id'
col_fam.insert(key,data)
ご覧のとおり、datetimeオブジェクトを列名として使用すると、pycassaはtimeUUIDオブジェクトに正しく変換されます。
[default@keyspace] get t_data[row_id];
=> (column=f36ad7be-84ed-11e2-af42-ef3ff4aa7c40, value=VALUE, timestamp=1362423749228331)
場合によっては、アプリケーションが一部のデータを更新する必要があります。問題は、同じ日時オブジェクトを渡してその列を更新しようとすると、pycassaが別のUUIDオブジェクト(時間部分は同じ)を作成するため、列を更新する代わりに別のUUIDオブジェクトを作成することです。
[default@keyspace] get t_data[row_id];
=> (column=f36ad7be-84ed-11e2-af42-ef3ff4aa7c40, value=VALUE, timestamp=1362423749228331)
=> (column=**f36ad7be**-84ed-11e2-b2fa-a6d3e28fea13, value=VALUE, timestamp=1362424025433209)
問題は、日時オブジェクトを渡すpycassaでTimeUUIDベースの列を更新するにはどうすればよいですか?または、これが正しい方法ではない場合、推奨される方法は何ですか?