*** | doris | clickhouse | |
---|---|---|---|
官网 | Apache Doris: Open-Source Real-Time Data Warehouse - Apache Doris | Fast Open-Source OLAP DBMS - ClickHouse | |
版本 | 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弱 |
大叔经验分享(139)doris和clickhouse对比
最新推荐文章于 2024-06-20 14:56:45 发布