파이썬에서 카산드라를 위해 UUID를 생성하십시오
문제
heh,
를 사용하고 있습니다 cf.insert(uuid.uuid1().bytes_le, {'column1': 'val1'})
(pycassa)
카세이드를위한 시간을 생성하지만 오류를 얻는
InvalidRequestException:
InvalidRequestException(why='UUIDs must be exactly 16 bytes')
.
에서 작동하지 않습니다.
uuid.uuid1()
uuid.uuid1().bytes
str(uuid.uuid1())
.
.
comparewith="timeuidtype"플래그와 함께 사용할 유효한 시간을 만들 수있는 가장 좋은 방법은 무엇입니까?
감사합니다,
헨릭
해결책
열 패밀리 스키마가 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를 행 키와 열 이름이 아닌 행 키로 사용하는 것처럼 보입니다.
' compare_with : timeuuidtype 속성은 timeUIDType, 즉 는 Cassandra를 알려줍니다.
열을 정렬하는 방법 을 정렬하는 방법높은 수준의 파이썬 클라이언트를 사용하여 고려해 왔습니까?예를 들어, Tradedgy , 게으른 소년 , vestrus 또는 pycassa
제휴하지 않습니다 StackOverflow