云原生数据湖构建、分析与开发治理最佳实践及案例分享

作者

郑锴,阿里云高级技术专家

张晨晖,阿里云产品专家

最近几年数据湖热度很高,当搞大数据的同学聚在一起时候,经常会谈到这方面的话题,可能有的同学说“我们在做 Hudi 数据湖,你们用 Delta 还是 Iceberg?”,也会有同学说“我在阿里云上搞了一个OSS数据湖”、“什么,你们数据湖用 HDFS?”、“我们在阿里云上搞 JindoFS,优化数据湖”、“最近搞了个湖仓一体”等等的讨论。

数据湖的相关讨论可以说是千人千面,每一个技术同学面对数据湖的时候,根据自己不同的工作背景,都可能有自己不同的理解,那么,数据湖到底意味着什么呢?可以先了解一下数据湖的三要素。

数据湖核心三要素 :

1、包罗万象的数据

  • 不是指数据库,也不是数据仓库;

  • 而是指各种数据,包罗万象。非结构化数据、半结构化数据和结构化数据。

2、理想的存储

  • HDFS?不是。

  • 对象存储?It depends。

  • 实际上,公共云对象存储才是。

  • 为什么?海量,弹性;分层、归档,低成本;安全,合规。

3、开放的计算

  • 数据广泛可触达,充分挖掘价值。

  • 丰富和开放的计算,不止 BI,AI。

  • 针对计算场景的优化、加速,性能不打折扣。

那么到底什么是云原生数据湖呢?

从理念上来讲,就是按照云原生的理念构建出来的数据湖存储系统。运用数据湖构建产品快速搭建出来的,基于 oss 对象存储系统挖出来的数据湖。然后基于这样的诉求,我们可以做 BI 和 AI 的分析。那么我们以阿里云上的云原生数据湖为例,可以看下云原生数据湖的上云途径。

(点击查看大图)

可以看到,我们可以利用阿里云数据湖构建 Data Lake Formation 、统一的对象存储 OSS 快速搭建出一个数据湖。

那么利用这个数据湖,我们可以用数据集成 DateHub 和 Data Lake Formation 提供的数据入湖的手段,把各种数据源做数据入湖的处理。那么我们最主要的业务目的是什么?是利用上面各种开放丰富的计算来做分析。

我们提供了阿里云自研的 MaxCompute 这种分析产品,还有 E-MapReduce 这个开源大数据全家桶的分析产品,来做 BI 的分析。我们可以利用阿里云的 PAI、EMR DateScience 这种 AI 的套件来做 AI 的智能分析。

我们刚才说了这个计算是非常开放以及丰富的,如果你在阿里云上有一个自建的 Hadoop,或是 CDH 这种集群,同样可以对接到数据湖,然后进行分析。战略上面我们还合作了大量的第三方产品,比如 Databricks 数据洞察,同样可以对接到数据湖进行分析。

接下来,我们再来看一下数据湖的构建和分析的过程,我们提供了怎样的支持。以下讲的是数据湖构建,我们专门提供了这样的一个数据湖构建产品 Data Lake Formation。

(点击查看大图)

它的核心就是维护数据湖的元数据,数据湖不光是包括数据本身,还包括数据的元数据。数据的元数据是在 Data Lake Formation中,统一管理和存储的。好处是避免了各个计算产品自己来维护文件的元数据所带来的不一致性。统一集中来管理的话,我们还可以做集中的访问控制上的权限或日志审计。Data Lake Formation 对接的各种数据源,比如 MySQL、Kafka 等,提供了离线和实时入湖的方式。目前我们对接的数据湖的格式,有 Delta 和 Hudi 。

接下来重点讲解一下,我们在分析产品上,利用开源大数据分析的套件 E-MapReduce 来做数据湖分析。

(点击查看大图)

EMR 其实是一个开源大数据全家桶的产品,以上只是列出了数据湖分析上的相关支持。在分析引擎和 OSS 数据湖之间,我们还提供了数据湖加速的支持。我们有了 Alluxio 这种开源的加速器,同时也有自研的 JindoFS 加速器。JindoFS 对 OSS 数据湖我们提供了全面对接开源分析引擎的支持。

整个 EMR 的产品可以 run 在 ACK 上,也可以 run 在 ECS 上面,利用 ECS 和 ACK 的弹性伸缩的能力,我们让整个数据湖分析变得低成本。

(点击查看大图)

刚才提到,在 EMR 产品套件中,有了数据湖加速的这一层次,接下来重点讲一下 JindoFS 和 JindoTable 双加速的能力。

JindoFS 主要是在文件系统层面,利用计算侧的磁盘资源,对远端的 OSS 数据做缓存加速,从而大幅度提升 Hive、Spark、Presto 的分析处理能力。JindoTable 和 JindoFS 相当于是相互配合,它主要是在表分区这个层次上面,去做缓存去做加速。然后对 Parquet、ORC 这种格式做了 Native 的优化,从而更进一步提升了上面提到的分析引擎的处理能力。

(点击查看大图)

除了性能优化,我们知道数据湖还需要做成本优化,因为里面保存了大量的数据。JindoTable 和 JindoFS 同样互相配合,我们做了分层和归档。利用 OSS 的基础能力,我们维护数据的热度、冷度,然后通过 Jindo 的相关命令,可以对数据进行缓存、归档和分层这些功能。利用分层的能力,我们可以看到假定一个用户,如果它有 10PB 的数据,以 HDFS 这种方式来做存储方案,成本会达到上百万。但如果我们换用 OSS 数据湖的方案,我们可以把大量的冷数据放在归档,整个存储成本可以大幅度降低。

接下来,我们来看一个数据湖的最佳实践。来源于上海数禾科技的大数据架构师程俊杰先生的一篇在阿里云社区分享的案例文章。以下经过他的同意,对他的文章进行了一些摘要和加工。

(点击查看大图)

上海数禾科技在某云上面使用的是 CDH+EMR ,云上混合的架构。它迁移到阿里云之后,是按照数据湖的理念做的设计,充分考虑到他们不同的业务需求,以及权限控制和脱敏相关的部分。

经过过去的一年,他们在成功地迁移到阿里云数据湖架构上之后,又做了 EMR 的治理和 OSS 的治理,这些治理方面的经验在文章里面都做了大量的分享。最近他们又升级到了湖仓一体的架构,把元数据用 Data Lake Formation 来统一管理,然后组合使用 EMR 和 MaxCompute 等多个阿里云计算产品来对数据湖进行分析。

  • 《数禾云上数据湖最佳实践》文章链接:

https://developer.aliyun.com/article/781311

(点击查看大图)

以上是数禾在阿里云上面的数据湖架构,我们可以看到它在 OSS 的数据湖上面,其实有多个 Bucket。在这上面,利用 JindoFS 提供的 OSS 透明的缓存加速能力,然后有多个 EMR 集群分别去按照不同的业务诉求来做分析。面对这么多集群,他们的调度是用的目前比较流行的大数据调度平台 Airflow。

(点击查看大图)

刚才提到,数据湖的一个非常大的价值是把存储成本和计算成本降下来。计算成本其实主要是靠弹性伸缩来降。在 EMR 里面,可以去设置弹性伸缩策略和弹性伸缩规则。弹性伸缩规则结合 YARN 的调度能力,可以看到什么时候该扩集群,什么时候该缩集群。包括提前伸缩的时间都可以做设置,真正的做到需要多少,就用多少。把计算成本降到最低。这个跟好几年前做的 Hadoop 集群实战,是完全不一样的。

(点击查看大图)

以上主要介绍了如何构建云原生数据湖,那么如此多的数据结构化、半结构化、非结构化的存储在你的数据库和数据仓库里,这么多的数据应该如何来管?先来看一看企业在管理数据的过程中又面临哪些问题?

1、数据孤岛:

  • 数据不集中,重复存储,重复计算

  • 数据上云门槛高,数据存储成本高

2、数据开发和运维成本高:

  • 自研数据平台难度大,成本高

  • 开源工具扩展性,稳定性难以保证

  • 数据质量,运维成本难以匹配业务快速增长需求

3、数据共享应用不易

  • 数仓中的数据对各类 BI 或应用不便

  • 数据存储分散,分布在数仓,数据湖,数据库中

  • 数据难以共享和统一管理

4、大规模数据难以治理

  • 随着数据规模的不断增大,数据治理越发难以进行,数据质量、监控、安全逐渐成为瓶颈

针对这些问题,阿里云的 DataWorks 产品提供了一站式的数据开发治理的能力。

(点击查看大图)

它构建于不同的计算和存储引擎之上,包括阿里云自研的大数据服务 MaxCompute ,开源的大数据平台 EMR/CDH,支持实时计算、图计算,交互式分析。它构建在 OSS 、HDFS、DLF 之上湖仓一体的体系下,为大家提供实时离线的数据集成、数据开发,并且通过统一的调度任务和统一的元数据服务,为大家提供了各种各样的数据治理的能力。包括数据质量,智能监控,数据地图,数据安全,资源优化等。通过统一的元数据服务,为企业提供从数据平台到业务系统最后一公里的能力。

最后我们可以通过 open API 把我们整个平台开放给客户,也就是说您可以在不看到 DataWorks 界面的情况下,深度集成整个 DataWorks 的产品能力。

那这样一款产品它哪些核心能力呢?可以概括为以下几点:

  • 数据集成

  • 数据开发

  • 数据治理

  • 数据服务

首先,它通过数据集成实现了数据的入仓入湖。第二,数据在进入了我们的系统之后,数据开发它会通过支持多引擎的能力对这些数据进行精细化的处理和开发。第三,数据治理在基于多引擎湖仓一体的体系上提供统统一的元数据服务,使您对您的数据可以实现更易用和可用性。最后,通过数据服务使这些数据可以一站式的直达到你的系统中。

(点击查看大图)

我们首先来看一下数据集成,我们这里一共提供了50多种不同类型数据之间的相互的同步,比如说关系型数据库、大数据存储、消息队列以及非结构化的数据,而且同时我们提供了离线和实时的入仓和入湖。

(点击查看大图)

当我们的业务数据通过数据集成进入到我们的计算和存储引擎之后,DataWorks 提供实时离线的开发,通过支持多引擎的能力以及跨引擎之间的相互调度的能力,根据各种引擎的性能,你可以选择最优的最合适你的调度引擎,把它们集合成一个整体,对这些数据进行处理和开发。最后这些数据通过我们的数据服务提供给各种BI的分析的工具来展示数据报表和图像的分析。

(点击查看大图)

上图也是一个简单的基于 EMR 的数据开发的调度的价格图。我们可以看到它可以支持 EMR 的不同类型的作业,同时我们还支持一系列的逻辑业务节点,通过支持这些逻辑业务节点,我们可以支持循环、顺序、分支、跨地域、依赖等等,并且提供这种按日的千万级的大规模的调度来符合企业这种复杂的逻辑业务结构。

(点击查看大图)

这些数据经过了精密的数据开发的基础上,随着企业业务的不断发展,数字化转型的不同阶段,那么大家对数据治理也呈现了不同层次的不同类型的需求,我们在数据实时的正确产生的基础上,我们对于数据整个的共享性、易用性,好理解,数据安全,敏感数据识别等等,以及你的成本优化,都有了一些更高层次的需求。

那么 DataWorks 在各种各样的数据治理的需求方面,又提供了哪些能力来可以帮助你的企业管理数据、治理数据呢?

(点击查看大图)

首先在时效性方面,我们有一个全方位的运维和智能监控系统,并且通过各式各样的比如说短信、邮件、钉钉、电话来以及移动运维对你进行及时的告警,使您可以在任何地方的任何时间,只要打开你的手机,就可以对你的线上任务进行及时的处理。

(点击查看大图)

以上可以看到,这是一款 DataWorks 独创的,并且已经获得了国家专利的智能基线监控技术。可以看到上图的K节点,你只要关心你整个数据最后产出的节点,而无需关注它的上游节点, DataWorks 会非常智能的帮你搜索遍历它的上游节点,并且找出它的关键路径,在关键路上的每一个节点设置相应的智能监控和告警,这样就可以提前的发现问题,及时干预。

(点击查看大图)

我们这里提供30多种的内置模板,并且提供自定义模板的设置,可以让你对你的任何一张报表根据你的规则设置它的校验规则,同时它跟刚才的数据开发流程其实是紧密结合的,也就是说你在你的任意一个业务节点,对你的任意的一张表可以设置相应的规则,当你的任务会调度到这个节点的时候,这个规则也同时被触发。你也可以根据不同的级别来设置各种各样的报警,甚至去阻塞下游业务,这样就可以防止脏数据的产生。

(点击查看大图)

数据在已经以高质量、高效生成的基础上,DataWorks 提供对湖仓一体不同引擎的元数据的统一的采集以及管理。基于这些统一采集管理的原数据,就可以提供全域数据的检索,数据详情的分析、数据的热度、数据的产出信息以及非常精确的血缘关系。基于这样血缘关系,你可以对数据进行溯源以及进行各种各样的数据分析,你的数据就会变得更好理解,更好用更好查找。

(点击查看大图)

我们除此以外还提供了一个全链路的数据安全的保护。数据安全领域我们提供了租户隔离 Role Base 的权限管理,操作行为的日志,并且跟开源的 Kerberos/LDAP 是打通的。除此以外,对整个数据的开发链路其实也是有一个全链路的安全保障的,从数据传输开始,比如说我们可以对数据传输数据源的访问进行控制,在数据存储的过程中可以进行存储加密,数据的备份和恢复,在数据处理的过程中可以进行更细力度安全管控,随后的数据交换数据下载,然后会进行相应的接口的鉴权,以及进行数据脱敏的处理。

(点击查看大图)

企业的资产随着数据量的逐渐的增大,那么企业对资产的管控也需要需要有越来越高的需求。DataWorks 在基于以前数仓的基础上,也逐渐的把它拓展到刚才我们讲的整个的数据湖场景,它可以基于湖仓一体,逐步把整个企业全域的资源盘点和规划,优化给到客户,使成本得到非常精良的控制。

下面我们以 EMR 为例子,看一下在 EMR 这个产品上,到底是怎样深度结合,进行全域的数据开发和治理的。

(点击查看大图)

某一个游戏厂商,它的数据进入了阿里云的整个系统之后,进入 EMR 集群先进行消息队列,然后进入 EMR 集群进行相应的计算和处理,通过实时计算、交互式分析,最后给到用户大数据的BI的展现。

我们可以看到在整个链路过程中,DataWorks 会与整个我们链路的各种各样的数据存储和计算引擎进行深度的结合,在全链路去 cover 整个数据开发和治理的过程。

(点击查看大图)

以上是一个简单的 demo,大家可以看到 DataWorks 在 EMR 上,我们是怎样进行集成的。(具体相关的介绍可以在文章开头戳视频链接,观看具体讲解)

最后总结一下,DataWorks 在湖仓一体的基础上,支持多引擎,提供一个全域的数据开发和治理的平台。通过这款产品可以帮助企业最终实现您的一切业务数据化,一切数据业务化的功能。获取更多精彩内容,直接点击阅读原文,观看直播回放!

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
精品,数据湖技术及实践案例精选资料大合集,共40份。 一、数据湖解决方案和相关资料 毕马威数据湖数据管控平台 打造数据增量计算新架构 - 网易数据湖调研&实践 华为数据湖探索用户指南 华为数据湖治理中心数据治理方法论 华为数据湖治理中心用户指南 基于 AWS 数据湖打造 “千人千面”的互联网广告平台 基于数据湖的精准广告投放系统技术解密 基于数据湖构建云上的数据分析架构 基于Serverless的USQL数据湖分析实践 借助 AWS Lake Formation 构建云上数据湖 亚马逊云科技:数据湖解决方案 易经布道数据湖 云端的数据湖:现代化的数据架构 AWS数据湖大数据服务助力 快消行业进行数字化转型 SuperSQL:数据湖时代的高性能SQL引擎 USQL:数据湖分析 城市数据湖-新一代数字经济基础设施 用大数据来优化数据管理与数据湖建设 二、数据湖实践案例 基于Flink+Iceberg构建企业级实时数据湖 实时金融数据湖 数据湖存储架构选型 数据湖分析之Upsert详解 数据湖技术IceBerg如何解决腾讯看点业务痛点 数据湖在网易的实践 网易数据湖调研与实践 Flink如何实时分析Iceberg数据湖的CDC数据 三、2021 GIAC 全球互联网架构大会-数据湖论坛 七牛云异构数据湖 (Data Lake)实践 字节跳动基于Iceberg 的海量特征存储实践 B站数据湖的探索与落地实践 Databricks使用Delta Lake构建湖仓一体 四、2020阿里云数据湖高峰论坛发布资料合集 阿里云数据湖应用实践白皮书 阿里云云原生数据湖体系 数据湖解决方案-本地生活行业应用最佳实践 数据湖解决方案-互金行业应用最佳实践 数据湖解决方案-互娱行业应用最佳实践 数据湖解决方案-教育行业应用最佳实践 数据湖解决方案-游戏行业应用最佳实践 数据湖解决方案-最佳实践案例数据湖解决方案-AI行业应用最佳实践

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值