Apache Paimon:开启实时湖仓存储新时代
- 前言
- [Apache Paimon](#Apache Paimon)
前言
在当今数字化浪潮汹涌澎湃的时代,数据已成为企业最为宝贵的资产之一。如何高效地处理、存储和利用这些海量数据,成为了企业在激烈竞争中脱颖而出的关键。而在数据处理的广阔领域中,Apache Paimon 宛如一颗冉冉升起的新星,以其强大的功能和创新的技术,为实时湖仓存储带来了全新的变革。
随着企业业务的不断发展和数据量的急剧增长,传统的数据处理架构逐渐显露出其局限性。批式数仓虽能满足一定的数据存储和分析需求,但其时效性差,难以满足企业对实时数据的渴望。纯流式架构虽在时效性上有优势,但成本高昂且开发复杂,让许多企业望而却步。在这样的困境下,实时湖仓架构应运而生,它巧妙地结合了批处理和流计算的优势,为企业提供了一种高效、灵活且成本效益高的数据处理解决方案。
Apache Paimon 正是在这样的背景下崭露头角。它站在 Apache Iceberg 的坚实基础上,进行了大胆的创新和突破。通过原生支持在一张表上定义组件,实现了流式更新,极大地简化了流处理过程。其底层核心结构 LSM,更是为数据的高效压缩和读取提供了有力保障。在实际应用中,Paimon 展现出了广泛的适用性和强大的价值,无论是数据库 CDC 入湖、阿里智能引擎实践,还是蚂蚁的应用场景,都能发挥出独特的优势。
Apache Paimon
在当今数字化高速发展的时代,数据已成为企业的核心资产,而如何高效地处理和存储数据则成为了企业在激烈竞争中脱颖而出的关键。Apache Paimon 作为实时湖仓存储底座,正以其强大的功能和创新的技术,为数据处理领域带来一场深刻的变革。
传统的数据架构在面对日益增长的数据量和复杂的业务需求时,逐渐显露出其局限性。批式数仓虽然在一定程度上满足了企业对数据存储和分析的需求,但其时效性较差,ETL 通常按天或小时计算,查询也需要分钟级的时间。而纯流式架构虽然 ETL 时效性可达秒级,但成本高昂且开发复杂,让许多企业望而却步。
为了突破这些困境,人们不断探索新的数据处理架构。Kappa 架构试图将所有数据导入实时数据仓库,但成本过高且开发难度大;流批一体架构则面临着 Flink 批处理功能不成熟以及存储方式不统一的问题。在这样的背景下,实时湖仓架构应运而生。
实时湖仓架构结合了批处理和流计算的优势,能够在统一的存储架构上实现流批一体的计算,同时完成典型的 OLAP 查询。它就像是一座桥梁,连接了传统批式数据仓库和现代实时数据处理的需求,为企业提供了一种高效、灵活且成本效益高的数据处理解决方案。
Apache Paimon 正是在这样的需求下诞生的。它站在 Apache Iceberg 的肩膀上进行创新设计,为实时湖仓存储带来了全新的可能性。
Apache Iceberg 作为一种共享数据库存储,增加了对象存储友好、ACID transactions、INSERT & UPDATE & DELETE、Time Travel and rollback、Schema Evolution、Tag & Branch 等能力。这些能力为数据存储和管理提供了更高的可靠性和灵活性。
而 Paimon 则更进一步,原生支持在一张表上定义组件,实现了流式更新。这一创新功能使得用户可以直接对表进行 insert 操作进行更新,无需先删除再增加,大大简化了流处理过程。同时,Paimon 还能产生对应的 changlog,方便用户进行数据追溯和审计。
Paimon 进行主键更新的底层核心结构是 LSM(Log - Structured Merge - Tree)。这种结构具有高效的压缩和读取性能,非常适合更新或偏实时的领域。LSM 结构是一个排好序的层次结构,在压缩时不需要全部重写,新来的数据只需要与最上层的数据进行合并,写磁盘的放大效应小,压缩效率高。在读取时,由于数据是排好序的,可以进行读取时合并,成本也不会太大。
Paimon 在实际应用中有多种场景,为企业的数据处理带来了巨大的价值。例如在数据库 CDC 入湖场景中,Paimon 能够使入湖变得更加简单、高效和自动化。用户可以直接启动一个 Flink 作业写入 Paimon,然后用 Spark 来查询,其他的清理、压缩等工作都可以自动完成。此外,Paimon 社区还提供了一套工具,可以帮助用户进行 schema evolution,将 MySQL 的数据,甚至 Kafka 的数据同步到 Paimon 中。这使得数据库 CDC 入湖的链路更加简洁,提高了数据处理的效率。
在阿里智能引擎实践中,Paimon 作为业务数据库的统一镜像表,发挥了重要作用。它支持分钟级的流计算和流式读取,批量查询时效性为分钟级。通过将流和批处理统一到一张表上,所有下游业务都可以通过 Paimon 的统一入口来消费业务库的数据,减小了对业务库的压力,提高了整体吞吐量。同时,Paimon 建立在文件系统上,全天 24 小时都可以进行数据拉取,为企业的数据处理提供了更高的灵活性。
在蚂蚁的应用实践中,Paimon 也展现出了其强大的优势。在计算 UV 指标的例子中,之前使用 Flink 的全状态链路实现,但由于成本等问题,难以迁移大量业务。而 Paimon 的 upsert 更新机制和轻量级日志 changlog 为下游提供了实时的 PV 和 UV 计算,降低了整体资源消耗,提高了 checkpoint 的稳定性,减少了任务的回滚和重置时间,降低了业务研发成本。
在偏向 OLAP 的应用场景中,Paimon 与 Spark 集成良好。通过将数据写入 Paimon 并进行相关处理,再使用 Doris 或 StarRocks 进行 OLAP 查询,可以达到全链路 OLAP 的效果。与将数据直接写入 OLAP 类型的表相比,将数据写入 Paimon 背后的对象存储,成本非常低,虽然时效性只有 1 到 5 分钟,但对于某些对时效性要求不高的数据,这种方式能够加速更多业务数据的实时化。
除了在实际应用场景中的出色表现,Paimon 还在不断发展前沿技术。
例如,merge on write 模式在写入时进行一定的 merge,生成对原有数据的 deletion vectors,使写入慢一些,但读取快很多,实现了更新和极速查询的兼得。这种模式为用户提供了更好的性能体验,满足了不同业务场景下的需求。
Paimon 最新版本完全支持标签和分支的功能,还支持标签的自动 TTL 管理。这使得用户在使用 Paimon 时,能够像使用 Git 一样方便地进行版本控制和管理。通过标签和分支,用户可以更好地管理数据的不同版本,方便进行数据的回溯和比较。
同时,Paimon 正在研发 bitmap 索引,后续也会探索倒排索引的实现。这些索引技术的发展将进一步提高 Paimon 的 OLAP 查询能力,使得用户能够更快地获取所需的数据。
阿里云正在 OpenLake 项目中大力推进 Paimon 统一数据湖的能力,对接阿里云所有的计算引擎,致力于在云上提供基于湖格式的低成本、低延时的实时离线一体化的 serverless 解决方案。这将为用户提供更加便捷、高效的数据处理服务,帮助用户更好地应对数据处理的挑战。
Apache Paimon 以其创新的技术和广泛的应用场景,为企业提供了高效、灵活、低成本的数据处理解决方案。它的出现标志着实时湖仓存储进入了一个新的时代,将为企业的数字化转型带来巨大的推动力。
在未来,随着数据量的不断增长和业务需求的日益复杂,Apache Paimon 将继续发挥其优势,不断创新和完善。它可能会与更多的技术和平台进行集成,为用户提供更加全面的数据处理服务。同时,随着人工智能、机器学习等技术的发展,Paimon 也可能会与之结合,为用户提供更加智能的数据处理解决方案。
企业应积极拥抱这一变革,充分利用 Apache Paimon 的优势,提升自身的数据处理能力和竞争力。只有这样,企业才能在数字化时代中立于不败之地,实现可持续发展。
在这个数据驱动的时代,让我们共同期待 Apache Paimon 在未来的精彩表现,为企业的发展和社会的进步贡献更多的力量。
参考