olap 分析对比

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

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

优点

  1. 支持标准SQL,提供JDBC/ODBC接口
  2. 通过预计算Cube显著降低查询时的计算量,数据集越大效果越明显
  3. 支持精确去重计数,并且由于预计算,查询去重指标的速度很快
  4. 可以支持比较高的查询并发

缺点

  1. 需要学习Cube的定义和优化,学习成本较高
  2. SQL需要具有一定的结构,不支持AdHoc查询
  3. HBase没有二级索引,过滤的性能稍逊色
  4. 支持的维度数量不宜过多(一般不超过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数据库;

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%