在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,则建议阅读cassandra FAQ的此部分。
用于表示ColumnFamily中唯一的“行”