В терминологии Кассандры, что такое TimeUUID?
В терминологии Кассандры, что является TimeUUID
и когда это используется?
3 ответа
TimeUUID является одной из шести конкретных реализаций абстрактного класса AbstractType.
Для ColumnFamilies у вас есть возможность указать атрибут с именем CompareWith. (SuperColumns имеет аналогичный атрибут CompareSubcolumnsWith).
Допустимыми значениями для этого атрибута являются классы, которые реализуют абстрактный класс AbstractType (например, TimeUUID). Атрибут CompareWith сообщает Cassandra, как сортировать столбцы для операций нарезки.
Если вы используете Java и используете cassandra с TimeUUID, я бы порекомендовал прочитать этот раздел часто задаваемых вопросов о cassandra.
TimeUUID - это случайный глобальный уникальный идентификатор. 16 байт.
Пример шестнадцатеричного представления: a4a70900-24e1-11df-8924-001ff3591711
Смотрите http://en.wikipedia.org/wiki/Universally_Unique_Identifier
Он может служить первичным ключом с точки зрения реляционной базы данных или когда вам нужно сохранить список значений под некоторым ключом.
Например, проверьте этот пример Twitter с открытым исходным кодом на основе cassandra:
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, который используется для обращения к пользователю из других мест.