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