组件更少,性能更高:Apache Doris 取代 ClickHouse、MySQL、Presto 和 HBase

作者:微信小助手

发布时间:2023-11-14T08:58:43

这篇文章是关于构建统一的 OLAP 平台。一家保险公司试图构建一个数据仓库,可以承担所有面向客户、分析师和管理层的数据分析工作负载。主要任务包括:

  • 保险合同自助查询:保险客户通过合同 ID 查询明细。并且支持保险期限、保险类型和索赔金额等过滤器。

  • 多维度分析:分析师需要根据不同的数据维度开发报告,从而提取洞察以促进产品创新和反欺诈工作。

  • 仪表板:为了创建保险销售趋势的可视化概述以及不同指标的水平和垂直比较。

组件密集型数据架构

用户从 Lambda 架构入手,将数据管道拆分为批处理链路和流处理链路。对于实时数据流,他们应用 Flink CDC ;对于批量导入,他们结合了 Sqoop、Python 和 DataX 来构建自己的数据集成工具,名为 Hisen。


然后,实时数据和离线数据在数据仓库层会合,该层由五个组件组成。


ClickHouse


数据仓库采用扁平表设计,ClickHouse 在扁平表读取方面表现出色。但随着业务的发展,面临两个方面的挑战:


  • 为了支持跨表连接和点查询,用户需要星型模式,这在 ClickHouse 中很难实现。
  • 保险合同的变更需要在数据仓库中实时更新。 在 ClickHouse 中,通过重新创建一个平面表来覆盖旧表来完成,但速度不够快。

MySQL


计算完成后,数据指标存储在 MySQL 中。随着数据规模的增长,MySQL 开始陷入困境,出现执行时间延长、抛出错误等问题。


Apache Hive + Presto


Hive是批处理环节中的主要执行者。可以转换、聚合、查询离线数据。Presto 是 Hive 的补充,用于交互式分析。


Apache HBase


HBase 承担主键查询。它从 MySQL 和 Hive 读取客户状态,包括客户信用、承保期限和保险金额。由于 HBase 本身不支持二级索引,因此读取非主键列的能力有限,但可以通过开源Phoenix组件或“通过hbase协处理器把二级索引自动同步至elasticsearch”来实现二级索引的功能。另外,作为 NoSQL 数据库,HBase 不支持 SQL 语句,对SQL语句的支持可以通过开源Phoenix组件或“HBase SDK 3.0.0发布,让HBase的使用变得更简捷”:https://github.com/CCweixiao/hbase-sdk或https://gitee.com/weixiaotome/hbase-sdk。
这些组件必须协同工作才能满足所有需求,使得数据仓库变得难以处理,不容易上手。因为工程师必须接受所有这些组件的培训。此外,架构的复杂性也增加了延迟的风险。
因此,用户试图寻找一种能够满足更多要求的工具。他们首先需要的是实时能力,包括实时写入、实时更新、实时响应数据查询。其次,需要在数据分析方面更加灵活,以支持面向客户的自助查询,如多维分析、大表连接查询、主键索引、上滚和下钻等。然后,对于批处理,还希望数据写入具有高吞吐量。
用户最终决定选择  Apache Doris


用 Apache Doris 替换四个组件


Apache Doris 能够进行实时和离线数据分析,同时支持高吞吐量的交互式分析和高并发的点查询。这就是为什么它可以取代 ClickHouse、MySQL、Presto 和 Apache HBase,作为整个数据系统的统一查询网关。
改进后的数据管道是一个更加干净的 Lambda 架构。
Apache Doris 提供了多种数据摄取方法。数据写入速度很快。除此之外,它还实现了 Merge-on-Write 以提高并发点查询的性能。


降低成本


新的架构降低了用户的人力成本。一方面,更简单的数据架构使得维护更容易;另一方面,开发者不再需要在数据服务 API 中加入实时和离线数据。
用户还可以使用 Doris 省钱,因为它支持分层存储。它允许用户将大量很少访问的历史数据放入对象存储中,这样囤积数据的成本要低得多。


更高效率


Apache Doris 的 QPS 可以达到万级,毫秒级响应数十亿点查询,面对客户的查询也能轻松应对。将热数据与冷数据分开的分层存储也提高了查询效率。


服务可用性


作为存储、计算和数据服务的统一数据仓库,Apache Doris 可以轻松实现灾难恢复。由于组件较少,他们不必担心数据丢失或重复。
Apache Doris 的跨集群复制(CCR)能力是用户服务可用性的重要保障。可以在几分钟甚至几秒钟内实现集群之间的数据同步,并且实现了两种机制来保证数据的可靠性:


  • Binlog :该机制可以自动记录数据的变化,并为每个数据修改操作生成一个LogID。增量 LogID 确保数据更改可追溯且有序。
  • 数据持久化 :在系统崩溃或紧急情况下,数据将被存入磁盘。

深入了解 Apache Doris


Apache Doris 可以取代 ClickHouse、MySQL、Presto 和 HBase,因为它在数据处理管道上拥有全面的功能集合。在数据摄取方面,基于对 Flink CDC 和 Merge-on-Write 的支持,实现了低延迟实时写入。通过其标签机制和事务加载来保证 Exactly-Once 写入。在数据查询方面,它同时支持星型模式和平面表聚合,因此在麻烦的多表连接和大型单表查询中都可以提供高性能。它还提供了多种方法来加速不同的查询,例如用于全文搜索和范围查询的 倒排索引、用于点查询的短路计划和预备语句。
原文作者:Apache Doris