2012-04-27 5 views
12

Nella sottostante cassandra, "ottieni risultato" .. possiamo recuperare il nome e i valori della colonna. Ma come recuperare i timestamp..Is c'è qualche idea migliore per ottenere i valori utilizzando timestampCome recuperare il timestamp da cassandra?

[[email protected]]get user[bob];           
=> (column=name, value=bobdroid, timestamp=1335361733545850) 
=> (column=email, [email protected], timestamp=1335361733545850) 
=> (column=age, value=23, timestamp=1335361733545850) 
=> (column=password, value=MTIz, timestamp=1335361733545850) 
Returned 4 results. 
Elapsed time: 4 msec(s). 
+0

Si desidera recuperare gli utenti per data/ora? –

+0

@ Fredrik LS: No nell'interfaccia utente Voglio visualizzare i dettagli degli utenti con i valori di Timestamp. – BobDroid

risposta

5

Non è raccomandato l'uso di colonna Cassandra timestamp direttamente nel codice cliente; idealmente, dovresti aggiungere i tuoi timestamp in qualsiasi forma sia più appropriata per il tuo schema. Ma se lo vuoi davvero, lo si può fare attraverso l'interfaccia di risparmio (e, per estensione, alcune librerie che usano l'interfaccia di risparmio).

Per il caso pycassa, è sufficiente aggiungere include_timestamp=True agli argomenti per la chiamata .get(). Per i casi CQL, cqlsh e cassandra-cli, credo che non ci sia assolutamente modo di ottenere il timestamp, mi spiace.

+0

Sì. Twissandra (almeno, la versione attuale) usa Pycassa, non CQL. Ma ancora più importante, i timestamp che archivia e utilizza sono solo colonne esplicite inserite dall'app e non i timestamp delle colonne interne. Nelle famiglie di colonne Userline e Timeline, i timestamp dell'app sono i nomi delle colonne e i valori delle colonne sono tweet_ids. –

+0

Oh, e su quel documento CQL a cui si fa riferimento, si tratta di lavorare con il tipo di data/ora per i dati delle app, non i timestamp delle colonne interne. Ho scritto quella particolare sezione di quel documento, quindi sono abbastanza sicuro :) Aggiornamento –

+3

: questo ticket è stato * appena aggiunto *, che propone di rendere timestamp delle colonne e TTL disponibili per CQL: https://issues.apache.org/ jira/browse/CASSANDRA-4217. Non ancora lì, però. –

33

Ho appena imbattuto in questa discussione e ho scoperto che la risposta non è aggiornata. CQL ora espone i timestamp interni utilizzando la funzione writetime():

select key,columnfoo,writetime(columnfoo) from tablebar; 
+1

Perché non è possibile vedere i timestamp per le colonne indicizzate? – ipeacocks

+2

come rendere questo timestamp alla forma leggibile umana –