1、湖仓一体全面开启实时化时代王峰(莫问)阿里云开源大数据平台负责人Streaming Lakehouse MeetupData LakeData LakeData LakehouseData WarehouseData Lake+Data Warehouse=Data LakehouseApache Paimon Unified Lake FormatA lake format that enables building a Realtime Lakehouse Architecture with Flink and Spark forboth streaming and batch opera
2、tionsThe Past,Present and Future of Apache Paimon2022.012023.032023.122024.032024.10Initialized in Apache FlinkSub Project of Apache FlinkOriginal name-Flink Table StoreBecame Apache Incubating ProjectRename to Apache PaimonOpen to others rather than FlinkGA Version ReleaseProduction ReadyFor Both S
3、treaming&BatchBecame Apache Top-Level-Project Graduated from Apache Software FoundationIntegrated with Flink/Spark/Presto/Unified Lake FormatUnified for Streaming/Batch/OLAPCompatible with Apache IcebergPaimonTable StorePaimonPaimonPaimon-1.0Streaming Lakehouse is ComingHoursMinutes,SecondsApplicati
4、onADSODSDWDDWSApache PaimonDatabase01010101010101010101010101010101DataData LakeLakeCDCStreaming IngestionLSM TreeApache Paimon 已明确为阿里巴巴统一数据湖格式Apache Paimon01010101010101010101010101010101DataData LakeLakeLSM TreeRealtime ComputeE-MapReduceMaxComputeHologres阿里巴巴集团数据业务阿里云海量客户ThanksStreaming Lakehouse
5、 MeetupApache Paimon统数据湖存储底座李劲松/Apache Paimon PMC ChairStreaming Lakehouse Meetup从孵化到毕业,Paimon 的发展与场景0101CONTENT目录 0202统一存储底座,Paimon 与流、批、OLAP0303完整生态集成,Paimon 的计算引擎推荐0404阿里巴巴实践,Paimon 数据湖战役01从孵化到毕业,Paimon 的发展与场景数据架构的演进:流批一体的 LakehouseAppsStreaming Warehouse:秒级LOGCDCStreamStreamETLData LakeMeta Data
6、Table FormatAppsStreaming Lakehouse:分钟级LOGCDCBatchStreamStreamBatchETLData LakeMeta Data,Table FormatAppsLakehouse:天级/小时级LOGCDCBatchStreamBatchBatchETLLOGAppsWarehouse:天级CDCBatchBatchETLPaimon 前身 FTS 诞生的特点与优势1.低成本的支持了湖上更新2.开放的数据、格式、计算0101 实时数据湖实时数据湖0202 流式数据湖流式数据湖0303 国人主导社区国人主导社区1.深度集成 Flink 流式计算2
7、流读流写+融合状态计算1.面向国内企业解决问题2.沟通和响应更加顺畅Paimon 社区的发展Contributors147+0408012016020222024147168 XCommits2500+0500100015002000250030002022202425004006 XStars2k+05001000150020002500202220242k300+6 X 一键整库入湖,大幅简化架构 近实时更新,极速查询 灵活更新:部分列更新,多种聚合更新CDCCDC 入湖入湖构建流式链路构建流式链路极速极速 OLAPOLAP 查询查询Paimon 的核心场景 变更日志生成机制,融合 状态
8、计算 真正的队列:消费者机制、变更日志单独生命周期 轻状态低成本的流式链路 Z-Order+索引结合计算极速分析 引擎平权发展:Flink,Spark,StarRocks,Trino02统一存储底座,Paimon 与流、批、OLAPApplicationADSODSDWDDWSApache PaimonDatabase01010101010101010101010101010101DataData LakeLakeCDCStreaming Ingestion流、批、OLAP 一体化架构 与 Flink 深度集成,共同往前发展 继续提升更新能力,更新是流的基础 扩大流写流读的场景,分钟级覆盖全场
9、景流流 结合 Flink 打造流批一体架构,流批一体计算+流批一体存储 深度集成 Spark,打造 State-Of-Art 的批读批写性能 深度集成 OLAP 引擎:StarRocks、Trino 等 推广 Deletion Vectors 模式,近实时更新,极速查询 加强 Z-Order 及丰富的索引,加速查询批批OLAPOLAPPaimon 的统一存储发展03完整生态集成,Paimon 的计算引擎推荐Paimon 计算生态04阿里巴巴实践,Paimon 数据湖战役阿里巴巴业务应用场景20+业务方452 万+Flink Cu45100+作业 流式湖仓提升时效性 CDC 入湖降低成本 离线分
10、析查询加速业务业务 目前还仍处于初步阶段 继续整合内部计算系统 权限系统完整数仓体验 大幅降低实时化成本 流批一体化开发体验 解锁开放式计算能力进展进展收益收益Apache Paimon01010101010101010101010101010101DataData LakeLake统一湖存储:打通阿里云所有计算引擎ServerlessServerless FlinkFlinkServerlessServerless SparkSparkServerlessServerless StarRocksStarRocksMaxComputeMaxComputeHologresHologresPaim
11、on 与 Serverless FlinkPaimon 与 MaxComputeCREATE CATALOG dw WITH(type=paimon,metastore=maxcompute,.);INSERT INTOdw.order_dw.dwd_orders SELECT MaxCompute动注册外表查询ETLThanksStreaming Lakehouse Meetup探索 Apache Paimon 在阿里智能引擎的应用场景王伟骏(鸿历)Apache Yarn&Flink Contributor阿里巴巴智能引擎事业部技术专家Streaming Lakehouse Meetup阿里
12、智能引擎 AI 业务背景介绍0101CONTENT目录 0202引入 Paimon 原因、场景及预期收益0303遇到的问题及解法01阿里智能引擎 AI 业务背景介绍DatabaseFile SystemODPSBinlogMessage QueueTransactionsAlgorithm dataEventsLogsStream ProcessingBatch ProcessingSearch EngineAdvertising EngineRecommendation EngineOffline System业务场景及特点File SystemODPSMessage QueueSample
13、 Engine1、异构数据源多2、业务逻辑复杂3、性能调优难、运维门槛高一次开发内部同一份存储可同时用于流处理和批处理流批一体一个ETL流程自动管理作业依赖及衔接屏蔽异构对接拖拉拽UI开发,无需大数据背景一站式开发运维屏蔽背后大数据技术,享受平台技术升级红利端到端开发一站式平台产品定义:提供 AI 领域端到端的 ETL 数据处理解决方案的一个产品愿景:Make e2e big data process easy and efficient!产品介绍及成果千级万级PB级百万级秒级应用规模日处理数据量作业规模增量TPS增量延迟10年+支持双11Pangu(分布式件系统)ASI(持 K8S 协议的统
14、调度、统资源池)淘宝天猫猪德Paimon湖格式Hologres 分布式 kv 存储Swift消息队列OpenSearchAELazada湖表存储优化服务本地活VVP(SDK提交作业、开发、运维)存储VVRSparkTDDLDRCTTPaimonHA3ODPS计算Catalog(Meta、版本、缘、Dataset)依赖组件核功能UI&Web IDE(开发、配置、运维、监控)持业务Connector数据集成UDxFSQL流批体OLAP调度编排Airflow调度产品端流计算批计算户插件样本处理搜推平台样本平台模型评测视觉平台特征时序数据Embedding离线推理Hippo产品技术架构AdHoc菜02
15、引入 Paimon 原因、场景及预期收益4545成本存储成本居高不下,很多实效性要求不高的场景,其实没必要用成本较高的分布式存储服务来支持。优化我们调用发现数据湖在某些场景下可以解决业务性能瓶颈。解决 Lambda 架构缺点Lambda 架构开发维护复杂存在资源浪费情况公司战略公司要建立集团数据湖生态,湖仓协同,促进集团数据资产集中存储,高效使用。引入 Paimon 原因基于以上几个原因,我们深度对比了业界几大数据湖产品(Paimon、Iceberg、Hudi)之后,结合业务需求及社区发展情况等因素综合考虑,最终选择了 Apache Paimon 作为我们数据湖的湖格式。探索场景及预期收益一、
16、样本生成链路消息队列TT(用户点击日志)ODPSKV 存储流样本(Flink+KV 存储)批样本(ODPS+消息队列)一、原链路缺点1、流批不统一,完全两条处理链路。2、时效性要求不高但是存储服务的资源成本却居高不下。ODPSKV 存储消息队列KV 存储ETLSync索引平台Dim JoinSortMergeJoinKV 存储ETLKV 存储Dim Join在线检索引擎探索场景及预期收益一、样本生成链路消息队列TT(用户点击日志)ODPSPaimon流样本批样本一、新链路预期收益1、流批一体2、可以共享部分存储资源。3、用 DimJoin 替换 SortMergeJoin,提升性能。4、减少很
17、多存储服务的成本。ODPSPaimonPaimonPaimonPaimonETLSyncPaimonSQL、OLAP、训练Dim JoinSyncSyncPaimonETLPaimonDim JoinETLDim Join消息队列ORC FileORC FileORC File探索场景及预期收益二、批样本存储链路样本平台DFS索引平台样本Build直接写入 Paimon 湖格式在线检索引擎一、原链路缺点1、索引平台读取消息队列中的样本数据 Build 索引会有长尾,导致产出延迟。2、依赖组件多,整体链路太绕,导致运维成本高,可控性差。二、新链接预期收益依赖组件减少,产出延迟可控,运维及费用成本
18、均可降低。Picture 1Picture 2Picture nTable 1Table 2Table nSourceSinkPaimon TableTFS(图片中心服务)Lookup探索场景及预期收益三、图片特征计算链路一、原链路缺点1、原系统 Partition 数受限,所以分了十多张 KV 表存图片 Cache,用户使用不便。2、每天上亿个新图片,服务端 Build 链路不稳定,经常遇到 OOM 和 磁盘不足等问题。二、新链路预期收益1、由于去除了 KV 系统的服务端,所以不存在 Build 链路不稳定的情况。2、Paimon 表的 Bucket 数可以设置成很大,一张表足以。ODPS图
19、片导入KV 存储系统作为 Cache 使用KV 系统HTTPFlink Batch Job消息队列Update CacheOperator探索场景及预期收益四、搜索离线链路商品维度表商家维度表FlinkJobsFlinkJobs消息队列Sync LayerJoin LayerPaimon?一、原链路缺点部分应用时效性要求分钟级,部分要求秒级,目前统一用分布式 KV 系统做镜像表及结果表。二、新链路预期收益在部分时效性要求分钟级的场景用 Paimon 作镜像表和结果表,在保证不影响业务的前提下,尽量减少存储成本。分布式 KV 存储系统分布式 KV 存储系统分布式 KV 存储系统商品维度表镜像表镜
20、像表结果表商家维度表FlinkJobs在线搜索引擎Paimon分库分表的 Mysql 表App 2App 1App nPaimon Table App 1App 2App n分库分表的 Mysql 表Scan Snapshot-1Scan Snapshot-2Scan Snapshot-3探索场景及预期收益五、搜索全量拉库链路一、原链路缺点1、并发有上限限制,吞吐受限,而盲目加并发有拉挂库的风险。2、核心库拉取时间只能晚上。3、每个应用都要拉一遍 Mysql 表。二、新链路预期收益1、并发无上限,释放吞吐。2、全天 24 小时均可拉取。3、Mysql 表只需拉取一次,能做到共享。Select*
21、From 03遇到的问题及解法PaimonKV存储App 1App 2App nDimJoinKV存储DimJoinKV存储UDTF分库分表 Mysql拉取 Paimon Snapshot 过程中,Snapshot Expire 被删了怎么办?尝试过以下三种解法:1、将 Consume-id 从流场景扩展到批场景。2、统一加大 Snapshot Expire 时间。3、各 App 分别创建 Tag,作业结束后自己负责删除 Tag。解法:首先 Tag 支持精细化 TTL,然后 App 不再 Scan Snapshot,而是 Scan Tag With TTL。每个业务知道自己的业务逻辑,所以可以
22、设置自己需要的 TTL同时该方法也可以给平台兜底,防止漏删 Tag 的情况发生。另外,我们对老版本 Tag 及 Snapshot 都做了兼容。问题一及解法、Snapshot Expire 导致批作业运行失败 Scan Snapshot-1Scan Snapshot-nhttps:/cwiki.apache.org/confluence/display/PAIMON/PIP-20%3A+Introduce+TTL+for+tag不同 App 业务逻辑不同,导致 Job 运行时长不同。tagCreateTimetagTimeRetainedClass Tag extends Snapshot问题二
23、及解法、Schema EvolutionDRC(解析Binlog)Paimon Table 1Paimon Table 2Paimon Table 2分库分表Mysqla、b、c1、增量同步a、b、c2、Clone Tablea、b、c3、Alter Schemaa、b、c、d4、全量同步 d5、增量同步a、b、c、d一、不依赖 Flink-CDC 来实现 Schema Evloution 的原因:1、Flink-CDC 不支持集团 TDDL(基于 Java 语言的分布式数据库系统,提供分表分库等功能)2、Debezium 不支持集团用的 Mysql 版本二、没采用 Paimon 官网的 Ri
24、chCdcSinkBuilder API 实现 Schema Evloution 的原因:1、平台全部作业统一用 Flink SQL,暂无支持 DataStream 的计划。所以我们另辟蹊径,用 Clone Table 来支持 Schema Evloution。DRC(解析 Binlog)Paimon TablePaimon TablePaimon TableData Migration问题三及解法、Data Migration1、业务遇到 DFS 集群裁撤,需要数据从 DFS 集群 A 迁移到 DFS 集群 B。以上两种情况的解法:提供 Clone Table 这种 Data Migrati
25、on 工具。支持 Catalog、Database、Table、Snapshot、Tag 等 CloneType。DFS Cluster A即将裁撤Paimon TablePaimon TablePaimon TableDFS Cluster BData Migration某云厂商2、由于阿里云降价,所以有云上用户想将数据从别的云厂商的云迁移到 AliYun 上。Recreate Snapshot HintPickTablesCopyFilesCopyFilesCopyFilesparallelism=1parallelism=nPick Clone Tables(database.table
26、PickFilesRecreate Snapshot HintRecreate Snapshot Hintchainparallelism=nPartitionBy Hash Of Database.TablePick Clone Filesrebalancehttps:/cwiki.apache.org/confluence/display/PAIMON/PIP-18%3A+Introduce+clone+Action+and+Procedure1、Pick Tables2、Pick Files3、Copy Bytes4、Create Snapshot HintsClone Table 实
27、现方法保证 Clone 结束后 Target Table 至少有一个完整的 Snapshot。ThanksStreaming Lakehouse MeetupApache Paimon在蚂蚁的应用闵文俊/Apache Paimon CommitterStreaming Lakehouse Meetup蚂蚁Paimon应用场景0101CONTENT目录 0202蚂蚁Paimon功能增强0303未来规划什么是Paimon实时更新 LSM Tree ChangelogProducer Merge Engine Deletion Vector流批一体 支持流读 支持批读 支持Time travel 支
28、持维表点查 全增量一体消费OLAP友好 列式存储 Statistics DataLayout优化丰富生态 Hive Flink Spark Trino Presto Starrocks Doris 01蚂蚁Paimon应用场景长周期累计去重长周期累计去重u 资源开销方面,基于Paimon方案CPU使用量约下降60%,内存使用量约下降35%u Checkpoint稳定性得到大大的提升,cp 大小和 cp耗时下降90%u 任务回刷重置耗时降低80%u 简化研发模式,降低研发成本极速核对u 节约了80%的存储资源以及70%的计算资源u 在最后批发奖的过程中,节约了1.2时的核对时间,提了保障同学以及
29、五福业务同学的幸福度。离线分析查询加速难点:1.数月历史数据回溯2.响应时效要求高离线分析查询加速u 存储成本更低,使用 paimon 作为统一存储,替换了昂贵的 Hbase 和 ES 存储资源u 数据时效性高,近线数据实时同步,分钟级对用户可见(取决于 checkpoint 间隔),天级离线数据同步也从 19 小时降低到不足 1 小时u 运维成本低,使用 Flink 作为统一计算引擎,使用 paimon 作为通用存储,运维更高效u 根治了交易分析数据不准确的老大难问题.原方案数据在 odps、hbase、es 存储多份,数据一致性难以保证,使用 flink+Paimon 架构保证了查询的准确
30、性u 通过Sort Compact+BloomFilter索引的优化,在查询阶段可以过滤量的数据,基本可以达到5-10s以内的查询耗时,在极低的存储成本上满业务的查询的需求.02功能改进Lookup JoinFull CachePartial CacheLookup JoinBucket Hash Join Lookup BloomFilter IndexMerge Engine 拓展u 支持First Row merge Engine(支持event time/process time去重)u 支持 Partial-update with aggregationu 支持Roaring Bitmap/theta sketch 等常用计算uv 聚合函数和分析函数u 支持exclusive sequence 解决 last_non_null_value/first_non_null_value 聚合函数等对独立版本号更新的需求Change log生命周期解耦以更低的存储成本实现更周期(类消息队列)的流读体验4545未来规划流读和查询性能优化打通现有离线生态增强表管理,运维,元数据管理,自优化服务进一步拓展数据湖的应用场景和规模






