同程数科:实时数据仓库的演进与创新实践

同程数科:实时数据仓库的演进与创新实践
2024年06月28日 15:03 牛华网

近年来,随着同程数科业务的快速扩展和用户数量的增加,迫切需要一个可靠且高效的数据中心,以便更好地了解业务运营情况并制定策略。这不仅包括建立实时业务报表看板和业务指标预警系统,还包括营销用户画像与标签分析以及金融风控的实时监测工具。因此,重点关注实时数据仓库的构建,希望通过数据仓库提高数据开发的效率与质量,为业务分析提供强大的支持。

构建实时数据仓库的探索之路

数仓架构已经经历了三代演进。在使用第一代离线架构和第二代 Lambda 架构之后,通过需求分析与调研,最终引入了 Apache Doris,搭建了统一的实时数据仓库。本文将详细介绍三代架构的演进过程,分享如何基于 Apache Doris 搭建一站式数据平台 Ark,并在业务使用、系统维护和数仓开发方面实现降本增效的成果。

早期架构演进

在大数据技术发展的初期,同程数科以 Apache Hive 为核心建立了离线数仓,使用 Hive 进行数仓分层处理。数据从源头进入离线数仓后,通过 ODS、DWD、DWS层级处理,最终输出至 MySQL、Redis、HBase 等应用数据库,以供报表平台使用。尽管该架构耦合性低、稳定性高,但在进行局部更新时需要全量合并,流程冗长,导致数据更新时间变长,时效性无法保证。随着数据规模不断增加,这种架构在数据计算效率和资源利用方面的问题日益凸显。

第二代架构:Lambda 架构

为了解决第一代架构的问题,引入了 Lambda 架构,在保留原有离线数仓的同时,新增了以 Apache Flink 和 Apache Kafka 为核心的实时数仓。离线链路进行批量处理,实时链路利用 Flink 对数据源进行流式处理,最终输出至应用数据库。虽然该架构解决了数据时效性低的问题,但其复杂性和高运维难度,以及数据一致性问题仍然存在。

引入 Apache Doris

为了解决早期架构中的问题,对 Apache Doris 和 ClickHouse 进行了选型对比,最终选择了更适合业务需求的 Apache Doris。Doris 兼容标准 SQL,支持分布式 Join,数据导入功能完备,运维难度低,能够同时支持实时数据服务、交互数据分析和离线数据处理等多场景。

新一代统一实时数仓

引入 Apache Doris 后,对架构进行了重构,使用 Doris 统一进行数据存储与计算,完全替代了原先的离线架构与 Lambda 架构,构建了一站式数仓。新架构不仅保证了数据的一致性,还极大地降低了运维成本。此外,新增了 Input 统一数据集成引擎,支持多种异构数据源的数据同步,实现数据入口的统一。

基于 Apache Doris 的一站式数据平台 Ark

基于新一代数仓搭建了一站式数据平台 Ark,实现任务开发、提交与测试、调度与监控、数据查询和集群监控等一体化服务,提升了任务开发效率和监控质量。

- 数据开发:通过平台高效进行 ETL 开发,提升报表产出速度。

- 调度管理:保证任务调度的稳定性与恢复能力,避免问题发生。

- 数据查询:通过 Web 形式提供安全便捷的查询和分析方式。

- 集群管理:实时监控集群状况,自动化处理异常情况。

同程数科基于 Apache Doris 搭建了高度统一实时的数据仓库,并将其功能平台化至 Ark,一站式数据平台。Doris 的引入带来了显著的收益与成果:

- 缩短开发周期:任务开发时间由半小时缩短至三分钟,效率提升十倍。

- 灵活数据开发:配合 Ark 平台,快速上线需求。

- 统一数据处理:实现数据导入、存储、计算的统一,保证数据一致性。

- 提升查询效率:查询效率从分钟级提升到秒级甚至毫秒级。

- 降低学习成本:兼容 MySQL 协议,使用标准 SQL,简单易用。

- 降低运维成本:部署简单,架构精简,便于维护。

未来,将基于 Apache Doris 构建实时数仓生态体系,并在同程数科内部大规模使用,持续优化一站式实时数仓架构,完善统一计算和存储能力。关注 Apache Doris 在数据湖分析方面的能力,进一步提升数据处理和查询能力,优化整体架构。

新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片