Как Cassandra DateTieredCompactionStrategy идентифицирует временную метку моих данных?

Новичок в Cassandra, я только что прочитал блог о Cassandra DTCS.

Предположим, у меня есть такая таблица, например,

CREATE TABLE foo (
   id text,
   t1 timestamp,
   t2 timestamp,
   bar text,
   PRIMARY KEY (id,t1)
);

Похоже, единственное, что мне нужно сделать, чтобы включить DTCS, это

ALTER TABLE <table> WITH compaction = {
    'class': 'DateTieredCompactionStrategy',
    'timestamp_resolution':'<resolution>', 'base_time_seconds':'3600',
    'max_sstable_age_days':'365'};

Это правда? Тогда как cassandra узнает, какое поле моих данных является отметкой времени, которую я ожидаю использовать для DTCS?


person rox    schedule 06.06.2016    source источник


Ответы (1)


Он не использует значение любого из ваших «полей».

С каждым неключевым столбцом связано время записи, которое это то, что использует стратегия.

Это можно установить вручную с помощью предложения USING TIMESTAMP или установить автоматически на время обновления/вставки/удаления.

Таким образом, теперь вы можете обнаружить, что вам на самом деле не нужно t2 в вашей схеме, а можно просто использовать время записи bar.

person OrangeDog    schedule 06.06.2016