嘿,
我正在使用
cf.insert(uuid.uuid1().bytes_le, {'column1': 'val1'})(pycassa)

为Cassandra创建一个TimeUUID,但出现错误

InvalidRequestException:
InvalidRequestException(why='UUIDs must be exactly 16 bytes')

它不适用于
uuid.uuid1()
uuid.uuid1().bytes
str(uuid.uuid1())

任何一个。

创建与CompareWith =“TimeUUIDType”标志一起使用的有效TimeUUID的最佳方法是什么?

谢谢,
亨里克

最佳答案

您必须确保列族架构接受UUID作为键。您的代码将与创建为(使用cassandra-cli)的列族一起使用:

create column family MyColumnFamily
  with column_type = 'Standard'
  and comparator = 'AsciiType'
  and default_validation_class = 'BytesType'
  and key_validation_class = 'TimeUUIDType';

要将值添加到此CF:
import pycassa
pool = pycassa.ConnectionPool('Keyspace1')
cf = pycassa.ColumnFamily(pool, 'MyColumnFamily')
cf.insert(uuid.uuid1(), {'column1': 'val1'})

关于python - 在Python中为Cassandra生成UUID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3240267/

10-16 01:14