湖仓一体架构及数据平台的技术演进

  公司新闻     |      2024-06-02 22:47

  首先简要介绍一下湖仓一体架构。湖仓一体融合了数仓和数据湖的优势,通过将数仓构建在数据湖上,在用于数据湖的低成本存储上实现与数据仓库中类似的数据结构和数据管理功能。其最重要的一点,是实现湖里和仓里的数据、元数据能够无缝打通,并且自由流动。湖仓一体架构核心定位是基于一套存储、一份数据、一套任务,实现数据集成、处理、治理等任务,面向可扩展的、可插拔的各种计算和应用的一种架构体系。

湖仓一体架构及数据平台的技术演进(图1)

  第一个阶段:随着业务模式和技术的发展,数据应用场景越来越复杂度,数据也越来越丰富,数据平台由传统的数据仓库发展到以大数据 Hadoop 平台为主的数据湖架构,典型业务应用场景是 Hadoop 大数据平台+MPP 数据库。第二个阶段:随着流批需求的出现,架构出现了包括 Lambda 架构和 Kappa 架构的架构实现。Lambda 架构是通过同时维护两套分布式系统,一套处理离线数据业务,一套处理实时数据业务来支撑流批需求的。Kappa 架构主要是通过计算引擎高速处理实时数据业务,对离线数据业务的处理稍显不足。为了解决这个问题,流批一体的概念被提出来了,并最终出现了像 Hudi、Iceberg 等流批一体的解决方案,最终形成了湖仓一体的技术格局。特别是最近几年,数据越来越丰富,数据规模也越来越大,并且出现了丰富的 AI 应用场景,在湖仓一体化建设的过程中又会面临一些新的挑战:比如数据分布在多个集群、数据存储集群技术选型不同、跨集群查询效率低下、不同场景需要使用不同的访问接口等问题,因此在基础的湖仓一体架构下又衍生出了结合数据编制技术、数据虚拟化技术的方案,并且逐渐在实践中得到越来越多的应用。

  湖仓一体数据平台架构在实践和落地过程中包括两种模式,一种是集中式建设模式,另一种是非集中式建设模式。

湖仓一体架构及数据平台的技术演进(图2)

  湖仓一体数据平台架构数据规模较小、数据复杂度低、应用场景简单,比较适合于集中式建设。集中式建设数据分布相对集中,集群规模不大,比如基于原有的 Hadoop 的 HDFS 存储、对象存储,构建一个集中式的存储体系。然后在其上构建元数据层,包括 Meta 和 schema,完成数据建模。通过流批处理引擎、交互式查询与分析、AI 引擎,完成数据应用和数据治理。满足业务应用场景和 AI 应用场景。集中式建设是大数据平台建设中比较常见的一种建设模式。

  另外一种建设模式是非集中式。由于数据量、安全、业务分布或成本等问题,数据可能分散在不同地方存储,可能是数据中心或者云上云下,在物理上是分开的。要实现一套存储、一份数据、一套任务,就需要去建设统一的元数据管理层、统一的数据开发平台、统一的资源调度平台,以及统一的任务调度平台,最终形成一个基于非集中式建设的湖仓一体架构。在这个过程中需要用到数据编制或者数据虚拟化的技术。

湖仓一体架构及数据平台的技术演进(图3)

  在湖仓一体架构的发展过程中,除了一些技术或数据时效性的驱动力,更大的驱动来在于降低成本。传统的 Lambda 或者 Kappa 架构,数据流是分开的,存储和计算的成本,以及整个技术复杂性所带来的维护成本都是非常高的。使用湖仓一体化架构后,第一个显著的效果就是降低整体成本。首先,可以降低存储成本,数据不再需要存储多个拷贝,只有一份数据就行了。第二,可以降低数据管理成本,减少拷贝带来的复杂度,也减少数据搬运、数据治理以及开发维护的成本。第三,还可以避免多份数据导致的数据一致性问题以及各种数据安全问题,降低使用数据时的技术对接成本。另一方面的价值就是增效。首先是提升业务 ROI,随着业务孵化成本的降低,业务迭代效率将会更高。第二,提升数据质量和时效性,流批一体可以大大提升数据集成的时效性,由于源头唯一,可以实时感知数据源头的变化,并且基于一份数据集中安全和质量管理。第三,可以提升架构灵活性,解放了计算和应用的约束,只需要兼容湖仓的开放式存储和模型的接口即可快速的部署应用。

湖仓一体架构及数据平台的技术演进(图4)

  • 性能保障湖仓一体架构下很难确保所有的计算和存储都在一起,远程数据访问会带来数据访问性能的下降,连带引起Kaiyun体育官方网站 开云登录网站计算性能和计算资源利用率的下降。网络资源相对有限,扩展难,数据访问高峰期会引发网络波峰,导致数据访问的性能下降。计算多样性扩展迅速,数据读写的压力被“一份”数据承载,存储的服务能力可能会成为瓶颈。

  • 架构改造需要考虑兼容性,尽量减少或者避免湖仓一体架构下存储、计算的技术选型引发上层应用的改造。原有的数据管理体系特别是数据安全的管理如何传承和保障也是一大挑战,特别是湖仓一体架构下的存储可能变成了权限管理能力较弱的对象存储。要将原有数据湖平台平稳地迁移到湖仓一体架构中,在软件、硬件、数据各方面充分利旧,降低改造迁移周期和成本,降低对业务的影响。

  针对这些挑战,接下来将介绍 Alluxio 是如何助力湖仓一体架构落地的。

  Alluxio 架构的定位为助力云原生大数据分析和 AI 计算的数据编排平台。它处于计算层和存储层之间,向下能够兼容多种存储引擎、不同存储技术,对上能提供统一的数据服务能力。

湖仓一体架构及数据平台的技术演进(图5)

  Alluxio 的核心是在计算层和存储层之间起到承上启下的作用。设计初衷是零侵入地实现计算应用和存储数据之间的连接。

湖仓一体架构及数据平台的技术演进(图6)

  • “南向”实现多个存储系统的集成包括多存储集群技术协议和安全协议的识别和对接。

  • “北向”实现多个计算/应用的对接包括主流的 Spark、Flink、Presto 等,以及基于一些接口协议的 AI 场景,S3 协议的接口等,并且接口统一,实现了存储集群接口协议的转换。安全统一,基于 Alluxio 进行安全认证、权限管理。数据视图统一,将多个不同存储中的数据以统一的目录树结构,对上提供统一的数据视图。

  • “缓存”让数据离计算更近一方面通过缓存命中,使数据离计算更近,提升数据的读写 IO。另一方面,缓存使用的存储介质更高效,因此整体性能会更高。

  • “策略管理”解耦数据迁移对业务的影响多目录联合访问,消除冷热数据的访问割裂。策略化迁移,消除数据在多个目标之间的迁移对上层数据访问的影响。

  Alluxio 从物理架构上,是贴近于计算层进行部署的,一个是贴近当前计算节点的local 层面的缓存 Alluxio Edge,另一个是 Alluxio Cluster 提供了一个分布式的、可扩展的分布式缓存。根据应用场景不同,可以选择灵活选择单独使用或配合使用。利用缓存的能力,Alluxio 可以带来的价值主要为:

  • 提升计算性能贴近计算侧部署,通过 Alluxio 双层缓存,提供离计算更近、性能更高的数据读写,提升整体计算性能,最终提升终端业务效率。

  • 网络削峰通过 Alluxio 缓存减少重复数据访问以及临时数据读写带来的网络流量,降低业务繁忙时的网络流量,同时有效降低按流量收费的成本。

  • 缓解存储负载通过缓存减少存储侧部分数据读取和写入,延缓因服务能力不够的存储扩展,同时有效降低按照接口调用收费的成本。特别是很多公有云,比如用多少的空间,可以得到相应的网络带宽,但如果数据量并没有那么大,却想达到更高的性能,可能就需要采购额外的空间。使用 Alluxio 即可减少这部分成本。

湖仓一体架构及数据平台的技术演进(图7)

  从逻辑上来看,Alluxio 架构更加贴近于存储,因为其提供的是文件协议的接口能力。因此可以带来如下价值:

  • 多存储统一访问通过 Alluxio 集成不同位置、不同接口、不同安全协议的存储系统,提供统一数据访问入口,降低存储技术变动对上层的影响。

  • 零业务改造引入 Alluxio 不会引发业务代码的改造,包括库表 DDL 以及其他的数据访问链路的改造,让改造只停留在 Infra 层,降低架构升级的成本和阻力。

  • 策略化数据管理Alluxio 可以实现不同存储的 Union,把不同位置的数据 Union 成一个目录供访问,降低数据冷热分层、业务分区等改造成本。

湖仓一体架构及数据平台的技术演进(图8)

  上图展示了 Alluxio 湖仓一体的逻辑架构。无论是大数据平台,还是湖仓一体化平台,整体上并没有很大区别,一般都是包括存储层、元数据层、计算层和管理应用层。对于湖仓一体,table format 会有所不同,主要为 Hudi、Iceberg,或者现在新的 Paimon。这样湖仓 warehouse 和原有的 MPP 就统一了。另外,是 file format,不论数据是存在 HDFS 还是对象存储,一般会使用 Parquet、ORC 等比较高效的数据存储格式。最终,形成统一的 Catalog service,对上服务。从逻辑架构上来看,Alluxio 更加贴近存储层。命名空间把多个存储实现成一个统一视图,对上提供服务,进行接口协议的转换以及缓存加速,使得数据更容易被计算层使用。从部署架构上,Alluxio 更加贴近于计算层,一般是使用计算层的资源进行部署,这样可以让 Alluxio 的缓存能力发挥最大化。

  第一个案例是从传统 Hadoop 向基于对象存储的湖仓一体化架构的升级。

湖仓一体架构及数据平台的技术演进(图9)

  希望升级为基于 Iceberg 或者 Paimon 的湖仓一体架构,在数据时效性以及开放性上进行一次升级。挑战和痛点主要有:

  依托 Alluxio 构建了安全、高效的基于对象存储的湖仓一体架构。带来的价值收益包括:

  • 新旧共存:HDFS 到 OSS 的策略化数据迁移,且不影响业务正常访问。

  最初的湖仓一体的架构是面向结构化和半结构化数据,但是现在随着 AI 大模型的突飞猛进,金融行业从传统的机器学习数据挖掘,转变为 AI 大模型体系,面对着非常多的非结构化数据。因此需要将 AI 与数据湖有机结合。

湖仓一体架构及数据平台的技术演进(图10)

  作为在线服务,模型的更新会非常频繁,随着大模型的推广,模型文件越来越大,更新上线效率挑战也越来越大。另外,因为 GPU 资源的稀缺性,模型训练往往需要跟着 GPU 分散在多个云上云下平台,模型训练获取数据的挑战也越来越大。痛点主要有以下两方面:

  • 在线推理服务往往跟离线数仓不在一起,并且使用的 S3 或者 FUSE 接口也不是 HDFS 可以提供的。

  • 不论是推理服务的模型结果数据还是模型训练的训练数据以往都是通过搬运数据解决的:需要维护复杂的工程,占用大量的重复存储成本,数据等待也影响了GPU 利用率。

  通过 Alluxio,连接唯一数据湖/仓库作为模型训练和推理集群的唯一真实数据来源,使用 GPU 集群的本地 SSD 资源作为缓存,只需要利用少量缓存空间即可,既实现了接口转义也保障了性能。带来的价值收益包括:

湖仓一体架构及数据平台的技术演进(图11)

  上图中展示了 AI 与数据湖结合的逻辑示意图。基于唯一的一个数据湖,构建训练集群,通过 Alluxio 实现数据链路的链接。通过 Alluxio 的数据预加载机制,配合数据模型训练实现数据的预加载,基于唯一的真实数据源建立起AI 和数据湖的有机结合。使得数据的时效性新鲜度大大提升,GPU 利用率也更高,而同时维护改造成本则更低,数据迁移和多副本管理的成本都完全消除了。并且,不用再去额外采购高性能存储介质,现有存储即能支撑模型训练。

  一些业务访问量大并且时效性要求高,针对这类需求,Alluxio 的缓存功能可以有效提升 OLAP 性能。

湖仓一体架构及数据平台的技术演进(图12)

  这一案例中,客户数据湖 HDFS 负载较高,加入 OLAP 分析业务后,Namenode响应以及 Datanode 吞吐都面临了很大挑战,经常因为 HDFS 集群的超时,导致业务查询延迟大大增加。通过 Alluxio,既缓解了 Datanode 的压力,更缓解了 Namenode 的压力,使吞吐性能提升了 10 倍,整体端到端业务查询性能提升了 40%。

  使用对象存储,采购云上存储,吞吐能力和带宽都是有限的,任务量大时,对象存储本身的服务能力受限,会成为瓶颈。Alluxio 可以实现网络削峰。

湖仓一体架构及数据平台的技术演进(图13)

  可以看到在这一案例中,通过 Alluxio,大幅降低了查询延迟,得到了 4-5 倍的性能提升,减少了 80% 以上的远程访问,节省了存储成本。

  Alluxio的核心技术价值为通过缓存减少数据拷贝,提升访问性能,并通过统一的数据访问模式,降低各种适配、改造成本。同时,通过多租户架构,保障各租户SLA 不互相影响。Alluxio 带来的商业价值包括,更高的 ROI 和更低的 TCO,无需重组平台架构,缩短价值实现时间,帮助企业获得更高更快的营收。并且,应用可在不同存储和云厂商间移植,可即刻实现混合云/多云部署,降低成本。

湖仓一体架构及数据平台的技术演进(图14)

  知乎,是一个中文问答社区。通过使用机器学习技术,挖掘平台上海量数据的价值,帮助构建优质内容生产和消费闭环,辅助进行更高效的平台运营。 于2011年1月正式上线,以“让人们更好地分享知识、经验和见解,找到自己的解答”为品牌使命。

  辉羲智能致力打造创新车载智能计算平台,提供高阶智能驾驶芯片、易用开放工具链及全栈自动驾驶解决方案,助力车企实现优质高效的自动驾驶量产交付,构建低成本、大规模和自动化迭代能力,引领数据驱动时代的高阶智慧出行。

  望石智慧(StoneWise),成立于2018年,是一家使用人工智能技术驱动新药研发的科技公司,旨在用技术与创新力为医药行业带来新视角,打造世界领先的小分子创新药研发平台。

  适用于 AI/ML 场景,企业试用版可免费试用14天,支持在K8s环境部署