J'essaie d'insérer une colonne avec des clés UUID1 pour pouvoir les trier par date. J'ai toujours l'erreur "cassandra.ttypes.InvalidRequestException: InvalidRequestException (pourquoi = 'UUIDs doivent être exactement 16 octets')", et je ne sais pas pourquoi.TimeUUID avec Cassandra et Lazyboy
Voici le code génération de cette erreur:
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()
Qu'est-ce que je fait de mal? J'utilise lazyboy 0.705 avec Cassandra 0.6.4. La configuration de stockage est:
<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>
quelle est la longueur de 'uuid.uuid1() bytes'.? –
len (uuid.uuid1(). Octets) = 16, tapez (uuid.uuid1(). Bytes) =. 16 octets, comme prévu, je suppose. –
Pierre