数字时代,数据呈现出了大规模、多样性、极速增长的态势,同时,企业对数据处理分析的实时性和融合性提出了更高的要求,数据应用场景正在向复杂化、多元化转变,从最初的交易场景,到分析场景,再到混合场景、复杂分析场景,再到如今的实时混合场景,随之而来的是大数据架构在一直不断地演进。从数据库、数据仓库、数据湖,到现在 “湖仓一体(Lake House)”的概念应运而生。
根据DataBricks公司的定义,湖仓一体是一种结合了数据湖和数据仓库优势的新范式,在用于数据湖的低成本存储上,实现与数据仓库中类似的数据结构和数据管理功能。湖仓一体是一种更开放的新型架构,它打通了数据仓库和数据湖,将数据仓库的高性能及管理能力与数据湖的灵活性融合了起来,底层支持多种数据类型并存,能实现数据间的相互共享,上层可以通过统一封装的接口进行访问,可同时支持实时查询和分析,为企业进行数据治理带来了更多的便利性。
目前国内外同行将 delta、iceberg 和hudi 作为数据湖 table format 的对标方案。delta的推出是为了解决传统数据湖在事务处理、流计算、BI 分析上的不足。从功能上看,iceberg和delta几乎一样,但是iceberg似乎更加符合一个开源项目的气质。早期这个项目更多是为了应对 Netflix 对大体量数据分析的需求。hudi 开源和孵化的时间线与 iceberg 比较相近,核心功能是在 hadoop 上支持 upsert 和 incremental process。hudi 在三个项目中最早提供 stream upsert 能力 ,如果不做二次开发,hudi 是开箱即用的数据湖 upsert 方案,并且 hudi 社区对开发者非常开放。
企业需要怎样的数据湖?
面对众多的数据湖,企业究竟需要怎样的产品?这个问题可以从Delta的身上看出端倪。“ Delta用一套数据湖存储,将批计算和流计算融合,将传统数仓在数据分析上的优势,数据湖在 AI,数据科学上的优势结合起来,基于 Lakehouse 这个存储底座,实现数据业务的全场景覆盖。总结起来就是,Delta 给 Databricks 带来的价值是用一套基础数据湖软件,实现全场景覆盖。”网易数帆大数据实时计算技术专家、湖仓一体项目负责人马进表示。
另一方面,国内实时计算基本在用 Flink,而绝大多数企业不会绑定一个计算引擎,所以引擎平权对数据湖极为重要。不同引擎的应用可以吸收各家优势,但会带来产品割裂的问题,产品割裂在大数据方法论的迭代中被更加放大,比如在数据中台中,指标系统,数据模型,数据质量,数据资产这一套中台模块基本是围绕离线场景打造,而在强调 CI/CD 的 Dataops 中,流计算的需求和场景因为存储和计算的不统一更加难以被纳入考量。
应对之策就是实时数仓--流计算对应的场景和需求在大数据平台的方法论迭代中被边缘化,用户无法在实时场景下体验到数据安全,数据质量,数据治理带来的收益,很多既需要实时也需要离线的场景下,用户需要维护流表和批表两套模型,两套代码,并且时刻警惕语义和模型的二义性。
立足于开源数据湖 Format之上,打造Arctic
过去两年,网易数帆的团队开发了 Arctic项目,并且在今年7月底开源。“我们的工作不是另起炉灶,做一个跟 delta/iceberg 竞争的产品,这不符合企业的需求,Arctic 是立足于开源数据湖 Format之上的服务,基于 iceberg的产品。”马进表示。“我们的目标要将 Dataops 的边界拓展到流计算,所以 Arctic 会为用户提供更加优化的流的能力,包括 stream upsert、生产可用的读时合并技术、提供分钟级别新鲜度的数据分析能力。”简而言之,Arctic 是适配多引擎的流式湖仓服务。
Arctic作为服务可以适配不同的数据湖格式,企业无需担心数据湖技术的选型问题,持续优化数据分析能力,也让数据流管理变得简单;在能力上,Arctic不仅提供了基于主键高效地流式更新,数据自动分桶、结构自优化的特性,还支持将数据湖和消息队列封装成统一的表,实现比传统方案更低延迟的流批一体,从根本上优雅地解决性能问题。另一方面,Arctic还提供流式数仓标准化的度量,dashboard 和相关管理工具,并为流批并发写入提供事务性保障;在架构上,Arctic设计简洁,只有AMS、optimizer和dashboard三个组件,在数据湖和计算引擎之间提供湖仓一体落地所需的能力,但却支持Spark和Flink读写、Trino查询,百分百兼容Iceberg/Hive的表格式和语法,这使得它的使用成本很低。
“当我们将数据湖的能力拓展到实时场景,成本、性能和数据新鲜度三者的关系将呈现更为复杂和微妙的状态,Arctic的服务和管理功能,将为用户和上层平台理清这个三角关系。”马进强调。
打造成熟的湖仓管理系统
马进认为,流式湖仓未来最终是要在产品上体现,和整个产品上层的方法论结合在一起。如果只是把流式湖仓当成另外一种分析平台,或者是对标像Kudu、Doris对标的方案,意义不大,或收益有限,其最终收益应该结合数据建设方法论来看。
对于Arctic的发展方向,网易数帆团队希望其向一个成熟的湖仓管理系统过渡。就像在数据库领域的Oracle、MySQL、DB2等系统,它们不光是数据库,还是一套管理系统,包括information schema、各种各样标准化管理和度量的工具,共同为上层工具和用户服务。比如上层要做数据库的工具,就会用标准化的命令或者SQL,与数据库交互就可以了。“我认为这是一个成熟的管理系统需要具备的能力。”马进表示。
总之,Arctic的未来一方面要补足底层的短板,包括性能和可靠性,以及持续优化的能力。另一方面,是要提高它在管理上的标准化能力,比如table service能力,optimizing过程管理能力,进而形成一个成熟的管理系统。