大叔經驗分享(139)doris和clickhouse對比
阿新 • • 發佈:2022-05-20
*** | doris | clickhouse | |
---|---|---|---|
官網 | http://doris.apache.org/ | https://clickhouse.tech/ | |
版本 | 0.14.0 | 21.7.2.7 | |
開源 | 是 | 是 | |
開發語言 | * | java + c | c |
安裝 | 原始碼編譯 | rpm包 | |
定位 | olap | olap | |
架構 | mpp | scatter-gatter | |
開發公司 | Baidu | Yandex | |
實現 | google mesa + impala | ||
儲存 | 自己管理,lsm-tree + compact | 自己管理,merge tree | |
列式 | 是 | 是 | |
叢集 | fe主從 | zk(read-only mode)、clickhouse-keeper | |
資料分佈 | ** | 透明 | 本地表、分散式表 |
副本 | ** | tablet、replica(單master) | shard、replica(多master) |
大表寫入 | ** | 透明 | 人工分shard做均衡,類似於分庫操作 |
角色 | 3個fe、至少3個be | 至少2個server | |
高可用 | 多fe | 多server | |
元資料高可用 | 支援,berkerlydb | shard+replica,/clickhouse_path/metadata,system table | |
程序守護 | 第三方 supervisor | systemctl | |
開機啟動 | 第三方 supervisor | systemctl | |
監控 | *** | prometheus + grafana | 只能記錄日誌檔案,第三方 clickhouse-grafana + prometheus |
擴容 | *** | fe和be均可通過命令擴容,擴容後資料自動遷移、無需人工干預 | shard擴容、拆環、資料遷移(re-shard),全程都需要人工操作 |
sql支援 | *** | 豐富 | 一般 |
客戶端 | ** | mysql | clickhouse-client、mysql |
許可權 | mysql | grant、revoke語句,支援外部(LDAP) | |
升級 | 替換安裝檔案後先逐個重啟be,再逐個重啟fe | 停服,yum upgrade,啟動 | |
管理介面 |
http://ip:8030 | 無 | |
jdbc | * | jdbc:mysql:// | jdbc:clickhouse:// |
Tableau整合 | * | mysql | 其他資料來源(odbc) |
spark整合 | spark connection,可將doris對映到spark view | 不支援 | |
flink整合 | flink connection | 第三方 flink-clickhouse-sink | |
logstash整合 | output | 不支援 | |
kafka整合 | 支援(routine load) | 支援(kafka engine) | |
資料匯入 | ** | http(file、csv、json)、broker(hdfs、hive)、routine(kafka)、外部表 | http、mysql、kafka |
匯入事務控制 | ** | 支援,transaction id | 不支援 |
表分割槽 | *** | 支援,Range、List | 支援,日期型別 |
表分桶 | *** | 支援 | 不支援 |
join | *** | hash、broadcast、colocate、bucket | hash、merge(兩個及以上大表) |
多租戶 | * | 實驗階段,cluster | |
預聚合 | *** | 支援,可根據場景自定義任意rollup | 支援,MergeTree系列 |
自定義聚合前後順序 | 支援,sequence column | 不支援 | |
rollup | *** | 支援,Aggregate表 | 不支援 |
物化檢視 | *** | 支援,單表,rollup的超集 | 支援,to table,populate,live |
物化檢視使用 | *** | 透明 | 顯式指定 |
外部表 | *** | odbc(mysql、oracle、postgre)、es(支援Pushdown)、hive | database(mysql、postgre) |
表型別 | Aggregate、Unique、Duplicate | MergeTree、ReplacingMergeTree | |
主索引 | prefix sparse index | sparse index(primary key),索引進記憶體 | |
排序列 | prefix,36byte | sort by | |
其他索引 | bloomfilter、bitmap | data skipping indexes(minmax/set/bloom_filter/ngrambf/tokenbf),人工新增 | |
行分組 | 1024 | index_granularity=8192 | |
primary key | 無 | 有,可重複 | |
多磁碟 | *** | 支援多磁碟,ssd和hdd,根據分割槽策略自動冷熱資料分離 | 支援多磁碟,ssd和hdd,根據分割槽策略自動冷熱資料分離(TTL) |
自動建立新日期型分割槽 | 支援 | ||
動態分割槽 | 支援 | ||
bitmap型別 | *** | 支援 | 支援 |
表切換 | * | 支援,replace | 支援,exchange |
分割槽切換 | * | 支援 | 不支援 |
資料更新 | append、delete、merge | MergeTree支援,mutation,高成本 | |
資料刪除 | 支援,標記 + compact | MergeTree支援,mutation,高成本 | |
修改表結構 | 支援,時間較長 | 支援,很快,merge之後資料生效 | |
資料備份 | ** | 支援,遠端(hdfs) | 不支援,人工備份(備份kafka資料、檔案系統快照、clickhouse-copier) |
資料恢復 | ** | 支援,遠端(hdfs) | 不支援,人工恢復 |
叢集均衡 | ** | 支援,BeLoad磁碟佔用、Partition數量 | 不支援,大表需要人工re-shard |
表刪除恢復 | 支援,回收站 | 支援,drop時只刪除元資料,後臺根據database_atomic_delay_before_drop_table_sec做實際刪除 | |
CPU SIMD加速 | ** | 暫不支援 | 支援 |
壓縮 | lz4 | Codecs(LZ4/LZ4HC/ZSTD),Specialized Codecs(Delta/DoubleDelta/Gorilla/T64) | |
UDF | 支援,c | 支援,c | |
HLL | 支援 | 支援 | |
取樣 | 不支援 | 支援 | |
檢視profile | 支援,命令開啟,頁面檢視 | sampling query profiler | |
雲託管 | 不支援 | 阿里雲、騰訊雲、金山雲等 | |
限制 | count慢 | join弱 |