【发布时间】:2011-02-06 12:53:22
【问题描述】:
在 Cassandra 术语中,TimeUUID 是什么?何时使用?
【问题讨论】:
在 Cassandra 术语中,TimeUUID 是什么?何时使用?
【问题讨论】:
TimeUUID 是一个随机的全局唯一标识符。 16 字节。
十六进制表示示例:a4a70900-24e1-11df-8924-001ff3591711
见http://en.wikipedia.org/wiki/Universally_Unique_Identifier
它可以作为关系数据库的主键,或者当您需要在某个键下存储值列表时。
例如查看这个基于 cassandra 的开源 twitter 示例:
http://github.com/ericflo/twissandra
User = {
'a4a70900-24e1-11df-8924-001ff3591711': {
'id': 'a4a70900-24e1-11df-8924-001ff3591711',
'username': 'ericflo',
'password': '****',
},
}
Username = {
'ericflo': {
'id': 'a4a70900-24e1-11df-8924-001ff3591711',
},
}
Friends = {
'a4a70900-24e1-11df-8924-001ff3591711': {
# friend id: timestamp of when the friendship was added
'10cf667c-24e2-11df-8924-001ff3591711': '1267413962580791',
'343d5db2-24e2-11df-8924-001ff3591711': '1267413990076949',
'3f22b5f6-24e2-11df-8924-001ff3591711': '1267414008133277',
},
}
这里为用户分配了一个唯一键 a4a70900-24e1-11df-8924-001ff3591711,用于引用其他地方的用户。
【讨论】:
TimeUUID 是抽象类AbstractType 的六个具体实现之一。
对于 ColumnFamilies,您可以指定一个名为 CompareWith 的属性。 (SuperColumns 具有类似的 CompareSubcolumnsWith 属性)。
此属性的有效值是实现抽象类 AbstractType 的类(例如 TimeUUID)。 CompareWith 属性告诉 Cassandra 如何对列进行排序以进行切片操作。
如果您使用 Java 并使用带有 TimeUUID 的 cassandra,我建议您阅读 this section of the cassandra FAQ。
【讨论】:
表示 ColumnFamily 中唯一的“行”
【讨论】: