1. 程式人生 > 其它 >大叔經驗分享(139)doris和clickhouse對比

大叔經驗分享(139)doris和clickhouse對比

*** 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弱