ClickHouse 使用TTL
什麼是TTL?
TTL的意思是Time To Live表示資料的存活時間。由於資料的價值會根據儲存的時間成反比,出於儲存成本的考慮通常只會保留近一年的資料。而在MergeTree (合併樹)引擎中,可以通過設定TTL來輕鬆管理資料的存活時間,使資料的價值最大化。
在ClickHouse 中,TTL可以設定值的生命週期,它既可以為整張表設定,也可以為每個列欄位單獨設定。表級別的 TTL 還會指定資料在磁碟和捲上自動轉移的邏輯。TTL 表示式的計算結果必須是 日期(date) 或 日期時間(datetime),如果同時設定了列級別的和表級別的TTL則以先到期的為準。
欄位級別TTL
當列欄位中的值過期時, ClickHouse會將它們替換成資料型別的預設值。如果分割槽內,某一列的所有值均已過期,ClickHouse會從檔案系統中刪除此列。ClickHouse的INTERVAL(資料時間間隔)支援的操作有:second,minute,hour,day,week,month(月),quarter(季度),year(年)。
示例:
# 建立時指定 TTL
CREATE TABLE example_table
(
d DateTime,
a Int TTL d + INTERVAL 1 day,
b Int TTL d + INTERVAL 1 day,
c String
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(d)
ORDER BY d;
# 為表中已存在的列欄位新增 TTL
ALTER TABLE example_table
MODIFY COLUMN `c` String TTL d + toIntervalDay(1)
# 修改列欄位的 TTL
ALTER TABLE example_table
MODIFY COLUMN
c String TTL d + INTERVAL 1 WEEK;
表級別TTL
表可以設定一個用於移除過期行的表示式,以及多個用於在磁碟或捲上自動轉移資料片段的表示式。當表中的行過期時,ClickHouse 會刪除所有對應的行。
示例:
# 建立時指定 TTL
CREATE TABLE example_table
(
d DateTime,
a Int
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(d)
ORDER BY d
TTL d + INTERVAL 1 MONTH [DELETE],
d + INTERVAL 1 WEEK TO VOLUME 'aaa',
d + INTERVAL 2 WEEK TO DISK 'bbb';
# 修改表的 TTL
ALTER TABLE example_table
MODIFY TTL d + INTERVAL 1 DAY;
參考文章:clickhouse官方文件
相關文章
- ClickHouse 建立管理員使用者
- clickhouse使用的一點總結
- 關於TRACERT和TTL
- ping ,time,TTL詳解
- 域名解析TTL是什麼意思 TTL值設定為多少合適?
- 33-TTL Controller for Finished ResourcesController
- TTL和CMOS的區別
- [Clickhouse] Clickhouse 報SQLException : Read timed outSQLException
- ClickHouse(04)如何搭建ClickHouse叢集
- Clickhouse 使用者自定義外部函式函式
- clickhouse for centos7安裝和使用初探CentOS
- 使用 Apache Superset 視覺化 ClickHouse 資料Apache視覺化
- ClickHouse(01)什麼是ClickHouse,ClickHouse適用於什麼場景
- DNS入門學習:什麼是TTL值?如何設定合適的TTL值?DNS
- [clickhouse] Clickhouse之開窗函式篇函式
- 什麼是域名解析TTL?
- Install clickhouse
- 使用 NineData GUI 建立與修改 ClickHouse 表結構GUI
- 【clickhouse專欄】clickhouse效能為何如此卓越
- ClickHouse(03)ClickHouse怎麼安裝和部署
- Clickhouse Engine kafka 將kafka資料同步clickhouseKafka
- ClickHouse(19)ClickHouse整合Hive表引擎詳細解析Hive
- ClickHouse(18)ClickHouse整合ODBC表引擎詳細解析
- ClickHouse(17)ClickHouse整合JDBC表引擎詳細解析JDBC
- ClickHouse(16)ClickHouse日誌引擎Log詳細解析
- clickhouse學習(1)-clickhouse安裝解除安裝
- Apache Flink 特性 - State TTL (Time-to-Live)Apache
- RabbitMQ中三個TTL的探討MQ
- 圖資料庫 Nebula Graph TTL 特性資料庫
- RabbitMQ 高階 - 過期時間 TTLMQ
- Python clickhouse-driver 類庫使用學習總結Python
- Python使用ClickHouse的實踐與踩坑記錄Python
- clickhouse_mergeTree
- ClickHouse MergeTree引擎
- ClickHouse實戰
- ClickHouse壓測
- pulsar sink clickhouse
- TTL、RS-232、RS-485區別