用户从 Lambda 架构入手,将数据管道拆分为批处理链路和流处理链路。对于实时数据流,他们应用 Flink CDC ;对于批量导入,他们结合了 Sqoop、Python 和 DataX 来构建自己的数据集成工具,名为 Hisen。
然后,实时数据和离线数据在数据仓库层会合,该层由五个组件组成。
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 能够进行实时和离线数据分析,同时支持高吞吐量的交互式分析和高并发的点查询。这就是为什么它可以取代 ClickHouse、MySQL、Presto 和 Apache HBase,作为整个数据系统的统一查询网关。
改进后的数据管道是一个更加干净的 Lambda 架构。
Apache Doris 提供了多种数据摄取方法。数据写入速度很快。除此之外,它还实现了 Merge-on-Write 以提高并发点查询的性能。
降低成本
新的架构降低了用户的人力成本。一方面,更简单的数据架构使得维护更容易;另一方面,开发者不再需要在数据服务 API 中加入实时和离线数据。
用户还可以使用 Doris 省钱,因为它支持分层存储。它允许用户将大量很少访问的历史数据放入对象存储中,这样囤积数据的成本要低得多。
更高效率
Apache Doris 的 QPS 可以达到万级,毫秒级响应数十亿点查询,面对客户的查询也能轻松应对。将热数据与冷数据分开的分层存储也提高了查询效率。
服务可用性
作为存储、计算和数据服务的统一数据仓库,Apache Doris 可以轻松实现灾难恢复。由于组件较少,他们不必担心数据丢失或重复。
Apache Doris 的跨集群复制(CCR)能力是用户服务可用性的重要保障。可以在几分钟甚至几秒钟内实现集群之间的数据同步,并且实现了两种机制来保证数据的可靠性:
Apache Doris 可以取代 ClickHouse、MySQL、Presto 和 HBase,因为它在数据处理管道上拥有全面的功能集合。在数据摄取方面,基于对 Flink CDC 和 Merge-on-Write 的支持,实现了低延迟实时写入。通过其标签机制和事务加载来保证 Exactly-Once 写入。在数据查询方面,它同时支持星型模式和平面表聚合,因此在麻烦的多表连接和大型单表查询中都可以提供高性能。它还提供了多种方法来加速不同的查询,例如用于全文搜索和范围查询的倒排索引、用于点查询的短路计划和预备语句。
免责声明:本公众号所发布的文章为本公众号原创,或者是在网络搜索到的优秀文章进行的编辑整理,文章版权归原作者所有,仅供读者朋友们学习、参考。对于分享的非原创文章,有些因为无法找到真正来源,如果标错来源或者对于文章中所使用的图片、连接等所包含但不限于软件、资料等,如有侵权,请直接联系后台,说明具体的文章,后台会尽快删除。给您带来的不便,深表歉意。