更简洁更高效,Doris对比ClickHouse、MySQL、Presto、HBase

大数据
Apache Doris可以替代ClickHouse、MySQL、Presto和HBase,因为它在整个数据处理流程中具备全面的能力。

构建统一的OLAP

OLAP,即在线分析处理平台。

保险公司试图构建一个数据仓库,能够承担面向客户、分析师和管理层的数据分析工作负载。主要任务包括:

  • 自助保险合同查询:保险客户可以通过合同ID检查其合同详情。它还应支持诸如保险期限、保险类型和理赔金额等筛选条件。
  • 多维分析:分析师根据需要基于不同的数据维度开发报告,以便提取见解,促进产品创新和反欺诈工作。
  • 仪表盘:创建保险销售趋势的可视化概览,以及不同指标的横向和纵向比较。

组建数据架构

用户从Lambda架构开始,将数据流水线分为批处理环节和流处理环节。对于实时数据流,采用Flink CDC;对于批量导入,结合Sqoop、Python和DataX构建自己的数据集成工具,名为Hisen。

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

1.ClickHouse

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

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

2.MySQL

计算后的数据指标存储在MySQL中,但随着数据规模的增长,MySQL开始出现问题,如执行时间延长和错误。

3.Apache Hive + Presto

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

4.Apache HBase

HBase负责主键查询。它从MySQL和Hive中读取客户状态,包括客户信用、保险期限和保额总和。然而,由于HBase不支持二级索引,它在读取非主键列方面的能力有限。另外,作为NoSQL数据库,HBase不支持SQL语句。

这些组件必须相互协作,以满足所有需求,使得数据仓库的工作量过大。这不容易上手,因为工程师必须接受所有这些组件的培训。此外,架构的复杂性增加了延迟风险。

因此,用户试图寻找一个能更好满足他们需求的工具。首先需要的是实时能力,包括实时写入、实时更新和对数据查询的实时响应。其次,需要更灵活的数据分析能力,以支持面向客户的自助查询,如多维分析、大表的连接查询、主键索引、汇总和钻取。然后,在批处理方面,还希望数据写入具有高吞吐量。

最终选择了Apache Doris。

用Apache Doris替换四个组件

Apache Doris能够进行实时和离线数据分析,支持高吞吐量的交互式分析和高并发的点查询。这就是为什么它可以取代ClickHouse、MySQL、Presto和Apache HBase,并作为整个数据系统的统一查询网关。

改进后的数据流水线是一个更简洁的Lambda架构。

Apache Doris提供了各种数据摄取方法。它在数据写入方面速度快。此外,它还实现了写入合并(Merge-on-Write)以提高并发点查询的性能。

1.降低成本

新架构降低了用户的人力成本。一方面,更简单的数据架构使得维护更加容易;另一方面,开发人员不再需要在数据服务API中连接实时和离线数据。

用户还可以通过使用Doris节省金钱,因为它支持分层存储。它允许用户将大量很少访问的历史数据存储在对象存储中,这样存储数据的成本更低。

2.提高效率

Apache Doris可以达到数万的查询每秒(QPS),并在毫秒内响应数十亿的点查询,因此它可以轻松处理面向客户的查询。将热数据与冷数据分离的分层存储也提高了查询效率。

3.服务可用性

作为存储、计算和数据服务的统一数据仓库,Apache Doris方便了灾难恢复。由于组件较少,不必担心数据丢失或重复。

用户的服务可用性的重要保证是Apache Doris的跨集群复制(CCR)功能。它可以在几分钟甚至几秒钟内将数据从集群同步到集群,并实现两种机制来确保数据可靠性:

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

对Apache Doris的深入了解

Apache Doris可以替代ClickHouse、MySQL、Presto和HBase,因为它在整个数据处理流程中具备全面的能力。

在数据摄取方面,Apache Doris基于对Flink CDC和写入合并的支持,实现低延迟的实时写入。它通过标签机制和事务加载来保证写入的Exactly-Once。

在数据查询方面,Apache Doris支持星型模式和扁平表聚合,因此可以在多表连接和大型单表查询中提供高性能。Apache Doris还提供了各种加速不同查询的方法,如用于全文搜索和范围查询的倒排索引,用于点查询的短路查询计划和预编译语句等。

责任编辑:赵宁宁 来源: Java学研大本营
相关推荐

2017-01-12 10:38:04

TalkingData小程序

2021-11-18 17:41:47

Android 12安卓

2023-11-28 18:03:01

SQLUDF

2019-05-20 07:24:19

工业物联网物联网重型设备

2018-10-23 15:20:29

SparkShuffleSpark SQL

2024-04-26 07:54:07

ZustandReact状态管理库

2024-10-15 10:47:12

2019-07-31 10:24:16

JavaScript浏览器口袋妖怪

2015-04-13 16:47:47

赛门铁克

2011-04-29 10:22:49

CSS高性能Web开发

2009-07-06 14:23:00

SSL VPNArray netwo

2009-06-19 10:16:10

巅峰访谈

2016-09-29 13:44:23

数据中心

2023-08-08 14:40:49

光纤网络光纤部署服务

2023-11-14 10:43:42

微软Kubernetes

2021-04-02 14:06:59

鉴释科技刘新铭静态代码开发

2017-12-21 14:36:10

大数据健身智慧

2016-09-18 20:19:01

LinuxVimGitHub

2018-05-08 14:58:07

戴尔
点赞
收藏

51CTO技术栈公众号