- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
4.张文歆-基于Iceberg拓展Doris数据湖能力的实践(2)
展开查看详情
1 .基于Iceberg拓展Doris 数据湖能力的实践
2 .01. 数据湖拓展产生的背景 02. 需求分析与组件选型 03. 核心能力实现方案 04. 总结
3 .01 数据湖拓展产生的背景
4 .01 Doris简介 Apache Doris是一个现代化的 MPP分析型数据库产品。仅需亚 秒级响应时间即可获得查询结 果,有效地支持实时数据分析。 Apache Doris的分布式架构非 常简洁,易于运维,并且可以支 持10PB以上的超大数据集。 Apache Doris可以满足多种数 据分析需求,例如固定历史报 表,实时数据分析,交互式数据 分析和探索式数据分析等。令您 的数据分析工作更加简单高效!
5 .01 典型使用场景 BI Log Doris 分析
6 .01 期望愿景 BI Log Doris 分析
7 .02 需求分析与组件选型
8 .02 需求简介 使用方式保持一致 目标 以Doris为核心,在Doris之上 统一的元数据服务 提供基础的数据湖能力。构建 一个一站式的数据分析平台。 灵活强大的计算引擎 计算引擎独立的存储中间层
9 .02 元数据服务选型 结构化数据 半结构化数据 控制流元数据 1. 导入到数据湖的表 1. DFS中的文件 1. Work Flow 2. 增量数据 2. 流式存储中的数据 2. CDC 3. 外部表(Hive) 3. … 3. … 4. … 1. 可扩展的表类型 2. 可扩展的数据库类型 3. 可扩展的Catalog Doris FE
10 .02 存储中间层选型 并发控制 数据可变更 数据湖 存储中间层 元数据可变更 多计算引擎支持 多存储服务支持
11 .02 存储中间层对比 Iceberg Delta Hudi 并发控制 Optimistic Optimistic MVCC / Optimistic Copy on Write 数据可变更 Copy on Write Copy on Write Merge on Read Full Schema evolution 元数据可变更 Partition evolution Backward compatible Backward compatible 多引擎支持 Excellent Not Good General In-place write Atomic visibility Seekable-reads Mutual exclusion Hadoop 多存储服务支持 Deletes Constant listing File System API
12 .02 计算引擎选型 批任务优先 出色的性能 良好的扩展性 团队熟悉
13 .02 基础框架 FE 数据湖元数据 BE 对象存储
14 .03 核心能力实现方案
15 .03 数据导入BE Doris Broker Spark Doris Sink BE OLAP TABLE BE OLAP TABLE BROKER Doris Sink
16 .03 数据集成-STAGE 可变数据类型 • 文件增删列友好 • 列类型变化友好 Stage 增量数据捕获 FE 1. URL 3. Storage Options • 同一张表避免重复导入 2. File Format • 不同表互不影响
17 .03 数据集成-STREAM Consume Offset • 仅在被消费后才更新 • 查询不会触发更新 Stream Value Convertor FE 1. Host + Port 3. Consume Offset • 解析Value内容为结构化数据 2. Topic 4. Value Convertor • 避免反复使用get_json_object等函数
18 .03 数据集成-EXTERNAL DATABASE 库级别 • 避免表级别反复操作 • 自动更新表列表 元数据缓存 • 加速元数据查询 • 智能缓存,优化内存占用 EXTERNAL DATABASE 数据缓存 FE 1. Host + Port 3. Hive Database 2. Hive Version • 查询加速 • 智能缓存,优化存储空间占用
19 .03 数据集成-CDC 目标表 Merge Into 多表事务 Canal • 以MySQL事务为单位更新数据 临时表 • 同一事务内的多表更新,同时可见 异步更新 • 数据卸载到临时表与目标表更新异 步执行 CDC SYNC JOB • 避免Merge任务阻塞更新数据拉取 FE 1. Source 3. Target Tables Address 4. Current offset 2. Source Tables
20 .03 存储优化-小文件合并 文件碎片化原因 FE 1. 分钟级调度任务 目标表筛选 产生的小数据量文件 小文件合并服务 • 在FE中通过Iceberg表元数据信 2. CDC 任务产生的文件 1. 目标表筛选 息过滤出需要小文件合并的表 3. Update / Delete / 2. 任务生成 • 避免对数据文件频繁操作 Merge Into 产生的小文 3. 任务调度 任务调度 件 Call • 根据计算集群负载智能调度 Rewrite Action • 智能避让用户同表写任务
21 .03 存储优化-过期数据删除 数据过期原因 FE 1. Iceberg的快照机制 + 快照有效期限制 过期数据删除服务 目标表筛选 2. Update / Delete / 1. 目标表筛选 •通过表快照存留时间属性过滤 Merge Into的底层行为 2. IO调用速率控制 3. 小文件合并后的原有数据 IO调用速率控制 4. 写冲突产生的废文件 Call 5. 失败任务产生的废文件 •根据存储集群负载智能调度 Expire Action
22 .03 其他功能 任务流调度 实时监控 用户行为审计 克隆表 …
23 .03 架构图 数据湖元数据 作业流 监控 FE 小文件合并 过期文件清理 … BE CDC External Table Stream Stage
24 .04 总结
25 .04 总结 以Doris为核心 聚焦用户需求 以降低用户使用难度为目标 实现最小功能集 拓展Doris数据湖能力
26 .