Cassandra TTL jest w kolumnie

2015, Marzec 02

Cassandra Time-To-Live (TTL) jest opisane w dokumentacji Datastax. Ten post na blogu krótko bada to, aby zademonstrować, że TTL jest ustawiany na kolumnę, a nie na wiersz.

zaczynamy od odtworzenia przykładu podanego w dokumentacji. Tworzymy przestrzeń kluczy, tabelę i wstawiamy do niej dane. Wartość TTL jest znacznie niższa niż w oficjalnej dokumentacji, ponieważ nie chcę czekać 24 godziny, zanim TTL się skończy.

teraz, gdy stworzyliśmy naszą przestrzeń kluczy i tabelę, zapytajmy o TTL:

cqlsh> SELECT TTL (date), TTL (name) from excelsior.clicks; ttl(date) | ttl(name)----------------------- 52 | 52

Wstaw lub zaktualizuj, aby zmienić TTL na kolumnę

jak wykazano w CQL synatx, TTL jest ustawiany na kolumnę. Aby to zademonstrować, wstawiamy dane ponownie, ale wykluczamy datę.

jeśli poczekamy 11 sekund, zobaczymy, że różne kolumny mogą wygasnąć w różnym czasie.

cqlsh> select * from excelsior.clicks; userid | url | date | name--------------------------------------+-------------------+------+------ 3715e600-2eb0-11e2-81c1-0800200c9a66 | http://apache.org | null | Mary

może to być zaskoczeniem, jeśli jesteś przyzwyczajony do wierszy zachowujących się jak jedna jednostka. Jeśli chcesz zaktualizować TTL dla całego wiersza w Cassandrze, musisz wstawić lub zaktualizować cały wiersz ponownie za pomocą nowego TTL.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.