小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
Doris
优点
1.同时支持 高并发点查询和高吞吐的Ad-hoc查询
2.同时支持 批量导入和近实时mini-batch导入
3.同时支持 明细和聚合查询
4.兼容Mysql协议和标准SQL
5.支持Rollup Table 和Rollup Table的智能查询路由
6.支持多表Join和灵活的表达式查询
7.支持Schema 在线变更
8.支持和Hash和Range二级分区
缺点
1.Doris 目前不支持如 update 或 insert 等操作单条数据的 DML 语句
2.不支持实时导入
3.不支持精确去重的物化索引
4.RollUP表需要逐个手动建立
使用场景
1.Doris的聚合模型主要用于固定模式的报表类查询场景,实现原理和Mesa完全一致
2.无精确去重的OLAP查询
3.百毫秒的高性能OLAP查询
4.大结果集查询
5.明细查询
kylin
优点
- 支持标准SQL,提供JDBC/ODBC接口
- 通过预计算Cube显著降低查询时的计算量,数据集越大效果越明显
- 支持精确去重计数,并且由于预计算,查询去重指标的速度很快
- 可以支持比较高的查询并发
缺点
- 需要学习Cube的定义和优化,学习成本较高
- SQL需要具有一定的结构,不支持AdHoc查询
- HBase没有二级索引,过滤的性能稍逊色
- 支持的维度数量不宜过多(一般不超过20个),否则Cube的计算和存储开销会明显增加
使用场景
1.固化查询:指标提取、多维分析、dashboard等
2.查询模式比较固定、SQL表达
3.数据规模大、指标数量多、去重指标要求精确
4.查询并发度高对响应时间要求比较严苛
Doris相比Kylin的优势:
1、Doris中比较独特的聚合函数是Replace函数,这个聚合函数能够保证相同Keys的记录只保留最新的Value,可以借助这个Replace函数来实现点更新即支持update操作 ; kylin 不支持update操作;
2、Doris同时支持高并发点查询和高吞吐的Ad-hoc查询;Kylin 不支持Ad-hoc查询;
3、Doris 支持明细查询;Kylin不支持指标的明细查询;
4、Doris 兼容mysql协议;Kylin不兼容mysql协议;
5、Doris中和Kylin的Cuboid等价的概念是RollUp表,但是Doris的RollUp表定义更灵活,维度列和指标列可以自由选择;而Kylin只可以选择维度列,每个cuboid都必须包含所有指标列;
Presto
优点
- Presto 与 Hive 对比, 能够处理PB级别的海量数据分析,但是Presto是基于内存运算的,减少没必要的硬盘IO, 所以更快
- 能够连接多个数据源, 跨数据源连表查
- 效率10倍
缺点
稳定性差
Presto并不是把PB级别的数据都放在内存中计算。根据场景,对于聚合操作:count、avg等,是边读数据边计算再清内存再读数据再计算。对于连表查,可能会产生大量的临时数据,速度会变慢
使用场景
支持在线数据查询,包括hive、mysql等。支持跨数据源查询。
Presto主要用来处理响应时间小于1秒到几分钟的场景
ClickHouse
优点
ClickHouse最大的特点就是快,快,快,重要的话说三遍!
与Hadoop、Spark这些巨无霸组件相比,ClickHouse很轻量级,其特点:
- 列式存储数据库,数据压缩
- 关系型、支持SQL
- 分布式并行计算,把单机性能压榨到极限
- 高可用
- 数据量级在PB级别
- 实时数据更新
- 索引
缺点
- 缺少高频率,低延迟的修改或删除已存在数据的能力。仅能用于批量删除或修改数据。
- 没有完整的事务支持
- 不支持二级索引
- 有限的SQL支持,join实现与众不同
- 不支持窗口功能
- 元数据管理需要人工干预维护
使用场景
ClickHouse在单表查询性能上独领风骚,远超过其他的OLAP数据库;
本文转载自: 掘金