ClickHouse表引擎簡單介紹
1. ClickHouse表引擎的概述
ClickHouse表引擎可分為四個系列,分別是Log、MergeTree、Integration、Special,其中包含了兩種特殊的引擎Replicated、Distributed。可以根據自己的業務場景組合使用。MergeTree系列是官方主推的存儲引擎,在本文章暫不研究,其他三種主要用于特殊用途,為本文主要介紹對象
2. 表引擎特點介紹
Log系列
Log系列表引擎主要用于快速寫入小表(1百萬行左右),然后全讀出來的場景。當需要快速寫入和整體讀的時候,最有效。
Log系列表引擎的共性是:
數據順序append寫到磁盤
不支持delete和update
不支持索引
不支持原子寫
Insert的操作會阻塞select操作
主要的特點是:
數據存儲磁盤
寫入時追加數據到文件末尾
不支持突變的操作
不支持索引,所以select效率比較低
非原子性寫入數據
該類型的引擎主要有三種:TinyLog、StripeLog、Log
TinyLog:不支持并發讀取數據文件,查詢性能較差,格式簡單,屬于存儲中間數據
Striplog:支持并發讀取數據文件,查詢性能比TinyLog好;將多有列存儲在用一個文件中,減少了文件個數
Log:支持并發讀取數據文件,查詢性能比TinyLog好;每個列會單獨存儲在一個獨立的文件中
Integration系列
該系統表引擎主要用于對接外部數據源
Kafka:可以將kafka Topic中的數據直接導入到clickhouse
Mysql:將Mysql作為存儲引擎,直接可以在Clickhouse中對mysql表進行select等操作
HDFS:直接讀取HDFS的特定格式的數據文件
Specal系列
Special系列的表引擎,主要是為了特定場景的。
Memory引擎,數據以未壓縮的原始形式存在內存中,服務器重啟數據就會消失。讀寫操作不會相互阻塞,不支持索引。簡單查詢下有非常高的性能表現。一般僅用來測試,適用于非常高的性能,同事數據量不大的場景。
Merge引擎本身不存儲數據,但同時從任意多個其他的表中讀取數據。讀取時自動并行,支持寫入。
Distributed引擎,本身不存儲數據,但是可以從多個服務器進行分布式查詢。讀是自動并行的
關于整合:
Merge引擎:在同一個服務器上的,多個相同結構的物理表,可以被整合成一張大的邏輯表,這張表的數據包含了物理表中的所有數據
Distributed:在不同的server上,多個相同結構的物理表,可以被整合成一張大的邏輯表,這張邏輯表的數據,就是包含了物理表的所有數據
ClickHouse
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。