1.ttl即time to live 表示資料的存活時間。在mergetree中,可以為某個列欄位或者整張表設定ttl。
2.當時間達到時,若列字段級別的ttl 則會刪除這一列的資料;
3.若表級別的ttl則會刪除整張表的資料;
3.若同時設定了列級別的和表級別的ttl則以先到期的為準。
根據時間create 列的時間, 對id 和name 的列進行ttl 過一分鐘後就將值銷毀掉,
注意: int 型別銷毀後值為0 string 銷毀後值為空。
create
table ttl_table_column
( createtime datetime
, id int ttl createtime +
interval
1minute
, name string ttl createtime +
interval
1minute
, address string
)engine
= mergetree
order
by createtime ;
insert
into ttl_table_column values
(now()
,1,'value1'
,'ccc1');
insert
into ttl_table_column values
(now()
,2,'value2'
,'ccc2'
);
create
table ttl_table
( createtime datetime
, id int
, name string,
address string
)engine
= mergetree
order
by createtime
ttl createtime +
interval
1minute
delete
;-- 插入資料
insert
into ttl_table values
(now()
,1,'value1'
,'ccc1');
insert
into ttl_table values
(now()
,2,'value2'
,'ccc2'
);
由於mergetree採用類似lsm tree的結構,很多儲存層處理邏輯直到compaction期間才會發生。
因此強制後台compaction執行完畢,再次查詢,發現仍舊沒有一條資料。
optimize table ttl_table final;
alter
table ttl_table modify
column name string ttl createtime +
interval
1day
;
alter
table ttl_table modify
column name string ttl createtime +
interval
1month
;
ClickHouse表常用引擎
是最簡單的表輕量引擎 最多約100萬行 一寫多讀的應用場景。同時讀寫會損害資料 tinylog 表經常作為中間表,用於資料的微批量處理.語法中無需攜帶任何引數 它將資料儲存到磁碟.每個欄位都以單獨壓縮檔案形式儲存.當寫入資料時,資料追加到檔案的末尾 這是目前clickhouse處理能力最好的引擎.引...
ClickHouse引擎介紹
三 資料表引擎 3.2 log系列 3.3 integration系列 3.4 special系列 clickhouse像mysql一樣提供了豐富的引擎 不同的引擎代表不同的型別,比如擁有何種特性 資料以何種形式被儲存以及如何被載入。預設引擎,此資料庫可以使用任意表引擎。字典引擎,此資料庫會為所有資...
click house其他引擎
特點 資料不會寫入到磁碟,重啟機器以後表還在但是資料丟失 應用場景 測試 段 建立乙個memory引擎的表 create table tb memory id int8 name string engine memory 插入資料 insert into tb memory values 1,zss...