vivo基于Paimon的湖仓一体落地实践

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: 本文整理自vivo互联网大数据专家徐昱在Flink Forward Asia 2024的分享,基于实际案例探讨了构建现代化数据湖仓的关键决策和技术实践。内容涵盖组件选型、架构设计、离线加速、流批链路统一、消息组件替代、样本拼接、查询提速、元数据监控、数据迁移及未来展望等方面。通过这些探索,展示了如何优化性能、降低成本并提升数据处理效率,为相关领域提供了宝贵的经验和参考。

摘要:本文整理自 vivo 互联网大数据专家、Apache Paimon Committer 徐昱老师在 Flink Forward Asia 2024 流式湖仓专场(一)中的分享。本次分享基于 vivo 的实际案例,展示在构建现代化数据湖仓过程中的一些关键决策和技术实践,包括组件选型、架构设计、性能优化以及数据迁移等方面的探索。内容分为以下几个部分:

  1. 组件选型及架构
  2. 离线加速
  3. 流批链路统一
  4. 消息组件平替
  5. 样本拼接
  6. 查询提速
  7. 元数据监控
  8. 数据迁移
  9. 未来展望

01、组件选型及架构

1.1 组件选型

img

我们的技术栈以Flink作为主要计算引擎,结合StarRocks用于联邦查询加速,Paimon作为核心存储层覆盖所有湖仓场景。对于存储格式的选择,在较旧版本中推荐使用 ORC。自 1.0 版起,Parquet 提供了更强大的功能,支持复杂类型数据。因此,可以根据实际使用的版本灵活选择。

1.2 湖仓架构

img

湖仓一体架构在实时场景中有三大应用场景:离线加速、链路合并以及传统数据库数据分析优化。

  1. 离线加速:通过从 Kafka 等消息中间件获取数据,并采用追加方式或利用 Flink 的中间状态处理,实现类似 Spark 或其他框架的功能。这一过程生成准实时的操作数据存储 (ODS) 和数据仓库(DW),最终通过 Flink 或 StarRocks 进行查询。这种方法提高了数据处理的速度和效率。
  2. 链路合并:针对 Lambda 架构中同时存在的实时与离线两套数据处理链路的问题,使用湖仓架构来统一这两条路径,旨在减少重复计算与存储成本,同时也简化了团队管理和维护工作。该方案允许在一个系统内完成所有操作,避免因补数需求而导致的数据不一致问题。例如,基于 Paimon 可以实现实时补数,在流处理和批处理之间保持一致性。
  3. DB数据分析优化:对于传统的数据库到 Hive 的数据分析流程,采用 Paimon 加 Flink 组合替代原有方法后,能够显著降低数据延迟(从天级/小时级降至分钟级)。不过需要注意的是,过短的检查点间隔虽然能提供更低的延时,但也可能导致大量小文件产生,给 HDFS 带来压力。因此推荐设置至少 5分钟以上的检查点周期以确保文件管理的有效性。此外,利用 Paimon 支持的时间旅行功能,可以通过定期创建快照来高效管理历史数据,如每日凌晨自动创建快照并保留一周的历史记录,从而优化存储空间的使用。

02、离线加速

img

下面具体讲一下离线加速带来的收益,相较于传统数仓,采用湖仓一体架构的离线加速方案能够显著提升数据处理的时效性。具体来说,这种架构通过以下方式实现质变的时效提升:

  1. 数据源采集:数据源包括日志型数据(如服务日志、线上打点设备数据)和数据库数据。这些数据通过传感器或其他设备采集,并持续传输到服务日志中,然后通过离线方式写入 Hive。
  2. 实际生产链路示例:
    • 传统数仓:例如,进行ETL处理并生成DM/DW数据,整个过程需要两个小时。
    • Paimon架构:采用Paimon后,由于整个链路是准实时的,可以将处理时间从小时级缩短到分钟级,通常控制在十分钟以内。
  3. 链路完整性与容灾:
    • Paimon对并发写操作有很好的支持。只要不写入相同的Bucket,就不会发生冲突。在实际生产中,通常是不同的分区,因此无需担心并发冲突问题,可以高效地并行处理数据。
    • 数据复写机制也确保了链路的完整性和容灾能力。
  4. 应用场景:
    • 对于需要高时效性的业务,如算法处理或实时报表,离线加速方案可以显著提升效率。通过这种方式,可以大幅提高数据处理的速度和响应时间,从而更好地支持业务需求。

03、流批链路统一

img

传统的数据处理架构通常包含两条链路:一条是基于Spark和Hive的离线处理链路,另一条是基于Kafka和Flink的实时处理链路。这种双链路设计虽然可以保证数据的准确性和实时性,但资源消耗较大且不够灵活。此外,由于 Kafka 的数据存储特性,写入 Kafka 的数据通常不易直接读取,增加了使用的复杂性。采用Paimon加Flink的架构后,所有数据处理链路完全统一,无论是实时还是离线数据都可以写入Paimon表并随时进行分析,提高了灵活性。此外,合并后的链路可以减少约30%的计算资源需求,并通过统一的内存和CPU核数等指标进行监控和对比,从而实现更高效的资源管理和优化。

04、消息组件平替

img

在实时场景中,通常使用 Kafka 或 PSA 进行数据流转和实时数仓的摄取,但云上用户的 Kafka 资源宝贵且成本高,有时会遇到资源不足或负载过高的问题。Paimon 作为一种低成本的消息组件替代方案,可以通过其 Consumer 机制实现类似于 Kafka 的功能。尽管其时延为分钟级,相较于 Kafka 的秒级延迟稍高,但对于许多业务场景来说已经足够。通过将部分业务迁移到 Paimon,可以有效利用冗余的离线资源,提升存储利用率,并大幅降低计算和存储成本。在 vivo 内部的实际应用中,这种迁移不仅优化了数据链路的稳定性,还显著降低了整体资源成本,总体成本降幅可达 50%。

05、样本拼接

img

在样本拼接场景中,通常需要处理实时和离线两种拼接方式。离线拼接涉及全量数据下发和指定分区的插入操作,导致计算资源浪费且效率低下。实时拼接则面临大状态管理的问题,可能导致 TB 级状态数据,从而引发集群风险和稳定性问题。通过使用Paimon的Partial Update 功能,可以实现高效的增量更新,避免大状态问题。具体来说,A 数据和 B数据可以直接写入 Paimon 表,通过轻量级的 HASH 计算和增量写入,确保高吞吐写入,并在查询时进行合并。这种方案不仅减少了计算资源的消耗,还提高了系统的稳定性和性能。此外,Paimon 的延迟读能力可以在特殊场景下自动同步维表数据,保证数据的新鲜度。在实际应用中,这种方案可以将样本拼接时间从一两小时缩短到 5分钟,显著提升算法训练的效果和速度。

06、查询提速

img

在查询提速方面,Paimon 通过联邦查询和特定算法(如 Zorder 或 Hilbert)提供了显著的性能提升。例如,在不同时间对不同分区或字段进行查询时,Paimon 可以通过指定分区并使用 Procedure 合并字段来优化查询性能。与 Hive 相比,Paimon 不需要对所有分区进行去重和排序,从而降低了整体代价。在实际应用中,通过 Paimon 和 Spark、Flink 引擎,可以在几十亿条记录的表上实现秒级点查。结合 MPP 向量化查询技术,查询时间可以进一步压缩到毫秒级。然而,在高并发情况下,低版本的 Paimon(如 0.7 版本)由于缺少 Canny Catalog,会频繁与 Hive Metastore(HMS)进行冗余交互,从而影响查询性能。升级到 0.9 版本以上并包含 Canny Catalog 后,即使在 200 多个并发查询百亿级表时,也能保持毫秒级响应。此外,Paimon 支持实时数据写入后的文件治理。通过设置较短的 Checkpoint 时间,可能会生成大量小文件。为避免对 Hive Metastore(HMS)集群造成压力,Paimon 定期进行文件合并,从而确保读写性能的稳定性。

07、元数据监控

img

在湖仓元数据监控方面,为了确保高效的数据写入,Flink 任务中可能会关闭一些表的管理功能,如设置 Read OnlyTrue,但这会导致快照清理等维护操作被忽略,从而在事后发现查询速度变慢和元数据膨胀等问题。为此,可以构建一个基于表级别的元数据监控系统。该系统在建表时自动开启监控,并提供默认规则。例如,当快照数量超过 200 时,系统会自动触发告警。监控系统基于 Paimon 的系统表,通过 Flink 和 StarRocks引擎定时查询这些系统表,并将数据导入 StarRocks 的内表。智能诊断系统根据用户配置或系统默认规则检查相关指标,一旦触发告警规则,会立即推送告警消息,使用户能够及时进行表管理和维护,如清理快照等操作。这种监控方案能够在问题发生前及时发现并处理,确保湖表的性能和稳定性。

08、数据迁移

img

数据迁移方面,Paimon 提供了简单有效的工具来将历史数据从 Hive 表迁移到 Paimon 表,以实现湖表能力。对于非 Paimon 表(如默认的 Hive 表),可以通过创建 Paimon 表,并使用 INSERT INTO 或其他数据导入工具完成迁移。Paimon 支持原地迁移和从 A 到 B 的迁移,后者通过将 Hive 文件移动到临时目录,再构建元数据(如 Schema、快照类型和 Manifest 文件)来完成。迁移完成后,将临时表重命名为现有表名,从而实现用户无感知的平滑迁移。这种迁移方法不仅高效,还能在几分钟内完成百亿级别表的迁移,且用户感知较少。迁移后,为了确保计算引擎(如 Spark 或 Flink)的兼容性,需要调整相关依赖和 Catalog 注入信息,以完成任务级别的迁移。整体过程包括数据和任务的迁移,最终实现在平台上一键或低感知地将 Hive 表迁移到 Paimon 表,从而激活流读流写能力,减少计算资源消耗。

09、未来展望

img

最后,我们共同展望未来。未来的工作将重点关注 AI 场景中的算法需求,尤其是在 AI 训练和推理场景中对非结构化和半结构化数据的存储、查询和处理能力的支持。我们将增强 Paimon 在处理复杂类型数据(如集成数据)方面的存储和查询性能。此外,我们计划提升 Merge Engine 的自定义能力,使用户能够根据自身特定需求灵活配置,突破现有固定功能的限制。通过这些改进更好地支持各种特殊场景(如算法行程等),从而创造更大的业务价值。

至此,本次的分享结束。希望通过以上内容,能为大家带来一些启发和帮助。感谢各位的观看与支持!


更多内容


活动推荐

阿里云基于 Apache Flink 构建的企业级产品-实时计算 Flink 版现开启活动:
新用户复制点击下方链接或者扫描二维码即可0元免费试用 Flink + Paimon
实时计算 Flink 版(3000CU*小时,3 个月内)
了解活动详情:https://free.aliyun.com/?utm_content=g_1000395379&productCode=sc

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
2月前
|
数据采集 SQL 搜索推荐
大数据之路:阿里巴巴大数据实践——OneData数据中台体系
OneData是阿里巴巴内部实现数据整合与管理的方法体系与工具,旨在解决指标混乱、数据孤岛等问题。通过规范定义、模型设计与工具平台三层架构,实现数据标准化与高效开发,提升数据质量与应用效率。
大数据之路:阿里巴巴大数据实践——OneData数据中台体系
|
3月前
|
分布式计算 监控 大数据
大数据之路:阿里巴巴大数据实践——离线数据开发
该平台提供一站式大数据开发与治理服务,涵盖数据存储计算、任务调度、质量监控及安全管控。基于MaxCompute实现海量数据处理,结合D2与DataWorks进行任务开发与运维,通过SQLSCAN与DQC保障代码质量与数据准确性。任务调度系统支持定时、周期、手动运行等多种模式,确保高效稳定的数据生产流程。
大数据之路:阿里巴巴大数据实践——离线数据开发
|
3月前
|
数据采集 存储 大数据
大数据之路:阿里巴巴大数据实践——日志采集与数据同步
本资料全面介绍大数据处理技术架构,涵盖数据采集、同步、计算与服务全流程。内容包括Web/App端日志采集方案、数据同步工具DataX与TimeTunnel、离线与实时数仓架构、OneData方法论及元数据管理等核心内容,适用于构建企业级数据平台体系。
|
3月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
96 4
|
3月前
|
分布式计算 DataWorks 数据处理
在数据浪潮中前行:记录一次我与ODPS的实践、思考与展望
本文详细介绍了在 AI 时代背景下,如何利用阿里云 ODPS 平台(尤其是 MaxCompute)进行分布式多模态数据处理的实践过程。内容涵盖技术架构解析、完整操作流程、实际部署步骤以及未来发展方向,同时结合 CSDN 博文深入探讨了多模态数据处理的技术挑战与创新路径,为企业提供高效、低成本的大规模数据处理方案。
206 3
|
2月前
|
存储 SQL 分布式计算
大数据之路:阿里巴巴大数据实践——元数据与计算管理
本内容系统讲解了大数据体系中的元数据管理与计算优化。元数据部分涵盖技术、业务与管理元数据的分类及平台工具,并介绍血缘捕获、智能推荐与冷热分级等技术创新。元数据应用于数据标签、门户管理与建模分析。计算管理方面,深入探讨资源调度失衡、数据倾斜、小文件及长尾任务等问题,提出HBO与CBO优化策略及任务治理方案,全面提升资源利用率与任务执行效率。
|
3月前
|
机器学习/深度学习 存储 分布式计算
ODPS驱动电商仓储革命:动态需求预测系统的落地实践
本方案基于ODPS构建“预测-仿真-决策”闭环系统,解决传统仓储中滞销积压与爆款缺货问题。通过动态特征工程、时空融合模型与库存仿真引擎,实现库存周转天数下降42%,缺货率下降65%,年损减少5000万以上,显著提升运营效率与GMV。
240 1
|
20天前
|
存储 JSON 数据处理
Flink基于Paimon的实时湖仓解决方案的演进
本文源自Apache CommunityOverCode Asia 2025,阿里云专家苏轩楠分享Flink与Paimon构建实时湖仓的演进实践。深度解析Variant数据类型、Lookup Join优化等关键技术,提升半结构化数据处理效率与系统可扩展性,推动实时湖仓在生产环境的高效落地。
139 0
Flink基于Paimon的实时湖仓解决方案的演进
|
2月前
|
SQL 存储 运维
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
本文介绍了 Apache Doris 在菜鸟的大规模落地的实践经验,菜鸟为什么选择 Doris,以及 Doris 如何在菜鸟从 0 开始,一步步的验证、落地,到如今上万核的规模,服务于各个业务线,Doris 已然成为菜鸟 OLAP 数据分析的最优选型。
160 2
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
|
29天前
|
存储 人工智能 监控
淘宝闪购基于Flink&Paimon的Lakehouse生产实践:从实时数仓到湖仓一体化的演进之路
本文整理自淘宝闪购(饿了么)大数据架构师王沛斌在 Flink Forward Asia 2025 上海站的分享,深度解析其基于 Apache Flink 与 Paimon 的 Lakehouse 架构演进与落地实践,涵盖实时数仓发展、技术选型、平台建设及未来展望。
204 0
淘宝闪购基于Flink&Paimon的Lakehouse生产实践:从实时数仓到湖仓一体化的演进之路