您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[网易]:基于 IceBerg 湖仓一体架构演进 - 发现报告
当前位置:首页/其他报告/报告详情/

基于 IceBerg 湖仓一体架构演进

2023-03-09网易张***
基于 IceBerg 湖仓一体架构演进

网易数帆基于 网易数帆数字化基础软件自主创新分享周 Iceberg的湖仓一体架构演进 主讲人:周劲松|网易数帆 CONTENT 2 网易数帆湖仓一体方案 3 案例与成果 4 未来规划 1 网易数据开发现状与痛点 网易数帆数字化基础软件自主创新分享周 数字化基础软件自主创新分享周 网易数帆数字化基础软件自主创新分享周 网易数据开发现状与痛点 原始数据 明细数据 轻度汇聚 数据源数据集市 spark spark/hive spark/hive impala spark/hive 网易数帆数字化基础软件自主创新分享周 hive 网易数帆数字化基础软件自主创新分享周 近N天数据 数据源 数据集市 清洗聚合 Kudu Flink CDC LOG 消息队列 分钟/秒级 spark/impala Flink spark/impala 清洗聚合 全部数据 小时/天级 Hive spark Hive spark Hive 主键聚合 清洗/打宽/聚合 近N天数据 数据源 数据集市 Kudu HBASE Flink CDC LOG 分钟/秒级 spark/impala Flink spark 清洗/打宽/聚合 全部数据 spark/impala 小时/天级 spark spark Hive Hive Hive Hive Hive Hive 网易数帆数字化基础软件自主创新分享周 Hive Hive 流批分割的Lambda架构 离线应用层 应用层:流批合并视图 实时应用层 •数据孤岛(Kudu等) •独立采购和部署 •冗余存储浪费成本 spark 网易数帆数字化基础软件自主创新分享周 服务层Hive spark 存储层Hive impala impala Kudu 服务层(实时数仓) KV flink flink •难以数据复用和互通 •研发体系割裂 •研发人效低 数据源 spark 存储层(消息队列+kv) KV 消息队列 flink •研发规范不通用 •应用层视图合并复杂 •指标和语义二义性 数据源 网易数帆数字化基础软件自主创新分享周 网易数帆湖仓一体方案 Arctic 数据孤岛 流批研发体系割裂 网易数帆数字化基础软件自主创新分享周 痛点 实时数据更新 •支持主键定义 •提供唯一性保障 •结构自由化,保障读写效 流批一体功能封装 •毫秒级延迟的实时写入/读取接口 •分钟级延迟的批量写入/读取接口 •Flink/Spark/trino等引擎的支持 功能 网易数帆数字化基础软件自主创新分享周 Hive/Iceberg表格式之上,计算引擎之下的TableService,提供表结构优化以及Kafka封装的实时湖仓系统 •支持PrimaryKey •支持CDCingestion •实现Upsert语义 网易数帆数字化基础软件自主创新分享周 •主键唯一性约束实现 •Mergeonread •optimize •未来扩展SortKey/AggKey 网易数帆数字化基础软件自主创新分享周 数字化基础软件自主创新分享周 •MinorOptimize •执行周期短(约10min一次) •eq-del转换为pos-del •针对changestore •MajorOptimize •执行周期长(约1day一次) •消除delete文件 •优化小文件情况 •针对basestore 01 网易数帆数字化基础软件自主创新分享周 0101 Key:11010011 Snpshotid:1000changenode:11 12M 0101 000001 。。。。。。 011 111 108M 96M 82M 94M changenode basenode basenode:011 basenode:111 changefilebasefile 0 1 0 1 0 1 0 1 0 1 。。。。。。 000 001 0 1 111 Snpshotid:1001 Sparkimpalapresto 11 57M 11 57M 11 92M 网易数帆数字化基础软件自主创新分享周 Mergeonread 0011 1011 000001 00111011111 changenode basenode mergereadtask Arctic核心功能:流批一体 lookupjoinbatchjoin 流批一体功能封装 网易数帆数字化基础软件自主创新分享周 •毫秒/秒级延迟流计算 •分钟级延迟流计算 •小时级延迟批计算 •流和批场景下的关联计算 streamwrite batchwrite streamread seconds seconds minutes minutes hours hours batchread •下游可订阅Arctic表变更 •支持HiddenQueue •秒级延迟订阅 网易数帆数字化基础软件自主创新分享周 •通过消息回撤实现最终一致性 •arctic-flink-connector封装双写和回撤实现细节 •不开启HiddenQueue •分钟级延迟订阅 任务Failover后,先写入Flip消息,带上任务恢复的 网易数帆数字化基础软件自主创新分享周 CP信息 下游任务收到Flip消息,从Kafka找到对应的消息并retract 整个过程由arctic-flink-connector封装 网易数帆数字化基础软件自主创新分享周 ? 事务开始时从AMS分配事务ID,Merge-On-Read/Optimize时根据事务ID判定写入顺序 Arctic总结 网易数帆数字化基础软件自主创新分享周 Arctic是专为开放式数据湖架构设计的流式湖仓服务,arctic在hive/iceberg的表格式基础上提供CDC实时摄取,流式更新,实时数仓等特性,使用arctic就像使用一个独立的数仓服务,无需关心数据或文件在数据湖上的结构,大小和分布。 网易数帆数字化基础软件自主创新分享周 案例与成果 设备库 算法埋点日志 主站埋点日志 ods_device base ods_select_user base ods_ua 清洗 清洗 base 分拆 设备明细表 base base change kvindex 网易数帆数字化基础软件自主创新分享周 圈选明细表 曝光明细表 base 点击明细表 维表join AP批查询 leftjoin 推送分析报表 •Hive表支持流式更新 •通过mergeonread提供实时仓能力数 base 设备库 ods_device base base 清洗 设备明细表 change kvindex 维表join base 算法埋点日志 ods_select_user 清洗 base 圈选明细表 base 网易数帆数字化基础软件自主创新分享周 曝光明细表 实时生产 leftjoin 推送归因表 主站埋点日志 ods_ua base 分拆 base 点击明细表 ABTests营销分析特征加工 样本生产 •批量分析切换到实时生产,生产流程复用 •优化报表响应时间10x-100x base 网易数帆数字化基础软件自主创新分享周 未来规划 未来规划 •更多流批一体场景 •Rollup聚合视图 •SortKey支持,Z-ORDER排序 •部分列的Streamupsert 网易数帆数字化基础软件自主创新分享周 •支持TemprolJoin •更强的Dashboard •任务血缘与数据血缘 •SQL自助查询 •安全体系完善 •支持开放式的权限插件,支持对接Ranger 网易数帆数字化基础软件自主创新分享周 THANKS 感谢观看