六安网站制作人才招聘,订做网站建设,wordpress换成中文,网站建设底部一、Apache Paimon是什么? Flink社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合#xff0c;推出新一代的 Streaming Lakehouse 技术#xff0c;促进数据在数据湖上真正实时流动起来#xff0c;并为用户提供实时离线一体化的开发体验。 …
一、Apache Paimon是什么? Flink社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合推出新一代的 Streaming Lakehouse 技术促进数据在数据湖上真正实时流动起来并为用户提供实时离线一体化的开发体验。 Flink 社区内部孵化了 Flink Table Store 简称 FTS 子项目一个真正面向 Streaming 以及 Realtime的数据湖存储项目。 2023年3月12日FTS进入 Apache 软件基金会 (ASF) 的孵化器改名为 Apache Paimon (incubating)。 简单来说Apache Paimon是一个流数据湖平台兼容Apach Flink、Spark等主流计算引擎支持流批一体处理、快速查询和性能优化具有高速数据摄取、变更日志跟踪和高效的实时分析的能力。 目前24年已经在阿里巴巴集团内大规模应用目前更新到1.0版本。
官网介绍
Apache Paimon 是一种 Lake 格式支持使用 Flink 和 Spark 构建实时 Lakehouse 架构用于流式和批处理操作。Paimon 创新性地结合了 Lake 格式和 LSM日志结构合并树结构将实时流式更新引入 Lake 架构。
Paimon 提供以下核心功能
实时更新 主键表支持大规模更新的写入具有非常高的更新性能通常通过Flink Streaming进行。支持定义合并引擎按您喜欢的方式更新记录。删除重复项以保留最后一行、部分更新、聚合记录或第一行您决定。支持定义changelog-producer为合并引擎的更新生成正确、完整的changelog简化您的流分析。大量附加数据处理 附加表无主键提供大规模批处理和流处理能力。自动小文件合并。支持通过 z 顺序排序进行数据压缩以优化文件布局并使用 minmax 等索引提供基于数据跳过的快速查询。数据湖功能 可扩展的元数据支持存储Petabyte大规模数据集支持存储大量分区。支持 ACID 事务、时间旅行和模式演变。
官网https://paimon.apache.org/
Githubhttps://github.com/apache/incubator2、文件-paimon 二、Apache Paimon原理
1、底层存储 Paimon采用LSM树日志结构合并树作为文件存储的数据结构LSM树将文件组织成多个Sorted RunSorted Run由一个或多个数据文件组成并且每个数据文件只属于一个Sorted Run。 写入LSM树的新记录将首先缓存在内存中。当内存缓冲区满时内存中的所有记录将被排序并刷新到磁盘。 查询LSM树时必须合并所有Sorted Run。当越来越多的记录写入LSM树时Sorted Run的数量将会增加。由于查询LSM树需要将所有Sorted Run合并起来太多Sorted Run将导致查询性能较差甚至内存不足。为了限制Sorted Run的数量我们必须偶尔将多个Sorted Run合并为一个大的Sorted Run。这个过程称为Compaction。 但是过于频繁的Compaction可能会导致写入速度变慢这是查询和写入性能之间的权衡。 2、文件管理 一张表的所有文件都存储在一个基本目录下。Paimon 文件采用分层的方式组织。下图说明了文件布局。从快照文件开始Paimon 读取器可以递归访问表中的所有记录。 2.1 Snapshot快照文件 所有快照文件都存储在snapshot目录中。 快照文件是一个 JSON 文件改文件包含了 正在使用的架构文件 包含此快照所有更改的清单
快照可以捕获表在某个时间点的状态。用户可以通过最新的快照访问表的最新数据。通过时间旅行用户还可以通过较早的快照访问表的先前状态。
---类似Hadoop中的镜像文件和编辑日志。
2.2 Manifest Files清单文件 所有的清单列表manifest list和清单文件manifest file都存储在manifest目录中。 清单列表manifest list是清单文件名manifest file的列表。 清单文件manifest list是包含有关 LSM 数据文件和变更日志文件的变更的文件。例如在相应的快照中创建了哪个 LSM 数据文件以及删除了哪个文件。
2.3 DataFile数据文件 数据文件按分区分组。目前Paimon 支持使用 parquet默认、orc 和 avro 作为数据文件的格式。avro是行存储、parquet和orc是列存储
2.4 Partition分区 Paimon 采用与 Apache Hive 相同的分区概念来分离数据。分区是一种可选方法可根据日期、城市和部门等特定列的值将表划分为相关部分。每个表可以有一个或多个分区键来标识特定分区。通过分区用户可以有效地对表中的一段记录进行操作。
2.5 一致性保证 Paimon 写入器使用两阶段提交协议以原子形式将一批记录提交到表中。每次提交在提交时最多产生两个快照。这取决于增量写入和压缩策略。如果仅执行增量写入而不触发压缩操作则只会创建增量快照。如果触发了压缩操作则会创建增量快照和压缩快照。 对于同时修改表的任何两个writer只要他们不修改同一个分区他们的提交就可以并行发生。如果他们修改同一个分区则只能保证快照隔离。也就是说最终的表状态可能是两次提交的混合但不会丢失任何更改。有关更多信息请参阅专用压缩作业。 总结Paimon通过LSM树日志结构合并树和列式存储格式parquet/orc实现高查询。 3、主要应用场景
3.1 Flink CDC将数据引入数据湖 Paimon对此进行优化可以一键摄取整个数据库引入数据湖大大降低了架构的复杂性同时还提供灵活的更新选项允许应用特定列或不用类型的聚合更新。支持更新的数据入湖
3.2 构建流式数据管道 PAIMON可用于构建完整的流式数据管道其主要功能包括生成ChangeLog允许流式读取访问完全更新的记录从而更轻松地构建强大的流式数据管道。 PAIMON也正在发展为具有消费者机制的消息队列。最新版本引入了变更日志的生命周期管理可让用户定义它们的保留时间类似于 Kafka例如日志可以存储七天或更长时间。这创建了一个轻量级、低成本的流媒体管道解决方案。
3.3 超快速OLAP查询 虽然前两个用例可确保实时数据流但 PAIMON还支持高速 OLAP 查询来分析存储的数据。通过结合LSM和IndexPAIMON 可以实现快速数据分析。其生态系统支持Flink、Spark、StarRocks、Trino等多种查询引擎都可以高效查询PAIMON中存储的数据。 4、实践案例
案例一提升实时数据分析效率
问题描述一家全球大型零售客户其面临的挑战是如何在门店和电商平台并行的人群中进行实时的用户行为分析和个性化推荐。传统的数据分析架构下系统无法高效处理大规模实时数据导致用户体验不佳推荐系统延迟高。
解决方案通过引入Apache PAIMON实时同步用户的购物行为和库存数据结合Flink进行流式数据处理客户能够基于最新数据生成个性化推荐。这不仅提升了用户的购物体验还降低了基础设施成本。 案例二构建可靠的实时业务监控
问题描述一家零售客户其供应链管理系统随着业务规模扩展和复杂性增加运营与流程管理部门亟需实现对各类业务流程的实时监控以确保流程的稳定性与高效性。然而现有系统架构仅支持离线数据无法满足实时业务需求。
解决方案通过引入PAIMON数据湖基于Aliyun EMR OSS构建了一个实时数据湖。该系统通过Flink和Flink CDC实时收集多个数据源的数据结合OSS对象存储确保了数据的可查询性和分层复用。同时在分析层结合Doris解决了OLAP分析时效性低的问题提高了报表和监控系统的时效性。
--案例来自Artefact
三、Paimon和Flink神魔关系 Paimon是做湖上的实时化处理所以他是从Flink社区诞生的是一种流批统一的数据湖存储格式他能够与Flink紧密配合实现实时数据湖。为了更好的了解Paimon我们要求清楚其他的存储格式Iceberg、Hudi是什么和Paimon有什么关系。 Apache Hudi、Apache Iceberg 、Apache Paimon都是面向大数据湖的表格式存储管理框架。
Hudi发展最早服务生态齐全但是参数很多开发要求较高维护性差面向批处理Iceberg表简单没有很多表引擎主要面向离线生态对实时的更新很慢Paimon实时很快流批一体
四、Paimon的好处
解决Kafka不可查的问题以前使用Kafka做中间件来进行流处理但是kafka是不可查的所以最后还需要一个可以查询的引擎比如把数据写入StarRocks上进行查询。但是Paimon作为一个湖格式可以批写批读也可以流写流读它把整条streaming链路建立起来每一层都是事实可查的架构能够完全实现流批一体。
支持更新的数据入湖 通过FlinkCDC可以一键摄取整个数据库引入数据湖大大降低了架构的复杂性同时还提供灵活的更新选项允许应用特定列或不用类型的聚合更新。 参考文章
流数据湖平台Apache Paimon一概述-阿里云开发者社区
Apache PAIMON实时数据湖技术框架及其实践
【全网首发】Apache Paimon大厂面试必备系列-基础篇
Apache Paimon大厂面试题必备-进阶篇(一)
Paimon助力数据湖仓架构实时化升级-阿里云开发者社区
FlinkPaimon实时数据湖仓实践分享-CSDN博客
数据湖Iceberg、Hudi和Paimon比较_apache paimon-CSDN博客