抖音集团基于 Apache Doris 的实时数据仓库实践

作者:字节跳动数据平台

在直播、电商等业务场景中存在着大量实时数据,这些数据对业务发展至关重要。而在处理实时数据时,我们也遇到了诸多挑战,比如实时数据开发门槛高、运维成本高以及资源浪费等。

此外,实时数据处理比离线数据更复杂,需要应对多流 JOIN、维度表变化等技术难题,并确保系统的稳定性和数据的准确性。本文将分享基于 Apache Doris 的实时数仓架构在不同业务场景的实践经验,以及该架构带来的收益。

存储实时数仓架构背景

首先介绍存储实时数仓架构的背景。

01 实时数据数仓链路

实时数据数仓链路.png

目前实时数据主要使用 Flink 作为中转工具,Kafka 作为 Flink 的逻辑表,实现数据在不同数据分层之间的流转。Kafka 本身没有逻辑表,无法像 Hive 那样清晰地进行开发过程。

实时数据和离线数据的内容生产量级会有比较大落差,主要原因在于实时数据开发成本、运维成本以及资源成本,尤其是前两者相较离线开发更高,因此尽管有一部分实时数据的需求,我们经常会想办法将其降级。

02 Flink 数仓问题与挑战

  • 开发门槛高:Flink 是有状态的一套数据流引擎,具有状态的增量特性,需要更清晰的底层认知,特别是在多流 JOIN 等场景下。增量的状态,导致无法像 Hive 那样把全量的数据状态存到内存里,进一步进行简单的数据操作。

    实时数据涉及的数据存储量较大,需要使用多种计算引擎,如 OLTP 引擎(MySQL、PostgreSQL)、OLAP 引擎(ClickHouse、Doris)、KV 存储(Abase、Tier、Redis)等,以适应不同的计算需求,这也增加了开发难度。另外,由于其增量状态,也让测试变得困难。

  • 开发运维成本高:复杂的多流 JOIN 操作经常需要存储大量状态数据,这可能会导致稳定性问题,尤其是在处理连续直播等情况下。

    在多个业务线的平台中,一些发展中的业务线由于需要不断进行业务创新,业务口径随之变化,而 Flink 作为增量状态存储的系统,遇到状态不可恢复的问题是不可避免的。当数据口径变更时,直接上线可能会由于状态结构改变而无法进行数据恢复。

  • 资源浪费:在实时场景中,资源浪费是很常见的情况,虽然资源浪费不是核心问题,但是目前各个公司都有治理的需求。

    对于一个任务来说,比如在大促活动刚开始的时候,会有大的潮汐洪峰,但过了几分钟之后,流量会迅速地递减退变,为了保证稳定性,我们需要保持高资源位,来稳定地进行 24x7 的运行,这就会导致资源浪费。

03 目标与愿景<

基于 Apache Doris数据仓库平台架构设计如下: 1. 架构模式: - 采用分布式架构模式,将数据仓库划分为多个节点,每个节点可以独立存储和处理数据,同时支持横向扩展,能够处理大规模的数据量和并发请求。 2. 数据存储层: - 使用分布式文件系统(如HDFS)存储数据,数据按照数据表的划分进行存储,支持数据的分片和复制,提高数据的可靠性和可用性。 - 数据以列式存储的方式存储,提高查询效率。 - 支持数据的压缩和索引,降低存储空间和提高查询效率。 3. 元数据管理: - 使用元数据管理系统(如MySQL)存储数据的元信息,包括表结构、分区、数据位置等。 - 元数据管理系统支持水平扩展,保证元数据的一致性和高可用性。 4. 查询引擎: - 使用分布式查询引擎,支持SQL语法,能够高效地执行复杂的数据查询和分析操作。 - 支持预编译和查询优化技术,提高查询性能。 5. 数据加载和导出: - 支持多种方式的数据加载和导出,如批量导入、实时流入、增量导入、导出到外部系统等。 - 支持数据的转换和清洗,提高数据的质量和一致性。 6. 安全性和权限管理: - 支持访问控制,可以对用户和角色进行权限管理,确保数据的安全性和合规性。 - 支持数据加密和身份认证,保护数据的机密性和完整性。 7. 可视化和监控: - 提供用户友好的可视化界面,方便用户管理和操作数据仓库。 - 支持实时监控和告警功能,及时发现和解决系统故障和性能问题。 总之,基于 Apache Doris数据仓库平台架构设计具备高可扩展性、高性能和高可靠性的特点,可以满足大规模数据处理和查询的需求,并提供丰富的功能和工具支持,帮助用户实现高效的数据分析和决策。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SelectDB技术团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值