Heh, I'm using
cf.insert(uuid.uuid1().bytes_le, {'column1': 'val1'})
(pycassa)
to create a TimeUUID for Cassandra, but getting the error
InvalidRequestException:
InvalidRequestException(why='UUIDs must be exactly 16 bytes')
It doesn't work with
uuid.uuid1()
uuid.uuid1().bytes
str(uuid.uuid1())
either.
What's the best way to create a valid TimeUUID to use with the CompareWith="TimeUUIDType" flag?
Thanks,
Henrik
You must ensure your column family schema accepts UUID as key. Your code will work with a column family created as (using cassandra-cli):
create column family MyColumnFamily
with column_type = 'Standard'
and comparator = 'AsciiType'
and default_validation_class = 'BytesType'
and key_validation_class = 'TimeUUIDType';
To add values to this CF:
import pycassa
pool = pycassa.ConnectionPool('Keyspace1')
cf = pycassa.ColumnFamily(pool, 'MyColumnFamily')
cf.insert(uuid.uuid1(), {'column1': 'val1'})