故事的开端要追溯到 2009 年,阿里云迈出了拥抱开源的第一步。基于开源 Hadoop 技术,阿里云启动了云梯项目,以支撑阿里内部快速发展的电商业务。这一决策不仅为阿里内部电商业务的蓬勃发展提供了坚实的技术支撑,也为阿里云后续的开源之路奠定了基石。
2015 年到 2016 年间,阿里云一边在云上推出第一款开源大数据产品 E-MapReduce(EMR)服务外部海量的中小企业,一边引入 Apache Flink 应对集团内部大数据处理实时化的挑战。在这个阶段,阿里云加大了对 Flink 社区的资源投入,逐渐成为其最大的用户和社区推动者,从拥抱开源转向贡献开源。
到了今天,阿里云不再局限于已有开源项目的贡献,而是尝试在开源社区孵化一些新的项目。今年 3 月刚刚毕业成为 Apache 顶级项目的 Apache Paimon 就是其中之一。
在今年的 CommunityOverCode Asia 之后,我们有幸与阿里巴巴开源委员会大数据 AI 方向副主席、阿里云计算平台事业部开源大数据平台负责人、阿里云研究员王峰(花名:莫问)就 Paimon 进行了深入访谈。通过这篇文章,你将了解到 Paimon 的创新实践,以及阿里云在开源大数据领域的技术进展、应用案例及未来规划。
王峰:过去,阿里的业务主要运行在自研的数据仓库上,但随着技术的发展,特别是以 Databricks 为主导的 Lakehouse 技术展现出了满足新时代需求的潜力,阿里集团内部也有了一些新的思路。
在北美,Lakehouse 湖仓架构正逐渐获得更多企业的认可和应用。阿里集团也在积极响应这一趋势。这一架构是一个开源和开放的体系,与传统数仓最大的差异就是其开放的数据格式和云存储标准。因为协议开放和数据透明,数据湖架构允许使用各种开源和多样化的计算引擎对统一的标准化数据进行分析。
这种架构已经在阿里集团得到了验证和认可,并且业务方面对其也有着强烈的需求。对标国外的 Iceberg 等开源技术,阿里云基于 Apache Paimon 的数据架构升级工作已经启动,预计在今年的双十一等重要场合,一些关键业务将会在新的 Lakehouse 架构上运行。
王峰:Apache Flink 最早来源于阿里自身业务的需求。2015 至 2016 年期间,阿里集团的业务需求从处理大规模离线数据向高时效性的实时数据分析转变。尤其是在电商大促如双十一期间,用户行为的实时分析对于商品推荐和广告推送等场景至关重要,因此,我们急需一款能够进行实时数据分析的引擎。
经过调研,我们认为当时 Flink 的流式计算引擎架构能够满足我们的需求,并且在未来更多流批一体的场景下具备更大的扩展的潜力。因此,我们选择引入 Flink,并在阿里内部进行了大量的生产实践优化,随后也将这些优化贡献回馈给开源社区。
实践证明,Flink 技术对阿里的业务支撑效果显著,已成为关键技术之一。同时,我们也看到了 Flink 在开源社区的长远发展的潜力。2019 年,阿里收购了 Flink 的母公司DataArtisans(后更名 Ververica),进一步加强了对 Flink 的投入和国际化发展。阿里云的大数据团队也投入了大量工程研发人员到 Flink 社区,持续将内部积累贡献给社区,使得 Flink 在越来越多企业业务中得到验证,推动了 Flink 在中国乃至全球的发展。如今,Flink 已成为流式大数据计算的事实标准,阿里在其中发挥了关键作用。
王峰:随着 Lakehouse 成为数据分析领域新的架构趋势,我们发现尽管消息队列如 Kafka 在流式数据处理中被广泛使用,但大量用户数据实际上存储在数据湖中。为了加速数据湖上数据的流动,提高数据分析效率,我们探索了现有数据湖技术,如推动 Apache Iceberg、Apache Hudi 和 Apache Flink 集成,但效果并不理想。因此,我们决定基于 Flink 孵化新的数据湖格式,以支持数据流式更新和实时分析。
Apache Paimon 最初是作为 Flink 的子项目 Flink Table Store 诞生的,它被设计为面向流式更新场景的数据存储格式,不仅结合了 Flink 的实时分析能力,还借鉴了KV store、NoSQL 和 LSM 架构等经典数据结构,并引入了 Changelog 等能力,以进一步加速数据流动,提高数据时效性,从而提升业务价值。同时,一些基于消息队列的应用场景已可以直接在湖上完成,数据处理步骤也得到了简化。
Paimon 的设计使它成为了一个真正可更新的流批一体的数据湖存储格式。为了把这项技术做成一个更有长期发展空间的项目,获得更多业务验证和使用反馈,我们决定将它从 Flink 中独立出来改名 Paimon 进入 Apache 孵化器,使它不绑定于任何特定计算引擎,支持多种计算引擎进行数据读写和分析,从而成为一个开放的数据架构。
目前,包括 Flink、Spark、Doris 和 StarRocks 在内的多种开源技术已经与 Paimon 完成了对接,支持构建更加实时的一体化 Lakehouse 架构。这也是我们开发 Paimon 的愿景。
王峰:Apache Paimon 的命名灵感来源于了解过去和未来的事件的精灵,象征着我们希望用户能够通过这种流批一体的数据湖存储格式,沿着时间线探索和分析数据。
事实上,我们确实也做到了这一点。我们推出了流式湖仓 Streaming Lakehouse,Streaming 在这里更像一个形容词或者动词,让湖仓的数据实时地流动起来。Paimon 最大的技术创新点就在于能够把整个数据湖存储格式变得更加实时化,同时实现流批一体化和实时离线一体化,从而完成数据湖架构的升级。在业界,只有 Paimon 提出了这一套理念去做 Lakehouse,这是真正由中国团队主导的一个创新的数据湖技术。
目前,我们也看到一个非常好的趋势,就是 Paimon 现在已经在阿里内部的好多业务中逐步落地了,包括电商、物流、本地生活等多元化业务。这些业务对 Paimon 的技术需求给了我们一个非常正向的回馈——这是一个非常符合业务场景的技术,Paimon 的技术理念也在业务落地中得到了很好的印证。
在今年 9 月的云栖大会上,阿里云将率先在云上发布并落地基于 Paimon 的新的开放数据湖产品,以及围绕 Paimon 的新一代实时湖仓架构。这套湖仓架构不仅能够支持现在这些 Flink、Spark、StarRocks 等开源的计算引擎,也能够兼容 Maxcompute、Hologres 等阿里云自研的计算产品。相当于无论是开源还是闭源,所有的数据在 Paimon 里全部打通,实现一套数据管理,支持多套计算分析系统分析处理。
王峰:我觉得 Apache Paimon 的应用落地的价值可以从两个角度来看。
首先,在传统的数据湖场景中,像 Iceberg 这样基于日志为主导的数据湖格式通常不支持流式数据更新与订阅,无法支撑用户点击和商品更新等强调数据实时更新的场景。而 Paimon 能够支持数据的主键更新和局部更新,大幅扩展了数据湖的应用场景,尤其是在需要高效更新操作的广告 CTR 预测等场景,现在都能够基于 Paimon 来构建。因为点击等用户行为的相关数据都可以统一到一张表中实时更新,甚至下游也可以基于这些更新去做实时的增量数据的处理,实时业务与离线业务可以在一套流批一体的数据湖存储架构中融合。因此,流式湖仓能够弥补很多之前数据湖不支持实时更新的场景,让更多的实时业务在数据湖上落地。
其次,Paimon 还在消息队列的替代上展现了其优势。其实许多用户采用了 Flink 加 Kafka 的组合,但这样的成本相对较高。实际上,许多场景中数据可以接受几分钟内的数据更新延迟,并不需要秒级处理。而通过 Paimon ,我们可以把原来基于消息队列的纯实时的流在湖仓架构上也运行起来,在保障业务数据分钟级时效性的同时,显著降低数据存储和流动的成本,这种成本效益在广告场景中尤为明显。另外,数据流动的过程中也沉淀到了 Paimon 湖存储里,全链路可查询的特性大大提升业务的开发与问题排查效率。不仅在阿里内部,阿里云上的客户如喜马拉雅等也在采用这一方案。
王峰:目前,数据湖技术正朝着大数据和 AI 一体化方向发展,像 Databricks 和 Snowflake 这样的国际数据公司都在不约而同朝着这个方向发展。算力、算法和数据是 AI 发展的核心三要素,BI 和 AI 在算法和算力上不同,但对数据的需求上是一致的。
我们现在认为未来大数据分析和 AI 分析,需要有一套统一的数据存储和管理体系。因为所有 AI 需要的数据都需要大数据系统来产生,包括数据收集、清洗和加工,然后 AI 才能方便使用这些数据进行模型训练。这种 AI 与大数据结合的趋势将越来越明显。
目前我们正在做的工作主要有两个方面。一个是 Apache Paimon 现在具备了结构化数据的存储能力,同时也在增强对半结构化数据和非结构化数据的支持。这并不意味着要完全替代文件或文档存储,而是将非结构化数据的元数据信息存储到 Paimon 表中,使得用户可以轻松通过 SQL 访问非结构化数据的元信息,这对于 AI 应用是非常重要的。之后无论是结构化数据,半结构化数据和非结构化数据,Paimon 都能够统一进行管理。
另一个是 Paimon 正在 API 层面进行演化,尤其是在 Python 生态方面。虽然起步较晚,但 Paimon 正在开发 Python API 和 SDK,发布后将支持用户在 Python 生态中访问数据,并用于 AI。
这样,无论是 BI 还是 AI,所有的数据都可以被统一管理,打通了数据的联通性。大数据处理完毕后,数据可以直接供 AI 使用,从而实现大数据和 AI 共享统一的存储和管理系统。
王峰:在我们主导的 Flink 和 Paimon 项目中,我们深刻体会到社区贡献的多样性。比如能够编写核心代码的毕竟是少数,有很多人会通过邮件列表提问、交流、提供反馈,甚至有些志愿者会参与修复小 Bug,以及做一些文档编写和答疑的工作。
此外,Paimon 也得到了生态合作伙伴的广泛支持,如 Flink、Spark、StarRocks 等流处理和批处理技术,都与 Paimon 有很好的集成配合。整个生态系统已呈现出较为完善的状态,众多公司开始在生产环境中使用 Paimon,在各自的业务场景下创造价值,并通过自身业务验证后给社区提供了反馈,甚至在外部分享如何使用开源技术解决业务问题,为 Paimon 的发展做出了巨大贡献。
目前,字节跳动、喜马拉雅、蚂蚁集团、汽车之家、小米、小鹏汽车、哔哩哔哩和中国联通等上百家公司都在使用 Paimon 解决业务问题,而 Paimon 官网上的用户列表还在不断扩展。
在这些伙伴的支持下,Paimon 社区已经具有相当的活跃度,进入了一个良性循环。这一点也体现在外部对 Paimon 的需求,我们还有上千名用户活跃在钉钉群中进行咨询。
王峰:我们主要是通过举办重要会议和活动来推动开源社区的发展。比如每年我们都会投入大量资源组织大大小小的 Meetup,特别是 Flink Forward 这样的年度大会。以 Flink Forward 为例,这个会议不仅关注 Flink,还会涵盖阿里云主导的其他开源技术。会议通常在每年 12 月份举行,国内许多主流公司都会参与分享,分享话题近百个,大会规模从 1000 人到 3000 人不等。
此外,我们也会赞助像"CommunityOverCode"这样的开源技术活动。这些活动都是我们为了推广开源技术、增强社区凝聚力所做的努力和投入。
王峰:Apache Paimon 目前在 Github 上拥有 2.2k Star。项目的核心贡献者主要集中在国内,包括了 12 名 PMC member 和近 10 名 Committer。此外,还有 178 名贡献者。
尽管 Paimon 启动较晚,但其发展趋势符合我们的预期。数据湖领域现在有很多家开源项目,我们认为 Paimon 的目标是成为新的实时数据湖格式的事实标准。同时我们希望 Paimon 未来能与 AI 场景更紧密地结合,包括加强对半结构化和非结构化数据的支持,以及增强对 Python 生态的支持,特别是在 AI 领域的应用。我们相信这些是 Paimon 下一步发展的关键方向。
王峰:无论是 Flink 还是 Paimon,阿里云推动了中国大数据技术的发展,并在全球范围内加速了数据处理实时化的进程。与海外相比,国内在数据实时化处理的意识和技术实际上已经走在北美前面。
阿里云对大数据技术行业的最大影响是牵头推动了数据处理的实时化。因为阿里集团本身具有多元化的业务场景,对数据处理实时化有着较高的要求。阿里云从很早就开始面对这些挑战,比如主导并推动了 Flink 开源技术社区在全球的发展,并计划在今年底(Flink 诞生 10 周年之际)推出 Flink-2.0 新一代大版本,这些都是阿里云在数据处理实时化方面的重要贡献。
阿里云的技术创新不仅限于 Flink,还包括对流式存储技术的创新和开源,今年 12 月的 Flink Forward 社区大会上我们也还会有新的开源项目发布。阿里云开源出来的数据技术使整个行业受益,推动了国内各业务领域在数据时效性和实时化数字化处理方面的进步。
王峰:我们长远的规划是在大数据开源领域,基于阿里自身海量的业务场景和作为云厂商的优势,开源出更多创新的 Data Infrastructure。同时,我们还希望推动现有开源 Data Infrastructure 朝着云原生,并面向 AI 场景进行演进。我们的目标是每年至少推出一项新的开源 Data Infra 技术,持续贡献开源社区,并在商业化市场得到验证。
未来,我们也将继续开源路线,让更多企业能够用到这些创新技术,同时也欢迎大家一起来贡献,反哺社区的发展。
王峰:在我看来,一个开源项目能够迅速发展并毕业,与公司内部的支持密切相关。Paimon 从项目孵化到毕业,再到生产上线和积累众多客户,大约一年半的时间,我们做到了这么多事情离不开阿里云公司层面的支持。
如果抛开业务和商业化谈开源,未必能长久。因为纯凭兴趣和热情的开源贡献是短暂的,任何一款开源的技术都需要持续的资源投入才能获得长久发展,而这往往需要开源技术在商业化上的成功和反哺。如果一个开源团队或技术无法找到业务出口,很难独立存活。
我们内部鼓励员工发起的开源项目先在内部验证其业务价值,从而能够得到公司的确定性资源投入,然后通过开源的形式,可以引入更多社区力量的参与,让项目服务更多场景并得到更好的发展,从而形成一个正循环。可以看到,开源项目的发展不仅依靠一帮有理想的程序员,同时也离不开公司的持续资源投入;另一方面,开源技术也反过来可以为公司带来多方面的回报,不仅是业务上的贡献,通常在人才吸引上也是一个很大的优势。因此,大家可以看到,通常情况下一个成功的开源项目背后都有一家或者多家公司的长期投入和支持,开源和商业化是相辅相成的。
在数据驱动业务发展的今天,阿里云通过其开源大数据技术的创新和实践,尤其是对 Apache Flink 和 Apache Paimon 两个箭头项目的投入和驱动,不仅实现了行业数据处理实时化能力的提升,更为数据湖架构带来了突破性的进展。同时,通过持续的技术创新和开源贡献,阿里云生动诠释了“实时即未来”的前瞻理念。我们期待阿里云继续以开源大数据技术推动行业发展,携手全球开发者共同开启数据技术的创新未来。