我在使用time_uuid类型作为我的columnfamily中的键时遇到了问题。我想存储我的记录,并在插入它们时让它们排序,然后我发现time_uuid是一个好方法。这就是我建立了我的列族:pycassa中的时间UUID类型
sys.create_column_family("keyspace", "records", comparator_type=TIME_UUID_TYPE)
当我尝试插入,我这样做:
q=pycassa.ColumnFamily(pycassa.connect("keyspace"), "records")
myKey=pycassa.util.convert_time_to_uuid(datetime.datetime.utcnow())
q.insert(myKey,{'somedata':'comevalue'})
然而,当我插入数据,我总是得到一个错误:
v1 UUID列名或值的参数既不是UUID,也不是日期时间或数字。
如果我将comparator_type更改为UTF8_TYPE,它将起作用,但是返回时的项目顺序不符合它们的要求。我究竟做错了什么?
卡桑德拉时间序列数据的优秀读取可以在这里找到:http://rubyscale.com/blog/2011/03/06/basic-time-series-with -cassandra /)和这里:[datastax.com](http://www.datastax.com/dev/blog/advanced-time-series-with-cassandra) – georg
请注意,您可能需要将时间转换为UUID如果您需要**通过**'column_name'获取数据或**更新数据**,因此不希望pycassa将随机字节添加到UUID的非时间特定部分。为此,您需要设置'your_time_series_column_family.autopack_names = False'并生成'column_name',例如像这样:'pycassa.util.convert_time_to_uuid(time.time())。bytes' – georg