多引擎集成挖掘湖上数据价值

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 在 EMR 集群创建阶段已经自动安装了数据构建服务的相关SDK,同时EMR上的开源计算引擎 Spark、Hive 和 Presto 都完成了对数据湖构建服务的兼容支持,所以用户通过 EMR 引擎可获得数据湖分析的最佳体验。

数据湖已经逐步走到了精细化的管理,这意味着原始的计算引擎直接读写存储的方式应当逐步演变为使用标准方式读写数据湖存储。然而“标准方式”实际上并无业界标准,与具体的计算引擎深度绑定,因此,支持计算引擎的丰富程度也就成了衡量数据湖的一个准则。

阿里云数据湖构建服务支持丰富的计算引擎对接,包括但不限于阿里云产品 E-MapReduce(EMR)、MaxCompute(开发中)、Blink(开发中)、Hologres(开发中)、PAI(开发中),以及开源系的 Hive、Spark、Presto 等等。

15.png

数据湖的对接主要体现在元数据与存储引擎两个方面。元数据为所有用户所共享,提供统一的元数据访问接口。各个引擎使用定制化的元数据访问客户端来访问元数据。元数据服务为各个用户提供租户隔离保证和认证鉴权服务。在数据存储方面,用户使用自己的 OSS 存储存储数据,各个引擎需要具备访问 OSS 的功能,这对于阿里云服务和大部分支持 HDFS 存储的引擎都不是什么问题。在 OSS 存储上层,数据湖构建服务还提供了可选的数据湖加速服务。而使用该服务也非常简单,只需要在引擎侧将对 OSS 的访问路径替换为加速服务提供的路径即可。

多引擎支持

EMR

使用 EMR 访问数据湖构建服务最为简单。在用户创建 EMR 集群的时候,可以直接选择使用数据湖构建服务的元数据服务作为元数据库,EMR 服务与数据湖构建服务在认证鉴权方面深度打通,只要获得用户的授权,EMR 基于数据湖元数据的使用体验和用本地元数据库体验几乎完全一致。因为在 EMR 集群创建阶段已经自动安装了数据构建服务的相关SDK,同时EMR上的开源计算引擎 Spark、Hive 和 Presto 都完成了对数据湖构建服务的兼容支持,所以用户通过 EMR 引擎可获得数据湖分析的最佳体验。

16.png

即便用户在创建集群的时候没有选择使用数据湖元数据服务,也可以在后期通过配置将元数据转移到数据湖元数据服务。在数据存储方面,由于数据湖构建在用户 OSS 之上,因此不存在跨服务认证问题。而 EMR 天然内置了 OSS 的访问支持,并提供了 JindoFS 的增强功能,使得 EMR 用户访问数据湖数据将获得比原生 OSS 访问更佳的性能提升(JindoFS 是构建在 OSS 之上的,专门为大数据使用场景深度定制的文件系统,在元数据操作、数据缓存等方面有独到的优势。更多相关文章请参考文末链接。)。对于那些已经在使用 EMR 的用户,数据湖构建服务提供了一键迁移工具,方便用户将元数据从本地元数据库转移到数据湖元数据服务。对于数据部分,用户可以选择将数据继续存储在本地 HDFS 系统,或者迁移至 OSS。

值得一提的是 EMR 提供了免 AK 访问数据湖构建服务的功能。用户不需要提供 AK 即可访问元数据服务以及 OSS 上的数据,前提是数据湖构建服务获得了用户的授权。该功能的实现基于 EMR 的 MetaService 功能,在用户授权的前提下,MetaService 为本机请求提供 Assume Role 的 AK 信息,从而让调用者以用户身份访问目标服务。免 AK 访问功能最小化了用户机密信息丢失的风险。

17.png

阿里云服务

MaxCompute、实时计算、Hologres、PAI 等阿里云服务,通过数据湖构建服务在底层打通数据,在一定程度上达到通过使用一份数据满足多种不同场景的计算需求。例如,MaxCompute 可以直接读取数据湖构建服务的数据内容,配合 DataWorks 给用户良好的数仓使用体验;实时计算服务可以将数据实时注入数据湖,从而实现基于数据湖的流批一体计算;而 Hologres 则可以应对对性能要求较高的场景,既能够对于数据湖内温冷数据做加速分析,也能够配合 Hologres 的内置存储处理温热数据,从而构建数据从产生到归档一整个生命周期的一站式分析方案;PAI 则可以将数据湖作为数据来源,也可以将其他引擎计算的离线特征存储到数据湖做模型构建之用等等。

开源引擎

对于直接使用开源产品的用户,数据湖构建服务也提供了一些方法让这些服务能够快速对接数据湖,不过这可能需要用户基于开源代码打个 patch,以便在开源代码中插件化地嵌入数据湖元数据的访问。对于数据访问,由 EMR 团队贡献 Hadoop 社区的 OSSFileSystem 可以完成对用户 OSS 存储的访问,因此只要引擎支持读写 HDFS,就可以读写 OSS。对于元数据和 OSS 的访问控制,则统一使用阿里云 RAM 方式,体验上保证一致。

特殊格式支持

除了计算引擎本身,某些引擎还可以读写特定的表格式,如近两年兴起的 Delta Lake、Hudi、Iceberg 等等。数据湖构建服务不局限用户使用哪一种存储格式,但是由于这些表格式有自己的元数据,因此在引擎对接方面仍然需要做一些额外的工作。以 Delta Lake 为例,其元数据存储在 OSS 之上,而元数据服务中也会存一份元数据,这样便引出了两个问题:一是引擎应该读取哪份元数据,二是如果有必要存两份元数据的话,元数据的一致性如何保证。对于第一个问题,如果是开源组件,我们应当遵循开源默认的做法,通常是让引擎去读取 OSS 中的元数据。对于元数据服务中的元数据也非常有必要保存,这可以服务于页面显示,并且可以省去 OSS 元数据解析的巨大性能损耗。对于第二个问题,数据湖构建服务开发了一个 hook 工具,每当 Delta Lake 有事务提交时,便会自动触发 hook,将 OSS 中的元数据同步到元数据服务中。除此之外,Delta Lake 元数据的设计最大程度的保证了一份元数据同时支持 Spark、Hive、Presto 等多个引擎,用户不必像开源产品那样为不同引擎维护不同的元数据。

17.png

如图所示,元数据服务中的元数据(Delta Table)为 OSS 中 Delta 表元数据(Delta Log)的映像,并通过 commit hook(3)保持同步;Delta Tabe 为页面展示,以及 Hive、Spark 引擎读取必要信息(如 table path、InputFormat/OutputFormat 等)所用(1);当引擎获得必要信息后读取 table path 下 Delta 表的元数据,完成元数据解析和数据读取工作(2);当引擎完成数据操作并提交事务后,Delta Log 通过 commit hook 同步至 Delta Table(3),完成一个循环。

未来工作

数据湖构建服务的多引擎支持在诸多方面尚在快速发展之中。未来我们将围绕以下几点继续开展工作:

  • 阿里云服务对接:从解决方案角度完善阿里云产品对接,给用户更平滑的体验;
  • 开源引擎支持:更多的开源引擎支持,如 Impala、Flink 等;
  • 功能丰富:如完善统计信息支持,支持事务接口等;
  • 性能提升:做到超越本地元数据与本地 HDFS 存储的性能。

更多数据湖技术相关的文章请点击:阿里云重磅发布云原生数据湖体系


更多数据湖相关信息交流请加入阿里巴巴数据湖技术钉钉群
数据湖钉群.JPG

相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
1月前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
56 2
|
11天前
|
机器学习/深度学习 自然语言处理 监控
智能客服系统集成技术解析和价值点梳理
在 2024 年的智能客服系统领域,合力亿捷等服务商凭借其卓越的技术实力引领潮流,它们均积极应用最新的大模型技术,推动智能客服的进步。
47 7
|
4月前
|
JSON API 数据处理
Winform管理系统新飞跃:无缝集成SqlSugar与Web API,实现数据云端同步的革新之路!
【8月更文挑战第3天】在企业应用开发中,常需将Winform桌面应用扩展至支持Web API调用,实现数据云端同步。本文通过实例展示如何在已有SqlSugar为基础的Winform系统中集成HTTP客户端调用Web API。采用.NET的`HttpClient`处理请求,支持异步操作。示例包括创建HTTP辅助类封装请求逻辑及在Winform界面调用API更新UI。此外,还讨论了跨域与安全性的处理策略。这种方法提高了系统的灵活性与扩展性,便于未来的技术演进。
279 2
|
29天前
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值
|
1月前
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
66 4
|
5月前
|
SQL 运维 监控
SLS 数据加工全面升级,集成 SPL 语法
在系统开发、运维过程中,日志是最重要的信息之一,其最大的优点是简单直接。SLS 数据加工功能旨在解决非结构化的日志数据处理,当前全面升级,集成 SPL 语言、更强的数据处理性能、更优的使用成本。
18197 144
|
1月前
|
XML 存储 Java
SpringBoot集成Flowable:构建强大的工作流引擎
在企业级应用开发中,工作流管理是核心功能之一。Flowable是一个开源的工作流引擎,它提供了BPMN 2.0规范的实现,并且与SpringBoot框架完美集成。本文将探讨如何使用SpringBoot和Flowable构建一个强大的工作流引擎,并分享一些实践技巧。
115 0
|
2月前
|
开发框架 监控 搜索推荐
GoFly快速开发框架集成ZincSearch全文搜索引擎 - Elasticsearch轻量级替代为ZincSearch全文搜索引擎
本文介绍了在项目开发中使用ZincSearch作为全文搜索引擎的优势,包括其轻量级、易于安装和使用、资源占用低等特点,以及如何在GoFly快速开发框架中集成和使用ZincSearch,提供了详细的开发文档和实例代码,帮助开发者高效地实现搜索功能。
182 0
|
4月前
|
监控 数据安全/隐私保护 异构计算
借助PAI-EAS一键部署ChatGLM,并应用LangChain集成外部数据
【8月更文挑战第8天】借助PAI-EAS一键部署ChatGLM,并应用LangChain集成外部数据
104 1