欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

分享云原生数据湖的最佳实践和案例分析,以实现数据治理和开发

最编程 2024-01-05 17:14:17
...

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

网络异常,图片无法展示
|

最近几数据湖热度很高,当大数据的同学一起时候经常谈到方面的话题,可能有的同学说“我们在做 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集群实战,是完全不一样的。


上一篇: 使用GPT4进行数据分析,竟然被他骗了

下一篇: 2020即将到来,看完这篇帮你详细了解数据策略

推荐阅读