《祝佳俊_网易严选_datafun_20240309.pdf》由会员分享,可在线阅读,更多相关《祝佳俊_网易严选_datafun_20240309.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、易严选湖仓体建设实践祝佳俊易严选01现状&问题02实践&效果03未来规划录 CONTENT01现状与问题1 数据架构现状2022:Aapche Iceberg在易严选批流体的实践存在的问题T+1d ODS原始数据准实时湖时调度准实时 ODST+1d DWD每天调度T+h DWD每天调度311T+1DWD产出链路3不同时效不同任务需要等待T+1 ODS数据制作任务完成后才能开始运任务产出T+1 DWD层数据,频繁的IO和任务调度,影响数据产出22时效性依赖任务调度频率时级时效的DWD数据时效依赖调度任务的频率,时效性越,调度越频繁,需更多计算资源天级/时级时效的DWD数据,虽然仅仅是查询的表不同
2、,但需要开发和维护不同的任务,处理逻辑要改动时需要修改多个任务,不易维护。02建设实践1.增强Iceberg Time Travel特性,持查询精确时间点数据2.实现Iceberg物化视图,提升DWD数据时效Time Travel增强:精确时间点数据查询T+1d ODS原始数据实时湖准实时 ODS凌晨调度time00:08idnametime1张三00:00update name=张 where id=1idnametime1张00:08insert name value(李四)00:09idnametime1张00:082李四00:09delete where id=100:1100:100
3、0:12idnametime2李斯00:11直接查询表得到的结果是idnametime1张00:082李四00:09我们期望的结果是在00:12时,要查询时间点00:10时的数据idnametime2李斯00:11update name=李斯 where id=2 T+1d ODS表:1.由Spark Jar任务产出2.保存了00:10准点快照数据凌晨调度T+1d DWDIceberg Time Travel特性增强SELECT*FROM tableTIMESTAMP AS OF 00:10:00idnametime1张00:08找到最近个commit时间=00:10:00的snapshot进
4、MOR查询,即00:08:00分提交的snapshot_1Iceberg原的Time Traveltime00:08insert name value(张)idnametime1张00:08insert name value(李四)00:09update name=李斯 where id=200:1100:1000:12commit snapshot_1commit snapshot_2idnametime2李四00:092李斯00:11idtime100:11数据件等值删除件delete where id=1d_file_ad_file_bfilerowd_file_b1位置删除件e_fil
5、e_ap_file_a00:12进查询Time Travel增强:精确时间点数据查询time00:08insert name value(张)idnametime1张00:08insert name value(李四)00:09update name=李斯 where id=200:1100:1000:12commit snapshot_1/设置time travel模式为精准模式 SET spark.sql.iceberg.time-travel-mode=exactly;/设置时间字段 SET spark.sql.iceberg.exact-read-combine-field=time;
6、SELECT*FROM table TIMESTAMP AS OF 00:10:001.回溯历史snapshot找到max(time)=00:10:00的快照snapshot_1作为全量快照2.从全量快照开始往后找到min(time)00:10:00的数据4.对全量快照和过滤数据后的增量快照执MOR查询commit snapshot_2idnametime2李四00:092李斯00:11idtime100:11数据件等值删除件idnametime1张00:082李四00:09delete where id=1d_file_ad_file_bfilerowd_file_b1位置删除件e_file