摘要:本文整顿自阿里云开源大数据技术专家陈鑫伟在 7 月 17 日阿里云数据湖技术专场交流会的分享。本篇内容次要分为两个局部:
- 数据湖演进历程
- 云原生数据湖架构
一、数据湖演进历程
什么是数据湖?
数据湖概念于 2010 年提出,其目标是解决传统数据仓库和数据集市所面临的两个问题:其一,心愿通过对立的元数据存储解决数据集市之间的数据孤岛问题;其二,心愿存储原始数据,而非存储数据集市建设过程中通过裁剪后的数据,以防止数据原始信息的失落。过后,开源的 Hadoop 是数据湖的次要代表。
随着云计算的倒退,2015 年,各个云厂商开始围绕云上的对象存储从新解读和推广数据湖。云上对象存储具备大规模、高可用和低成本的劣势,逐渐代替了 HDFS 成为云上对立存储的支流抉择。云上的对象存储反对结构化、半结构化和非结构化的数据类型,同时以存算拆散的架构和更凋谢的数据拜访形式反对多种计算引擎的剖析,次要代表有 AWS S3 和阿里云的 OSS。
2019 年,随着 Databricks 公司和 Uber 公司陆续推出 Delta Lake、Hudi 和 Iceberg 数据湖格局,通过在数据湖的原始数据之上再构建一层元数据层、索引层的形式,解决数据湖上数据的可靠性、一致性和性能等问题。同时,流式计算技术如 Flink、AI 技术等也开始在数据湖上有了更宽泛的利用。
同年,AWS 和阿里云也相继推出了 Data Lake Formation 等数据湖构建和治理的产品,可能帮忙用户更疾速地构建和治理云上数据湖。数据湖架构的一直演进和成熟也失去了更多客户的关注和抉择。
数据湖架构演进
晚期,用户根本在 IDC 机房里基于服务器或虚拟机建设 Hadoop 集群, 次要的存储为 HDFS,支流的计算引擎为 Hive 和 Spark 等。
随着云计算的倒退,很多用户为了解决 IDC 机房在资源扩缩容和运维方面的艰难,开始抉择在云上构建本人的数据湖平台。能够抉择云上提供的大数据构建平台,比方 EMR,来帮忙疾速建设和部署多个集群。
但大部分晚期用户抉择间接将云下的架构搬到云上,仍然以 HDFS 为次要的存储,因而 HDFS 的问题仍然存在,比方 NameNode 的扩展性问题、稳定性问题;比方计算资源和存储资源的耦合问题等;数据也存储于集群外部,跨集群、跨引擎的数据拜访也会存在问题。
而当初更支流的抉择是数据湖架构,基于云上对象存储如 OSS 做对立存储。在存储之上,有一套管控平台进行对立的元数据管理、权限治理、数据的治理。再下层会对接更丰盛的计算引擎或计算产品,除了 Hadoop、Hive、Spark 等离线剖析引擎,也能够对接流式的引擎比方 Flink,Olap 引擎如 ClickHouse、Doris、StarRocks 等。
二、云原生数据湖架构
阿里云数据湖倒退历程
阿里云在数据湖方向曾经通过了很多年的倒退。最晚期的 OSS 公布于 2011 年,彼时数据湖的利用场景还很少。直到 2015 年,阿里云公布了云上 EMR 产品,开始将 Hive 和 Spark 放至 EMR 集群,再将数据放至 OSS,存算拆散的架构开始风行。
2018 年和 2019 年,阿里云相继推出了数据湖剖析 DLA 和数据湖构建 DLF 两款专门面向数据湖的产品。2022 年推出的数据湖存储(OSS-HDFS)以及 EMR Data Lake 集群,数据湖解决方案的产品矩阵逐步形成。
整个历程中,有三个标志性事件:2019 年,阿里云公布了《阿里云云原生数据湖白皮书》,很多业内搭档都基于这份白皮书开始钻研学习和建设本人的数据湖;同年阿里云也买通数据湖和自研的 MaxCompute 云原生数仓,推出了湖仓一体架构;2022 年,阿里云成为首批通过通信院的云原生数据湖测评认证的企业。
数据湖建设思路及挑战
通过多年积淀,阿里云在数据湖的建设上也积攒了肯定的教训和思路。咱们认为数据湖的建设次要包含四个阶段。
第一阶段:数据入湖。
通过各种各样的入湖形式将数据导入数据湖。入湖形式能够依据本人的业务需要和场景进行抉择,比方全量入湖、CDC 更新入湖、实时追加写入以及整个 Hadoop 集群搬迁上云等。
第二阶段:数据湖存储与治理。
帮忙用户更好地治理发现和高效应用数据湖里的数据。此阶段次要包含以下几个方面:
① 数据目录与检索:一方面可能提供元数据的服务,另一方面可能提供数据的疾速检索能力。
② 权限管制与审计:因为数据湖自身是绝对凋谢和涣散的体系,须要有比拟强的权限管控的能力来保障企业数据的安全性。
③ 数据品质管制:防止数据湖倒退成数据沼泽的要害伎俩。
④ 湖表治理与优化:治理优化数据湖格局。
⑤ 存储管理与优化:对象存储提供了数据冷热分层的个性,但这些个性落地时还须要辅以自动化的伎俩以进行存储管理优化。
第三阶段:数据处理与剖析。
能够依据理论场景抉择多种数据处理和剖析形式,比方做离线剖析、实时计算、交互式剖析、AI 训练等。
第四阶段:数据服务与利用。
数据湖较为凋谢,因而能够间接用 BI 零碎、可视化零碎连贯数据湖上的引擎,进行实时剖析或可视化的数据展现等。另一方面,数据湖里的数据也能够再进一步同步或 Sink 到更业余的数据系统中,比方到 ES 里进行进一步数据检索,比方到 ClickHouse/Doris/StarRocks 等做更丰盛的多元分析。
阿里云云原生数据湖解决方案
经验了多年的摸索后,阿里云推出了一个较为残缺的云原生数据湖解决方案,整体架构如上图所示:
底层是存储层 :对立存储各类数据,并对外提供文件拜访的接口和协定。
第二层是管控层 :能够了解为服务化的管控与优化,一方面提供对立的元数据、对立权限管控,另一方面提供智能化数据湖治理、疾速数据检索等能力。
第三层是多元的计算与剖析层 :能够通过很多开源或阿里云自研的剖析引擎对湖内数据进行加工和解决。
最上层是数据开发治理层 :提供了面向湖和仓欠缺的数据开发体系以及数据治理平台。
由此可见,数据湖的建设不仅仅是大数据相干技术的集成和利用,同时也是一个简单的系统工程,须要有成熟的方法论以及平台型的基础设施做撑持,能力建设出安全可靠、功能完善、老本可控的企业级数据湖。
理解更多:
[1] 数据湖构建 Data Lake Formation:https://www.aliyun.com/produc…
[2] 开源大数据平台 EMR:https://www.aliyun.com/produc…
[3] 数据湖揭秘—Delta Lake:https://developer.aliyun.com/…
[4] 数据湖构建—如何构建湖上对立的数据权限:https://developer.aliyun.com/…
[5] 对于 Data Lake 的概念、架构与利用场景介绍:https://developer.aliyun.com/…