官网 |
|
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弱 |