2020-04-04
大数据
0

目录

简介
架构对比
Apache Kylin
Doris
处理引擎与性能对比
Apache Kylin
Doris
特性对比
支持数据源
兼容性
查询优化
结论

简介

Apache Kylin 和 Doris 都是面向大数据的 OLAP 解决方案,旨在提供灵活的 SQL 查询能力以及高性能的分析能力。但两者的架构、使用场景和支持特性有所不同。

架构对比

Apache Kylin

  • 架构设计:Kylin 是基于 Hadoop 的列式存储框架,使用 CUBRID 和 HBase 存储事实表和维度表。
  • 数据处理:Kylin 使用 Hive 作为元数据存储,并提前在 HDFS 中建立 MOLAP 型索引。
  • 实时性:Kylin 通常是批处理模式,不太适合实时查询。
  • 扩展性:Kylin 需要预先计算数据,因此在大规模数据处理时扩展性有限。

Doris

  • 架构设计:Doris 采用 MillWheel 实时计算引擎和分布式存储技术。
  • 数据处理:Doris 支持实时和批量数据处理,同时具备较好的数据倾斜处理能力。
  • 实时性:Doris 能够支持毫秒级延迟的查询,高效地支持实时数据分析。
  • 扩展性:Doris 依靠分片和水平扩展,可以轻松应对大数据环境下的高数据量和高并发查询需求。

处理引擎与性能对比

Apache Kylin

  • 处理引擎:Kylin 在建立物理模型之后,通过 MapReduce 或 Spark 在 Hadoop 集群上进行 SQL 下沉执行,提供 MOLAP 类型的快速查询。
  • 查询性能:适合用于历史数据的多维分析,但实时性要求较高的场景表现欠佳。

Doris

  • 处理引擎:Doris 支持向量化执行计划、内存计算和分布式哈希存储,优化了 OLAP 查询的性能。
  • 查询性能:Doris 在大规模数据实时分析场景中表现出色,尤其适用于 ETL 后的数据即时分析。

特性对比

支持数据源

  • Kylin:主要针对 HDFS、HBase 上存储的半结构化和结构化数据。
  • Doris:支持多数据源接入性,如 MySQL、PostgreSQL 和实时插入的 Kafka/Spark Streaming 等。

兼容性

  • Kylin:SQL 预览版,部分标准 SQL 语法支持,适用于业务场景较少且数据规模较适中的分析任务。
  • Doris:为了兼容 MySQL 和 PostgreSQL 的生态,实现了高兼容性的 SQL 子集,适用于更广泛的用户群体。

查询优化

  • Kylin:在 MapReduce 或 Spark 上处理 SQL 转换,并利用 HBase 的快速访问性能。
  • Doris:优化了查询计划,包括列存表的索引优化和同事覆盖的查询优化,从而支持更复杂和高效的 SQL 查询。

结论

Apache Kylin 和 Doris 都是优秀的 OLAP 解决方案,但各有特色和适用场景。Kylin 适用于对实时性要求不高的大型数据集分析,而 Doris 则更擅长于大规模实时数据的即席分析。选择哪一个取决于具体的业务需求和技术环境。

本文作者:杨福佳

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!