ClickHouse引擎之 表和列的ttl

2021-10-11 03:13:41 字數 1813 閱讀 1089

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...