- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
5.邵赛赛-从表格式到湖仓系统-腾讯在Iceberg上的实践
邵赛赛,腾讯大数据数据湖团队负责人,专家工程师。Apache Member,Apache Spark PMC成员,曾就职于Hortonworks,Intel,有多年开源大数据领域从业经验。
展开查看详情
1 .从表格式到湖仓系统 - 腾讯在Iceberg上的实践 邵赛赛(jerryshao@tencent.com)
2 .About Me · 腾讯⼤数据专家⼯程师,数据湖团队负责⼈ · ASF Member,Apache Spark & Livy PMC 成员 · 10年开源⼤数据领域从业经验,先后就职于 Intel,Hortonworks · 专注于数据湖⽅案在腾讯内部、云上的实践 落地 2
3 .⽬录 · 什么是Iceberg? · Iceberg的使⽤和挑战 · 湖仓系统的实践 · Table Service · Index System · Caching Service 3
4 .Apache Iceberg
5 .Apache Iceberg – The Table Format Apache Iceberg is an open table format for huge analytic datasets. Iceberg adds tables to Presto and Spark that use a high-performance format that works just like a SQL table. …
6 .Apache Iceberg – The Internals 核⼼思想:在时间轴上跟踪表的所有变化 元数据组织:实现基于快照的跟踪⽅式 • 快照(snapshot)表⽰表数据⽂件的⼀个完整集合。 • 记录表的结构,分区信息,参数等 • 每次更新操作会⽣成⼀个新的快照。 • 跟踪⽼的快照以确保能够最终回收 S1 S2 S3 … v1.json v2.json v3.json S1 S2 S1 S2 S3 S2 S3 特性细节:快照隔离 • 读操作仅适⽤当前已⽣成的快照 • 表的元数据是不可修改的,并且始终向前迭代 • 写操作会⽣成新的隔离快照,并在写完成后原⼦性提交 • 当前的快照可以回退 R R S1 S2 S3 …
7 .Apache Iceberg – The Capabilities 优化数据⼊湖流程 ⽀持更多的分析引擎 • Iceberg 提供 ACID 事务能⼒,上游数据写⼊即可 • 优秀的内核抽象使之不绑定于特定引擎,⽬前 见,不影响当前数据处理任务,简化了ETL 在⽀持的有 Spark , Flink , Presto , Hive • Iceberg 提供 Upsert / MergeInto 能⼒,可以极 • 提供 Java Native API,⽀持直接访问 ⼤缩⼩数据⼊库延迟(分钟级) 统⼀数据存储和灵活的⽂件组织 增量读取处理能⼒ • 使⽤相同的存储兼容批流融合,数据不再孤⽴。 • ⽀持流式读取增量数据 • ⽀持隐式分区和分区进化,⽅便业务进⾏数据分区 • Spark Structured Streaming ⽀持 策略更新(海量分区) • Flink Table Source ⽀持 • ⽀持 Parquet , ORC , Avro ⾏列存兼顾
8 .Iceberg的使⽤和挑战
9 .利⽤Iceberg构建批流融合的湖仓系统 端到端分钟级延迟 结构化、半结构化、 ⾮结构化数据 多消息队列对接 服务层 流式微批导⼊ ODS DWD DWS UPSERT 流式增量加⼯ 流式增量加⼯ 分钟级 分钟级 分钟级 DFS 批处理加⼯ 批处理加⼯ 批处理加⼯ 基于事务的⾏级更新能⼒ 批流融合 湖上分析
10 .挑战之数据接⼊ 分钟级数据接⼊带来的挑战 端到端分钟级延迟 • ⼩⽂件对于性能的冲击 • 元数据的膨胀 写⼊失败造成的Orphan File 结构化、半结构化、 ⾮结构化数据 多消息队列对接 服务层 • 流式微批导⼊ ODS DWD DWS UPSERT 流式增量加⼯ 流式增量加⼯ 分钟级 分钟级 分钟级 DFS 批处理加⼯ 批处理加⼯ 批处理加⼯ CDC接⼊带来的挑战 基于事务的⾏级更新能⼒ 批流融合 湖上分析 • 过多Delete File对性能的影响 • 缺乏⼊湖索引对于性能带来的影响
11 .挑战之数据分析 端到端分钟级延迟 性能,性能,性能! 结构化、半结构化、 • 接⼊时效和查询性能的平衡(small Data File,large Manifests) 多消息队列对接 服务层 ⾮结构化数据 流式微批导⼊ • 数据分布对于性能的影响 ODS DWD DWS UPSERT 流式增量加⼯ 流式增量加⼯ 分钟级 分钟级 分钟级 DFS Data Skipping 批处理加⼯ 批处理加⼯ 批处理加⼯ Data Clustering 基于事务的⾏级更新能⼒ 批流融合 湖上分析
12 .从表格式向湖仓系统演进 Data Service Table Service Aux Metadata Transaction Table Format Caching Service
13 .湖仓系统实践
14 .Table Service - 总体架构
15 .Table Service - 总体流程
16 .Index System – 背景 丰富性 Extensible Indexing ⾼性能 通⽤性 Agnostic to File High Performance Format
17 .Index System – 流程架构 https://docs.google.com/document/d/1E1ofBQoKRnX04bWT3utgyHQGaHZoelgXosk_UNsTUuQ/edit
18 . Caching Service Spark Presto Alluxio 依托Alluxio SDS构建统⼀的 DSv2 Connector 数据缓存层 Alluxio • 构建缓存感知的catalog Alluxio Caching Alluxio Caching 插件式适配各查询引擎 Transformation • Catalog Service Service Catalog Iceberg Catalog Storage HMS Glue Nessie … Iceberg Table
19 .总结 数据湖构建 数据湖加速 湖仓系统 数据湖计算
20 .Thanks