IntroducingArctic 网易数帆开源的流式湖仓服务Arctic 主讲人:网易数帆湖仓一体项目负责人马进 4 Roadmap与总结 CONTE 1 数据湖tableformat之争 2 企业需要怎样的数据湖 NT 3 流式湖仓服务Arctic 数据湖tableformat之争 什么是tableformat •Tableformat定义了哪些文件构成一张表,这样任何引擎都可以根据tableformat查询和检索数据 •Tableformat规范了数据和文件的分布方式,任何引擎写入数据都要遵照这个标准,通过format定义的标准支持ACID,模式演进等高阶功能 icebergdeltahudi Arctic开源发布会 从Hive到Tableformat •表与静态目录的映射 •NOACID,单读单写 •管理表与快照,快照与文件的关系 •ACID保障,多读多写 •快照支持增量读,支持回溯 Arctic开源发布会 Tableformat核心特性 Arctic开源发布会 •结构自由 •读写自由 •流批同源 •引擎平权 Tableformat核心特性 CDC •结构自由 •读写自由 •流批同源 •引擎平权 SQLextensions forbatchprocessing Rollback/timetravel Schemaevolution update/delete mergeinto Upsert+mergeonread Arctic开源发布会 企业需要怎样的数据湖 流批平台割裂的现状 面向数据 数据治理 数据模型 数据质量 基于数据湖的开放架构 数据资产 flink实时计算 kv/dbdim kudu/doris kafka vs 点对点开发 面向过程 数据源 Arctic开源发布会 sensorslogsdatabases datalake 网易大数据平台实践 Hive Hive Hive Hive 数据集市 Kudu 数据源 HBASE flink 分钟/秒级 spark/impala CDC LOG flink spark/impala spark 清洗/打宽/聚合 全部数据 小时/天级 spark spark Hive Hive Arctic开源发布会 清洗/打宽/聚合 近N天数据 传统lambda架构弊端 应用层:流批合并视图 离线应用层 实时应用层 spark impala impala 服务层(实时数仓) spark flink flink spark 存储层(消息队列+kv) 数据源 flink 数据源 消息队列 KV Kudu KV Hive Hive •数据孤岛(Kudu等) •独立采购和部署 •冗余存储浪费成本 •难以数据复用和互通 •研发体系割裂 •研发人效低 •研发规范不通用 •应用层视图合并复杂 •指标和语义二义性 Arctic开源发布会 业务期望:流批一体 spark spark 应用层 flink Arctic Arctic flink Trino/impala •研发过程统一 •研发规范统一 •指标语义统一 •存储统一,消除孤岛 •降本,提效 sparkflink 数据源 Arctic开源发布会 流式湖仓服务Arctic Arctic是什么 •Arctic是由网易开源的流式湖仓系统,Arctic在Iceberg和Hive之上添加了更多实时场景的能力,并且面向DataOps提供流批统一,开箱即用的元数据服务,让数据湖更加好用和实用。 Arctic开源发布会 ArcticTablestore •Tablestore:存储单元 -CDC写入Changestore -存量数据存储在Basestore -Change/base是独立表 -可选集成kafkalogstore •Tablestore优势 -CDC按顺序回放 -Change表可以开放访问 -屏蔽optimize产生的快照 Arctic开源发布会 与iceberg原生方案不同,提供了更加优化的,面向生产的streaming能力 Arcticarchitecture •AMS:元数据服务 -三元组的元数据中心 -支持和HMS同步,一起服务 -事务和冲突解决API •Optimizer机制 -Optimizercontainer -Optimizergroup •配套Dashboard,注重管理体验 •Tableformat完全兼容 Arctic开源发布会 Arcticself-optimizing Arctic开源发布会 Arctictableservice Arctic开源发布会 并发冲突解决 Arctic开源发布会 Arcticautobucketing Snpshotid:1000 0 1 Key:11010011 changenode:11 0 1 0 1 12M 0 1 0 1 。。。。。。 000 001 011 111 108M 96M 82M 94M basenode:011 basenode:111 changenode basenode changefilebasefile Arctic开源发布会 Arcticmerge-on-read 0 1 0 1 0 1 0 1 0 1 。。。。。。 000 001 0 1 111 Snpshotid:1001 Spark impala presto 11 57M Mergeonread 11 92M 11 57M 0011 1011 000001 00111011111 changenode basenode mergereadtask Arctic开源发布会 chbenchmark Arctic开源发布会 chbenchmark Arctic开源发布会 Roadmap与总结 Arctic:流式湖仓服务 •格式兼容:百分百兼容Iceberg/Hive的表格式和语法 •引擎平权:支持Spark和Flink读写数据,支持Trino/impala查询数据 streaminglakehouseservice •基于主键高效地流式更新 •数据自动分桶,结构自优化 •Spark/Trinomerge-on-read,查询分钟级新鲜度 •支持将数据湖和消息队列封装成统一的表,流批表合一 •提供流式数仓标准化的度量,dashboard和相关管理工具 •解决并发写入冲突,实现事务一致性语义 Arctic开源发布会 Arcticfeaturework Arctic开源发布会 Arctic要聚焦回答以下几个问题: •表的时效性怎么量化,是否达到用户预期 •怎样在时效性,成本和性能之间tradeoff •湖仓表当前的查询性能有多少可优化空间 •数据优化的资源怎样量化,怎样最大化利用 •怎样灵活分配资源,为高优先调度资源 Arcticfeaturework Corefeature •不依赖外部kv实现flinklookupjoin •流式更新部分列:Streaminlineupsert •更多optimizercontainer支持 •更多SQL语法支持(MERGEINTO) •更多类型format支持 Arctic开源发布会 ArcticOpenSource -为开发者、用户等成员建立一个公开、自由的全球数据湖技术交流社区。 -所有成员可通过贡献、分享、协作的方式参与社区。 Arctic开源发布会 THANKS 感谢观看