我尝试插入带有UUID1键的列,以便能够按日期对它们进行排序。我总是得到错误“cassandra.ttypes.InvalidRequestException:InvalidRequestException(why ='UUIDs必须正好是16个字节')”,我不知道为什么。
以下是生成此错误的代码:
from lazyboy import *
from lazyboy.key import Key
import uuid
class TestItemKey(Key):
def __init__(self, key=None):
Key.__init__(self, 'MXstore', 'TestCF', key)
class TestItem(record.Record):
def __init__(self, *args, **kwargs):
record.Record.__init__(self, *args, **kwargs)
self.key = TestItemKey(uuid.uuid1().bytes)
connection.add_pool('MXstore', ['localhost:9160'])
tmp = {'foo' : 'bar'}
tmps = TestItem(tmp).save()
我做错了什么?我使用lassboy 0.705和Cassandra 0.6.4。 存储配置为:
<Keyspaces>
<Keyspace Name="MXstore">
<ColumnFamily Name="TestCF" CompareWith="TimeUUIDType" />
<ReplicaPlacementStrategy>org.apache.cassandra.locator.RackUnawareStrategy</ReplicaPlacementStrategy>
<ReplicationFactor>3</ReplicationFactor>
<EndPointSnitch>org.apache.cassandra.locator.EndPointSnitch</EndPointSnitch>
</Keyspace>
</Keyspaces>
答案 0 :(得分:1)
列名必须是uuid版本1.看起来你的密钥是uuid版本1