2012-04-27 22 views
12

W poniższej kassandrze "uzyskaj wynik" .. możemy pobrać nazwę kolumny i jej wartości. Ale w jaki sposób odzyskać timestamp..Is istnieje lepszy pomysł, aby uzyskać wartości za pomocą znacznika czasuJak odzyskać sygnaturę czasową z kassandra?

[[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

Czy chcesz odzyskać użytkowników według znacznika czasu? –

+0

@ Fredrik LS: Nie, w interfejsie użytkownika chcę wyświetlać szczegóły użytkowników z wartościami datownika. – BobDroid

Odpowiedz

5

To nie zaleca się stosować kolumnę Cassandra znacznika czasu bezpośrednio w kodzie klienta; najlepiej, jeśli dodasz własne sygnatury czasowe w dowolnej formie najlepiej pasującej do twojego schematu. Ale jeśli naprawdę tego chcesz, możesz to zrobić za pośrednictwem interfejsu oszczędzania (i, co za tym idzie, niektórych bibliotek korzystających z interfejsu oszczędzania).

Dla przypadku pycassa, wystarczy dodać include_timestamp=True do argumentów do rozmowy .get(). Dla przypadków CQL, cqlsh i cassandra-cli, uważam, że nie ma absolutnie żadnego sposobu na zdobycie znacznika czasu, przepraszam.

+0

Tak. Twissandra (przynajmniej obecna wersja) używa Pycassa, a nie CQL. Ale co ważniejsze, znaczniki czasu, które przechowuje i używa, to tylko jawne kolumny wstawiane przez aplikację, a nie wewnętrzne znaczniki czasu kolumny. Na liniach danych linii użytkownika i osi czasu znaczniki czasu aplikacji składają się na nazwy kolumn, a wartości kolumn to tweet_ids. –

+0

Aha, i na tym dokumencie CQL, do którego się odwołujesz, chodzi o pracę z typem danych timestamp dla danych aplikacji, a nie z wewnętrznymi znacznikami czasu kolumny. Napisałem tę konkretną sekcję tego dokumentu, więc jestem całkiem pewny :) –

+3

Aktualizacja: ten bilet był * ledwo * dodany, co sugeruje, że sygnatury czasowe kolumn i TTL są dostępne dla CQL: https://issues.apache.org/ jira/browse/CASSANDRA-4217. Ale nie teraz. –

33

Po prostu przebiegł ten wątek i stwierdził, że odpowiedź jest nieaktualna. CQL teraz ujawnia wewnętrzne znaczniki czasu za pomocą funkcji writetime():

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

Dlaczego nie można zobaczyć znaczników czasu dla indeksowanych kolumn? – ipeacocks

+2

jak uczynić ten znacznik czasu ludzkim readableform –

Powiązane problemy