Bagaimana Cassandra DateTieredCompactionStrategy mengidentifikasi stempel waktu data saya?

Baru mengenal Cassandra, saya baru saja membaca blog tentang Cassandra DTCS.

Misalkan saya punya tabel seperti ini misalnya,

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

Sepertinya satu-satunya hal yang perlu saya lakukan untuk mengaktifkan DTCS adalah

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

Benarkah itu? Lalu bagaimana dosis cassandra mengetahui bidang data saya yang mana yang merupakan stempel waktu yang saya harapkan dapat digunakan untuk DTCS?


person rox    schedule 06.06.2016    source sumber


Jawaban (1)


Itu tidak menggunakan nilai "bidang" mana pun Anda.

Setiap kolom bukan kunci memiliki waktu tulis yang terkait, yang itulah yang digunakan oleh strategi tersebut.

Ini dapat diatur secara manual dengan klausa USING TIMESTAMP, atau akan diatur secara otomatis pada waktu pembaruan/penyisipan/penghapusan.

Oleh karena itu, sekarang Anda mungkin menyadari bahwa Anda sebenarnya tidak memerlukan t2 dalam skema Anda, tetapi cukup menggunakan waktu tulis bar.

person OrangeDog    schedule 06.06.2016