Nella terminologia di Cassandra, che cos'è TimeUUID
e quando viene utilizzato?Nella terminologia di Cassandra, cos'è TimeUUID?
risposta
TimeUUID è una delle sei implementazioni concrete della classe astratta AbstractType.
Per ColumnFamilies si ha la possibilità di specificare un attributo chiamato CompareWith. (Le colonne Super hanno un attributo CompareSubcolumnsWith simile).
I valori validi per questo attributo sono classi che implementano la classe astratta AbstractType (ad esempio TimeUUID). L'attributo CompareWith indica a Cassandra come ordinare le colonne per le operazioni di divisione.
Se si utilizza Java e si utilizza cassandra con TimeUUID, è consigliabile leggere this section of the cassandra FAQ.
per indicare una "riga" unico in una ColumnFamily
TimeUUID è un identificatore univoco globale casuale. 16 byte.
presentazione esadecimaleEsempio: a4a70900-24e1-11df-8924-001ff3591711
Vedi http://en.wikipedia.org/wiki/Universally_Unique_Identifier
Può servire come chiave primaria in termini di database relazionale o quando è necessario memorizzare un elenco di valori sotto qualche chiave.
Per esempio controllare questo Twitter esempio open source basata su 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',
},
}
Qui utente viene assegnata una chiave unica a4a70900-24e1-11df-8924-001ff3591711 che è usato per riferirsi all'utente da altri posti.
Se è casuale, allora perché si chiama "Tempo"? Per me, il tempo implica qualcosa che può essere messo in ordine (come un timestamp). –
Non è casuale nel solito senso. TimeUUID è una chiave univoca basata sul tempo. Quindi l'ordine delle chiavi è basato sul tempo. –
perché dice che è un numero di 128 bit Un identificatore univoco universale (UUID) è un numero di 128 bit – chris
L'attuale * punto * di TimeUUID, a quanto ho capito, è quello di darvi una chiave primaria univoca che ordina in base al tempo. Lo useresti dove in un RDBMS avresti qualcosa con una chiave primaria intera e anche un campo data. Vedere http://arin.me/blog/wtf-is-a-supercolumn-cassandra-data-model per esempi. – poolie