查看原文
其他

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

学研妹 Java学研大本营 2024-01-02

介绍构建统一的OLAP(在线分析处理平台)。

长按关注《Java学研大本营》

构建统一的OLAP

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

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

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

1 组建数据架构

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

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

1.1 ClickHouse

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

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

1.2 MySQL

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

1.3 Apache Hive + Presto

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

1.4 Apache HBase

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

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

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

最终选择了Apache Doris。

2 用Apache Doris替换四个组件

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

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

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

2.1 降低成本

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

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

2.2 提高效率

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

2.3 服务可用性

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

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

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

3 对Apache Doris的深入了解

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

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

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

推荐书单

《 MySQL从入门到精通(第3版)(软件开发视频大讲堂)》

《MySQL 从入门到精通(第 3 版)》从初学者角度出发,通过通俗易懂的语言和丰富多彩的实例,详细介绍了MySQL开发需要掌握的各方面技术。全书共分为4篇22章,包括数据库基础,初识MySQL,使用MySQL图形化管理工具,数据库操作,存储引擎及数据类型,数据表操作,MySQL基础,表数据的增、删、改操作,数据查询,常用函数,索引,视图,数据完整性约束,存储过程与存储函数,触发器,事务,事件,备份与恢复,MySQL性能优化,权限管理及安全控制,Python+MySQL实现智慧校园考试系统和Java+MySQL实现物流配货系统等内容。书中所有知识都结合具体实例进行介绍,涉及的程序代码也给出了详细的注释,可以使读者轻松领会MySQL的精髓,快速提高开发技能。

购买链接:https://item.jd.com/14055926.html


精彩回顾

Apache Doris入门,下一代实时数据仓库

15个高效的MySQL数据库查询小技巧

5个不能错过的VS Code插件

10分钟讲透FPGA工作原理

10个事半功倍的IntelliJ Idea插件和主题

长按关注《Java学研大本营》
长按访问【IT今日热榜】,发现每日技术热点
继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存