《Iceberg 在湖仓建设的若干实践.pdf》由会员分享,可在线阅读,更多相关《Iceberg 在湖仓建设的若干实践.pdf(28页珍藏版)》请在三个皮匠报告上搜索。
1、Iceberg在湖仓使用中的若干探索李立伟 华为 资深工程师2023 整体概述应用探索整体概述使用传统的目录方案进行数据管理在传统方案,例如Hive中,表被定义为一个或多个目录的全部数据。组成表的数以目录级别进行跟踪,这些数据被存储在Hive元存储中完成。分区值通过目录路径定义:适用于几乎所有处理引擎,因为它是村里唯一的希望自从大数据被更广泛采用以来,一直是事实上的标准。存储格式无关分区级别原子性提供了整个生态系统中的“元数据描述”即使微小的变更依旧效率低下多分区修改无法保证安全性多个作业同时修改一份数据无法保证安全性列出大表的目录列表需要非常长的时间用户必须知道表格的物理布局Hive 表统计
2、信息通常是陈旧的在云对象存储上的性能较差要达成的目标Old WayNew Way文件级别的数据表目录级别的数据表目标:表的正确性与一致性 更快的planning and execution 用户无需感知物理结构 表演进 在大规模数据上实现以上目标Iceberg是什么-一种Table Format 规范-一组API和库,可用于引擎与遵循该规范的表进行交互-存储引擎-计算引擎-服务数据流图中间层中间层支持支持OLAPOLAP分析及实时化分析及实时化将DWD数据明细层与DWS数据服务层从批式T+1处理,演进为流式增量处理,数据时延大大降低支持支持ACIDACID语义语义完善的ACID语义支持,修改操
3、作不会影响读取等支持高效回溯支持高效回溯Hive/Kafka等无法有效回溯历史版本,无法查看历史的表格式与数据存储成本更低存储成本更低一套存储在OBS上完成业务数据落地数据数据延迟未达到实时延迟未达到实时业务系统改造业务系统改造对接对接针对针对IcebergIceberg表的定制表的定制优化优化Pulsar/DMQHDFS/OBS数据入湖贴源数据明细数据模型数据clickhouseesAPP增量处理增量处理批流一体存储逻辑架构数据入湖HDFSOBSStorage Cache(数据加速层)数据源业务库文件消息按需加载实时加载实时检索HBaseELasticSearchClickhouse图数据库
4、RedisIOT DB数据清洗大屏展示清单/详单查询挖掘建模数据管理固定报表BIAI分析专题分析实时应用自助分析贴源数据明细数据模型数据File StoreLog StoreService生命周期管理数据重分布数据压实告警监控应用探索流数据接入通知式告知完成状态分区数据未写入完成,不希望下游可查询等场景随时感知数据的写入位基于水位线的自定义提交sink.partition-commit.delay=1 h,sink.partition-commit.trigger=partition-time,sink.partition-commit.policy.kind=success-file基于水位
5、线的延迟数据处理在流式处理过程中,时效不同的数据价值也是不同的。时效越高的数据,价值越高。基于此,当时效较低的数据到达时,将数据进行累积,直到数据量达到一定级别,再行提交。类Git式的数据管理周期稳定快照重要历史快照实验分支类GIT式数据管理-进行全量表改造痛点:数据冗余存储,每天都存储了一份全量的历史数据,表数据保存的周期越长,冗余数据越多1lisi2Zhangsan(1,lisi2),(3,wangwu)1lisi22Zhangsan3wangwu1lisi22Zhangsan3wangwu4xiaohong(4,xiaohong)优势:每天只存储增量数据,无需全量存储存储占用降低为原本的
6、25%以下升级列更新IDCol21b13b34b4c.file Partial FileSEQ 1IDCol11a12a23a34a4IDCol1Col21a1b12a23a3b34a4b4IDCol11a12a23a3IDCol14a4a.file Data FileSEQ 0b.file Data FileSEQ 0IDCol11a12a23a3IDCol14a4a.file Data FileSEQ 0b.file Data FileSEQ 0Add Col2 column关键技术:关键技术:元数据关联部分列信息根据新列生成部分列数据读取时或后台异步任务合并部分列数据使用Puffin完成
7、初步的索引应用根据规范,Puffin 是一种文件格式,旨在保存有关由 Apache Iceberg 表管理的底层数据文件(例如 Parquet 文件)的统计信息和索引等信息,以进一步提高性能。该文件包含称为“blob”的任意信息片段,以及分析它们所需的元数据。到目前为止,blob 可以是以下类型:apache-datasketches-theta-v1。利用Puffin文件,将此文件写入到表中,并且在开启外部索引的情况下,将此文件的内容加载到外部索引组件中,加速关联、点查等场景。不止于 Table Format良好的业务使用体验极低的维护成本支持多种存储、计算引擎自动优化数据湖服务配套实时数据
8、湖仓,全面提升相关性能、可视化、运维监控能力:1.服务规则引擎:使用数据重分布等提升查询性能、进行数据生命周期管理等2.告警规则引擎:基于配置的告警进行相应监控实时显示湖内数据概况数据分布、告警等信息基于File IO的对象存储优势基于File IO的对象存储优势基于File IO的对象存储优势基于File IO的对象存储优势隐藏分区隐藏分区隐藏分区更新分区规范纯粹是一种元数据操作,因为不会重写先前的数据,因此非常快速、简单且成本低廉。计划查询时,引擎将拆分工作并为适用于每个分区规范的数据创建不同的计划。由于您可以打破查询计划,因此无需重写所有旧数据,从而使对表架构的增量更改变得简单且成本低廉。同时也可以随时使用 rewriteDataFiles 过程重写旧数据以进行压缩和排序。如何无缝迁移到iceberg仅需三步:1.任务添加Iceberg Runtime包2.自动生成快照表用于验证3.验证后升级原表到Iceberg(原表将被加上Backup后缀)欢迎加入我们的团队欢迎关注Iceberg社区公众号欢迎加入Iceberg交流群感谢您的观看