2015,March02
Cassandra Time-To-Live(TTL)はDatastaxドキュメントに記載されています。 このブログ記事では、TTLが行ごとではなく列ごとに設定されていることを示すために、TTLを簡単に説明します。
まず、ドキュメントに記載されている例を再作成します。 私たちは、キースペース、テーブルを作成し、それにいくつかのデータを挿入します。 TTLがなくなるまでに24時間待つ必要がないため、TTL値は公式のドキュメントよりもはるかに低いです。
キースペースとテーブルを作成したので、TTLを照会しましょう:
cqlsh> SELECT TTL (date), TTL (name) from excelsior.clicks; ttl(date) | ttl(name)----------------------- 52 | 52
Insert or Update列ごとにTTLを変更する
CQL synatxで示されているように、TTLは列ごとに設定されます。 これを実証するために、データを再度挿入しますが、日付は除外します。
11秒待つと、異なる列が異なる時間に期限切れになる可能性があることがわかります。
cqlsh> select * from excelsior.clicks; userid | url | date | name--------------------------------------+-------------------+------+------ 3715e600-2eb0-11e2-81c1-0800200c9a66 | http://apache.org | null | Mary
これは、行が単一のエンティティとして動作することに慣れている場合、驚きとなる可能性があります。 Cassandraの行全体のTTLを更新する場合は、新しいTTLを使用して行全体を再度挿入または更新する必要があります。