阿里云云原生数据湖体系全解读——元原生数据湖体系

阿里云首次发布云原生数据湖体系,基于对象存储OSS、数据湖构建Data Lake Formation和E-MapReduce产品的强强组合,提供存储与计算分离架构下,涵盖湖存储、湖加速、湖管理和湖计算的企业级数据湖解决方案。

数据湖

“数据湖”正在被越来越多人提起, 尽管定义并不统一, 但企业们都已纷纷下水实践,无论是 AWS 还是阿里云、 华为。我们认为: 数据湖是大数据和 AI 时代融合存储和计算的全新体系。数据量爆发式增长的今天, 数字化转型成为 IT 行业的热点, 数据需要更深度的价值挖掘, 因此需要确保数据中保留的原始信息不丢失, 应对未来不断变化的需求。当前以 Oracle 为代表的数据库中间件已经逐渐无法适应这样的需求, 于是业界也不断地产生新的计算引擎, 以便应对大数据时代的到来。
企业开始纷纷自建开源 Hadoop 数据湖架构, 原始数据统一存放在 HDFS 系统上, 引擎以 Hadoop 和 Spark 开源生态为主, 存储和计算一体。缺点是需要企业自己运维和管理整套集群, 成本高且集群稳定性较差。在这种情况下, 云上托管 Hadoop 数据湖架构( 即 EMR 开源数据湖) 应运而生。 底层物理服务器和开源软件版本由云厂商提供和管理, 数据仍统一存放在 HDFS 系统上, 引擎以 Hadoop 和 Spark 开源生态为主。这个架构通过云上 IaaS 层提升了机器层面的弹性和稳定性, 使企业的整体运维成本有所下降, 但企业仍然需要对 HDFS 系统以及服务运行状态进行管理和治理, 即应用层的运维工作。因为存储和计算耦合在一起, 稳定性不是最优, 两种资源无法独立扩展, 使用成本也不是最优。
同时, 受到开源软件本身能力的限制, 传统数据湖技术无法满足企业用户在数据规模、存储成本、 查询性能以及弹性计算架构升级等方面的需求, 也无法达到数据湖架构的理想目标。企业在这个时期需要更低廉的数据存储成本、 更精细的数据资产管理、 可共享的数据湖元数据、 更实时的数据更新频率以及更强大的数据接入工具。云原生时代到来, 我们可以有效利用公有云的基础设施, 数据湖平台也有了更多的技术选择。 比如云上纯托管的存储系统逐步取代 HDFS, 成为数据湖的存储基础设施, 并且引擎丰富度也不断扩展。
除了 Hadoop 和 Spark 的生态引擎之外, 各云厂商还发展出面向数据湖的引擎产品。如分析类的数据湖引擎有 AWS Athena 和华为 DLI, AI 类的有 AWS Sagemaker。这个架构仍然保持了一个存储和多个引擎的特性, 所以统一元数据服务至关重要。基于此, 阿里云正式发布了云原生数据湖体系, 由对象存储 OSS、 数据湖构建 Data Lake Formation、 E-MapReduce 产品强强组合, 提供存储与计算分离架构下, 湖存储、
湖加速、 湖管理、 湖计算的企业级数据湖解决方案。

  • 数据湖存储用云上的对象存储 OSS 加上 JindoFS 取代 HDFS, 提升数据规模、降低存储成本、 实现计算和存储分离架构;
  • 数据湖构建( DLF) 服务提供统一元数据和统一的权限管理, 支持多套引擎接入;
  • EMR 上 Spark 等计算引擎的云原生化, 可以更好的利用弹性计算资源;
  • 云上的数据开发治理平台 DataWorks 解决了数据湖元数据治理、 数据集成、 数据开发等问题。
    数据是最好的佐证: 阿里云云原生数据湖体系可支持 EB 级别的数据湖, 存储超过 10万 Database、 1 亿 Table 以及 10 亿级别的 Partition, 每天支持超过 30 亿次的元数据服务请求, 支持超过 10 个开源计算引擎以及 MaxCompute 和 Hologres 等云原生数仓引擎。同时, 阿里云数据湖存储成本相对于高效云盘下降 10 倍以上, 查询性能相对于传统对象存储提速 3 倍以上, 并且查询引擎有着极高的弹性, 能在 30 秒内启动超过 1000 个Spark Executor。 由此可见, 阿里云强大的存储和计算能力共同打造了业界领先的数据湖体系。这些背后都在告诉我们: 想在大数据时代占据先机, 你需要有一套系统, 能够在保留数据的原始信息情况下, 又能快速对接多种不同的计算平台。在此之际, 我们推出云原生数据湖技术系列专题, 将告诉大家如何基于阿里云 OSS、JindoFS 和数据湖构建( DataLakeFormation, DLF) 等基础服务, 结合阿里云上丰富的计算引擎, 打造一个全新云原生数据湖体系。

总体架构——计算存储分离

阿里云云原生数据湖体系全解读——元原生数据湖体系
什么是计算存储分离?
数据湖存储OSS:阿里云对象存储 OSS 是数据湖的统一存储层, 它基于 12 个 9 的可靠性设计, 可存储任意规模的数据, 可对接业务应用、 各类计算分析平台, 非常适合企业基于 OSS 构建数据湖。 相对于 HDFS 来说, OSS 可以存储海量小文件, 并且通过冷热分层、 高密度存储、高压缩率算法等先进技术极大降低单位存储成本。 同时 OSS 对 Hadoop 生态友好, 且无缝对接阿里云各计算平台。 针对数据分析场景, OSS 推出 OSS Select、 ShallowCopy 和多版本等功能, 加速数据处理速度, 增强数据一致性能力。OSS 具有与平台无关的 RESTful API接口, 您可以在任何应用、 任何时间、 任何地点存储和访问任意类型的数据
云原生计算引擎:当前阿里云上众多云原生计算引擎已经接入或准备接入数据湖构建服务, 包括阿里云 EMR 上 的 开 源 计 算 引 擎 Spark 、 Hive 、 Presto 、 Flink 以 及大数据计算服务MaxCompute、 数据洞察Databricks引擎和数据湖分析(DLA) 等。 以最常用的开源引擎 Spark 为例, 阿里云 Spark 可以直接对接数据湖构建的元数据服务, 运行在多集群或多平台上的阿里云 Spark 任务共享同一个数据湖元数据视图。 并且 EMR 为 Spark推出了 Shuffle Service 服务, Spark 引擎因此获得云原生平台上的弹性扩缩容能力。 云原生计算引擎结合数据湖架构可以获得更高的灵活度并极大的降低数据分析成本。
之前我一直认为计算存储分离是数据库和磁盘不在同一主机上,看到这里才知道计算存储分离指的是数据库和数据分析引擎的分离。

数据湖加速:对象存储系统在架构设计上和 HDFS 等分布式文件系统存在一定差异, 同时存储和计算分离架构中 OSS 是远端的存储服务, 在大数据计算层面缺少对数据本地化的支持。 因此, 在 OSS 对象存储服务的基础上, 阿里云定制了自研的大数据存储服务 ——JindoFS, 极大的提升数据湖上的引擎分析性能, 在 TPC-DS、 Terasort 等常见的benchmark 测试中, 采用计算存储分离架构的 JindoFS 性能已经达到或超过了本地部署的 HDFS。 同时 JindoFS 完全兼容 Hadoop 文件系统接口, 给客户带来更加灵活、 高效的计算存储方案, 目前已验证支持 Hadoop 开源生态中最主流的计算服务和引擎: Spark、Flink、 Hive、 MapReduce、 Presto、 Impala 等。 当前 JindoFS 存储服务包含在阿里云 EMR 产品中, 未来 JindoFS 会有更多的产品形态服务于数据湖加速场景。
这里引入数据湖加速的作用:如果没有该中间件,每个计算节点上的计算引擎都需要向OSS请求数据,还需要对请求数据在计算节点进行本地的管理。引入该中间件后可对OSS请求的数据进行缓存,并且其完全兼容 Hadoop 文件系统接口,也就直接支持了Spark等计算服务和引擎了。

数据湖构建:传统的数据湖架构非常强调数据的统一存储, 但对数据的 Schema 管理缺乏必要的手段和工具, 需要上层分析和计算引擎各自维护元数据, 并且对数据的访问没有统一的权限管理, 无法满足企业级用户的需求。 数据湖构建( DLF) 服务是阿里云在 2020 年 9 月推出的针对数据湖场景的核心产品, 主要为了解决构建数据湖过程中用户对数据资产的管理需求。 DLF 对 OSS 中存储的数据提供统一的元数据视图和统一的权限管理, 并提供实时数据入湖和清洗模板, 为上层的数据分析引擎提供生产级别的元数据服务

数据湖治理:DataWorks 数据综合治理可为阿里云客户提供统一的数据视图, 用于掌握数据资产的现状、 助力数据质量的提升、 提高获取数据的效率、 保障数据安全的合规并提升数据查询的分析效率。 可以有效支撑离线大数据仓库的构建、 数据联邦的查询和分析处理、 海量数据的低频交互式查询和智能报表的构建, 以及数据湖方案的实现。