网易数据开发现状与痛点
网易数据开发目前采用流批分割的Lambda架构,存在数据孤岛、独立采购和部署、冗余存储浪费成本、难以数据复用和互通、研发体系割裂、研发人效低、研发规范不通用、应用层视图合并复杂、指标和语义二义性等问题。
网易流批一体的实时数据湖Arctic
Arctic是网易开源的流式湖仓系统,在Iceberg和Hive之上添加了更多实时场景的能力,面向DataOps提供流批统一,开箱即用的元数据服务。
Arctic核心功能:
- 实时数据更新: 支持主键定义,提供唯一性保障,结构自由化,保障读写效率。
- 流批一体功能封装: 毫秒级延迟的实时写入/读取接口,分钟级延迟的批量写入/读取接口,支持Flink/Spark/trino等引擎。
- 文件索引: 通过文件索引实现Merge on read,优化查询性能。
- 流批一体功能封装: 支持毫秒/秒级延迟流计算,分钟级延迟流计算,小时级延迟批计算,流和批场景下的关联计算。
- Hidden Queue: 下游可订阅Arctic表变更,支持秒级延迟订阅,通过消息回撤实现最终一致性。
- 多写一致性保障: 事务开始时从AMS分配事务ID,Merge-On-Read/Optimize时根据事务ID判定写入顺序。
Arctic架构:
- AMS: 元数据服务,三元组的元数据中心,支持和HMS同步,一起服务,事务和冲突解决API。
- Optimizer机制: Optimizer container,Optimizer group,配套Dashboard,注重管理体验。
- Table format: 完全兼容Iceberg/Hive。
案例与成果
Arctic已应用于推送营销分析场景,通过支持Hive表流式更新,以及Merge on read提供实时仓能力,优化报表响应时间10x-100x。
未来规划
- 更多流批一体场景: Rollup聚合视图,Sort Key支持,部分列的Stream upsert,不依赖外部KV实现Flink lookup join。
- 拓展与集成: 更多SQL语法支持(MERGE INTO),扩展更多的Table format(Hudi、Delta),支持开放式的权限插件,支持对接Ranger,更多optimizer container支持。