基于阿里云数据湖分析服务和Apache Hudi构建云上实时数据湖

简介: 传统大数据架构难以对应企业日益增长的各式各样分析需求,而随着云技术的不断发展和普及,在云上构建实时数据湖成为构建企业级大数据平台的热门选项,本文将阐述如何基于阿里云数据湖分析服务和Apache Hudi构建云上实时数据湖。

1. 什么是实时数据湖

大数据时代数据格式的多样化,如结构化数据、半结构化数据、非结构化数据,传统数据仓库难以满足各类数据的存储,同时传统数仓已经难以满足上层应用如交互式分析、流式分析、ML等的多样化需求。而数仓T+1的数据延迟导致分析延迟较大,不利于企业及时洞察数据价值;同时随着云计算技术发展以及云上对象存储的廉价性,使得越来越多企业基于云来构建数据湖,而传统数据湖由于缺失ACID事务能力,导致其上构建的表不支持事务,同时也无法处理数据的更新删除,数据湖能力未得到进一步释放。为企业更快洞见数据价值和补齐ACID事务等能力,需要引入实时数据湖,以此作为大数据处理架构来对应上层应用各类分析需求。

2. 大数据平台方案

2.1 传统Hadoop方案

大数据时代以Hadoop体系为首的大数据分析平台逐渐表现出优异性,而围绕Hadoop体系的生态圈也不断完善,Hadoop体系从根本上解决了传统数据仓库的瓶颈问题。
undefined

传统批处理带来的延迟较大,并且随数据规模增长,通常会遇到如下问题。

  • HDFS限制:许多依赖 HDFS 扩展其大数据基础架构的公司都面临着这个问题。根据设计,HDFS 受 NameNode 内存容量的限制,因此存储大量小文件会显着影响性能。当数据大小超过10PB这个问题开始出现,如果数据量达到50-100 PB就会成为问题。 幸运的是,有一些相对简单的解决方案可以将 HDFS 从几十PB扩展到几百PB,例如利用 ViewFS 和 HDFS NameNode Federation;或通过控制小文件的数量并将不同的数据移到单独的集群,这样我们能够减轻 HDFS 的瓶颈。
  • 快速更新:对于很多用例而言,需要尽可能地访问新数据,而传统数仓T+1的更新延迟太大,无法满足对数据实时性要求很高的场景,同时由于数据延迟太大,无法利于企业做出及时决策。
  • 支持在 Hadoop上 更新和删除:大数据下的分布式存储强调数据的只读性质,所以类似于Hive,HDFS这些存储方式都不支持update,HDFS的write操作也不支持并行,这些特性导致其具有一定的局限性,无法支持对现有数据的更新和删除操作。为应对平台数据规模增长,必须找到一种方法来解决 HDFS 文件系统中的这种限制,以便支持更新/删除操作。

2.2 Lambda方案

对于批处理而言,虽然数据质量高,但其延迟太大。考虑到数据延迟问题,业界还有一种比较流行的架构,Lambda架构,兼具低延迟与稳定。

undefined

Lambda架构中,一份数据会分别进入速度层进行流式处理生成实时的增量视图和进入批处理层进行批量处理生成稳定可靠的历史视图,在上层查询时会合并增量视图和历史视图形成完整视图返回,这样便兼顾了数据的低延迟,但同时可以看到该架构需要维护两份数据、两份结果存储和多个处理框架,加重了系统维护负担。

能否兼顾系统的可运维性和数据低延迟以及规避上述在传统HDFS上方案的弊端来构建一个可伸缩的实时数据湖呢?答案是肯定的,可以基于阿里云DLA(Data Lake Analytics 数据湖分析) + Apache Hudi构建实时数据湖。

3. 阿里云实时数据湖方案

使用DLA + Hudi技术方案可轻松在阿里云OSS上构建实时可分析的数据湖。

企业典型的数据链路如下。

  • 各类App数据采集到Kafka或其他MQ;
  • 对Kafka中数据使用Spark/Flink等引擎进行处理;
  • 将处理结果写出(DB、HDFS、OSS等);
  • 通过分析引擎(Presto/Hive/Spark)对结果分析生成报表等;

现在DLA已经内置集成Hudi,与此同时利用DLA内置Spark开箱即用的能力,用户便可在DLA中快速构建Hudi数据湖,架构如下所示。

undefined

用户通过DLA SparkStreaming消费上游数据,然后以Hudi增量格式写入OSS并自动同步元数据至DLA Meta;当然对于用户自建Spark集群方式也可支持,也只需要将上游数据以Hudi格式写入OSS并自动关联至DLA Meta即可,接着便可以使用DLA-SQL进行在线交互式分析或使用DLA-Spark进行机器学习和离线分析。两种方案都极大降低了用户使用DLA的门槛,也体现了DLA极致的开放能力,基于DLA和Hudi构建实时数据湖总结有如下优势

  • 全链路数据延迟可达分钟级别,打造T + 0 数据湖;
  • 支持数据增量存储在OSS,支持Upsert/Delete,同时自动构建元数据管理;
  • 丰富的数据源,支持阿里云上超过95%数据源;
  • 支持全托管的SQL & Spark,免去集群运维;
  • 弹性Serverless SQL/Spark,满足交互式、批处理、机器学习多种工作负载;
  • 一份数据存储在OSS,通过DLA Meta增量管理,降低存储成本低;
  • 支持多租户及按照扫描量计费,能有效管理多分析师的查询需求和SQL使用量;

下面简单介绍下什么是DLA和Apache Hudi。

3.1. 什么是DLA

阿里云数据湖分析Data Lake Analytics是阿里云数据库自研的核心产品,是新一代CloudNative分析平台;开放计算,支持MySQL协议,支持Presto、Spark引擎;主打低成本、Serverless无托管成本;统一元数据、可以让用户拥有统一的数据视图。目前在阿里云服务数千客户。
更多详情可参考:https://www.aliyun.com/product/datalakeanalytics

2.png

DLA的Serverless能力免去了企业高昂的运维成本及应对数据波峰波谷扩缩容等繁琐步骤,按量计费,无持有成本。同时DLA没有单独存储用户数据,用户数据以开放的格式存储在OSS中,然后只需将元数据关联到DLA Meta后便可使用DLA SQL进行分析,或者通过DLA Spark进行复杂的ETL操作。

3.2 什么是Apache Hudi

Apache Hudi是一个支持插入、更新、删除的增量数据湖处理框架,可以用来管理分布式文件系统(如HDFS)/云上(OSS、S3)超大规模数据集。Hudi提供了如下关键特性

  • 可插拔索引机制支持快速Upsert/Delete
  • 支持增量拉取表变更以进行处理
  • 支持时间旅行,查看旧版本数据
  • 支持ACID,事务提交及回滚
  • 自动管理小文件以优化查询性能
  • 基于行存的快速写入,并支持异步压缩为列存便于分析
  • 用于进行审计跟踪的元数据时间轴

更多详情可参考https://hudi.apache.org/

4. Demo示例

可参考实时数据湖快速入门 了解如何使用DLA和Hudi构建实时数据湖示例。

5. 总结

本篇文章首先介绍了什么是数据湖,以及常见的大数据解决方案,然后介绍了阿里云实时数据湖方案,使用DLA + Hudi方案快速构建近实时可分析数据湖,并列举方案优势,最后提供了简单Demo示例展示如何集成DLA和Hudi。

感兴趣的小伙伴欢迎入钉钉群交流

undefined

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
4月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
160 3
|
4月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
368 1
|
7天前
|
Dubbo 应用服务中间件 API
使用 Apifox、Postman 测试 Dubbo 服务,Apache Dubbo OpenAPI 即将发布
Apache Dubbo 3.3.3(即将发布)实现了与 OpenAPI 的深度集成,通过与 OpenAPI 的深度集成,用户能够体验到从文档生成到接口调试、测试和优化的全流程自动化支持。不论是减少手动工作量、提升开发效率,还是支持多语言和多环境,Dubbo 3.3.3 都展现了其对开发者体验的极大关注。结合强大的 Mock 数据生成和自动化测试能力,这一版本为开发者提供了极具竞争力的服务治理解决方案。如果你正在寻找高效、易用的微服务框架,Dubbo 3.3.3 将是你不容错过的选择。
|
3月前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
4月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
98 3
|
4月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
66 1
|
4月前
|
存储 小程序 Apache
10月26日@杭州,飞轮科技 x 阿里云举办 Apache Doris Meetup,探索保险、游戏、制造及电信领域数据仓库建设实践
10月26日,由飞轮科技与阿里云联手发起的 Apache Doris 杭州站 Meetup 即将开启!
87 0
|
2月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
363 33
The Past, Present and Future of Apache Flink
|
4月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
982 13
Apache Flink 2.0-preview released
|
5月前
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。

推荐镜像

更多