大数据分析——Apache Doris(三)

413 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第6天,点击查看活动详情

1.1  开源OLAP引擎对比

图片.png

MOLAP模式的劣势(以Kylin为例)

  • 应用层模型复杂,根据业务需要以及Kylin生产需要,还要做较多模型预处理。这样在不同的业务场景中,模型的利用率也比较低。

  • 由于MOLAP不支持明细数据的查询,在“汇总+明细”的应用场景中,明细数据需要同步到DBMS引擎来响应交互,增加了生产的运维成本。

  • 较多的预处理伴随着较高的生产成本。

ROLAP模式的优势

  • 应用层模型设计简化,将数据固定在一个稳定的数据粒度即可。比如商家粒度的星形模型,同时复用率也比较高。

  • App层的业务表达可以通过视图进行封装,减少了数据冗余,同时提高了应用的灵活性,降低了运维成本。

  • 同时支持“汇总+明细”。

  • 模型轻量标准化,极大的降低了生产成本。

综上所述,在变化维、非预设维、细粒度统计的应用场景下,使用MPP引擎驱动的ROLAP模式,可以简化模型设计,减少预计算的代价,并通过强大的实时计算能力,可以支撑良好的实时交互体验。

总结:

  • 数据压缩率Clickhouse好

  • ClickHouse单表查询性能优势巨大

  • Join查询两者各有优劣,数据量小情况下Clickhouse好,数据量大Doris好

  • Doris对SQL支持情况要好

图片.png

上图是整个Doris的具体使用场景,主要是它的接收数据源,以及它的一个整体的模块,还有最后它的一个可视化的呈现。后面会有一张更详细的图去介绍它整个的来源,以及最后可以输出的数据流向。

一般情况下,用户的原始数据,比如日志或者在事务型数据库中的数据,经过流式系统或离线处理后,导入到Doris中以供上层的报表工具或者数据分析师查询使用。

整体架构

Doris主要整合了Google Mesa(数据模型),Apache Impala(MPP Query Engine)和Apache ORCFile (存储格式,编码和压缩) 的技术。

为什么要将这三种技术整合?

  • Mesa可以满足我们许多存储需求的需求,但是Mesa本身不提供SQL查询引擎。

  • Impala是一个非常好的MPP SQL查询引擎,但是缺少完美的分布式存储引擎。

  • 自研列式存储:存储层对存储数据的管理通过storage_root_path路径进行配置,路径可以是多个。存储目录下一层按照分桶进行组织,分桶目录下存放具体的tablet,按照tablet_id命名子目录。

因此选择了这三种技术的组合。