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