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

作者:郑锴 - 阿里云高级技术专家,张晨晖 - 阿里云产品专家

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

最近几数据湖热度很高,当大数据的同学一起时候经常谈到方面的话题,可能有的同学说“我们在做 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等多个阿里云计算产品来对数据湖进行分析。


戳我直达文章,获取具体实战细节>> 数禾云上数据湖最佳实践


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

以上是数禾在阿里云上面的数据湖架构,我们可以看到它在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一体基础上,支持引擎,提供一个数据开发治理平台。通过产品可以帮助企业最终实现一切业务数据化,一切数据业务功能。






对数据湖感兴趣的同学欢迎扫码加入以下钉钉交流群,不错过每次直播信息、探讨更多数据湖 JindoFS+OSS 相关技术问题!

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


后续我们会也在EMR钉钉群定期推送精彩案例,邀请更多技术大牛直播分享。欢迎有兴趣的同学扫下方二维码加入钉钉群进行交流和技术分享。关注公众号,锁定每周精彩分享内容!


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






上一篇:StarLake:汇量科技云原生数据湖的探索和实践


下一篇:discuz 模块模板标签说明 DIY模块模板语法详解