22

在 Cassandra 术语中,它是什么TimeUUID以及何时使用?

4

3 回答 3

12

TimeUUID 是一个随机的全局唯一标识符。16 个字节。

十六进制演示示例:a4a70900-24e1-11df-8924-001ff3591711

请参阅http://en.wikipedia.org/wiki/Universally_Unique_Identifier

它可以作为关系数据库的主键,或者当您需要在某个键下存储值列表时。

例如查看这个基于 cassandra 的开源 twitter 示例:

http://twissandra.com/

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 用于引用其他地方的用户。

于 2010-04-10T17:28:20.677 回答
8

TimeUUID是抽象类AbstractType的六个具体实现之一。

对于 ColumnFamilies,您可以指定一个名为 CompareWith 的属性。(SuperColumns 具有类似的 CompareSubcolumnsWith 属性)。

此属性的有效值是实现抽象类 AbstractType 的类(例如 TimeUUID)。CompareWith 属性告诉 Cassandra 如何对列进行排序以进行切片操作。

如果您使用 Java 并使用带有 TimeUUID 的 cassandra,我建议您阅读cassandra FAQ 的这一部分

于 2010-04-10T17:23:24.727 回答
-2

指示 ColumnFamily 中的唯一“行”

于 2010-04-10T17:27:24.033 回答