在 Python 中为 Cassandra 生成 UUID
呵呵, 我正在使用
cf.insert(uuid.uuid1().bytes_le, {'column1': 'val1'}) (pycassa)
为 Cassandra 创建 TimeUUID,但收到错误
InvalidRequestException:
InvalidRequestException(why='UUIDs must be exactly 16 bytes')
It does'不能与
uuid.uuid1()
uuid.uuid1().bytes
str(uuid.uuid1())
任何一个一起工作。
创建与 CompareWith="TimeUUIDType" 标志一起使用的有效 TimeUUID 的最佳方法是什么?
谢谢,
亨里克
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看起来您正在使用 uuid 作为行键而不是列名。
'compare_with: TimeUUIDType' 属性指定将使用 TimeUUIDType 来比较列名,即 告诉 Cassandra 如何对列进行排序以进行切片操作
您是否考虑过使用任何高级 Python 客户端?例如 Tradedgy,懒惰男孩、Telephus 或 Pycassa
Looks like you are using the uuid as the row key and not the column name.
The 'compare_with: TimeUUIDType' attribute specifies that the column names will be compared with using the TimeUUIDType, i.e it tells Cassandra how to sort the columns for slicing operations
Have you considered using any of the high level python clients? E.g. Tradedgy, Lazy Boy, Telephus or Pycassa
您必须确保您的列族架构接受 UUID 作为键。您的代码将使用创建为(使用 cassandra-cli)的列族:
要向此 CF 添加值:
You must ensure your column family schema accepts UUID as key. Your code will work with a column family created as (using cassandra-cli):
To add values to this CF: