Генерировать UUID для кассандры в Python
Вопрос
хех, Я использую
cf.insert(uuid.uuid1().bytes_le, {'column1': 'val1'})
(Pycassa)
Чтобы создать timeuuue для кассандры, но получить ошибку
InvalidRequestException:
InvalidRequestException(why='UUIDs must be exactly 16 bytes')
.
Это не работает с
uuid.uuid1()
uuid.uuid1().bytes
str(uuid.uuid1())
.
тоже.
Какой лучший способ создать действительный Timeuuud для использования с призванным флагом= «timeuuittype»?
Спасибо,
Хенрик
Решение
Вы должны убедиться, что ваша семейная схема столбца принимает 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'})
. Другие советы
Похоже, вы используете UUID в качестве ключа строки, а не имя столбца.
"
Вы учитывали, используя любой из клиентов Python высокого уровня?Например. Торговый объект ,