这篇文章给大家介绍如何分析数据湖存储架构选型,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
一、数据湖是个潮流
简单来讲,数据湖的理念就是说从一个企业的视角来讲,把整个数据集中的统一的存储在一起,主要通过 BI 和 AI 的手段来计算分析原始的数据。数据的类型不光是结构化、半结构化的,还包括音视频,这样的一些材料。我们为什么要基于数据湖来做这样的一个转型呢,数据湖能够给我们带来什么样的好处呢。第一,打破数据孤岛。就是说原始的数据我们先不考虑怎么去处理它、分析它,甚至是说我们先不考虑它到底会不会解决很大的业务上面的问题,我们先把它放在一起,打破数据孤岛,为后面的业务发展演化和计算,可能就提供了很好的一个机会。第二,基于统一的、集中的整个数据的收集,可以支持各种各样的计算。第三,弹性。我们数据湖本身是有弹性的,然后支持的计算也是有弹性的。弹性可能在云上面带来成本的很大的伸缩性的空间,为我们优化存储和计算的成本带来了这样一个可能。第四,管理。我们把数据放在一起,可以提供统一的、集中的这样一个管理控制。熟悉 Hadoop 整个生态的话,过去经常会谈到一个非常大的、非常复杂的生态的大图。那个图里面涉及到非常多的组件,结构关系非常复杂。而基于数据湖的架构,可以得到大大的简化。如下图所示,最下面是数据湖本身,基于这样的一个数据湖存储,我们可以有一个统一的元数据服务,做数据湖的创建管理,然后围绕数据湖做数据的治理开发,和各种数据源的集成打通。但是这个并不是目的,最主要的作用还是说我们要做计算。数据湖的计算,简单来讲就是说我们有各种各样的开源的 BI 的引擎,或者 AI 的引擎,每个引擎可能有自己的集群,然后基于数据湖来进行相应的计算场景的处理。然后满足我们最上面的基于数据湖的各种应用,比如说数据大屏,数据报表,数据挖掘,机器学习。二、湖存储/加速:挑战很大
第一,最大的一个因素是数据量的问题。按照数据湖的理念,我们要把所有的数据全部都放在一起,那么在数据的规模上来讲是非常大的,数据规模可以膨胀到 PB、EB 级别。第二,文件的规模。从存储系统的角度来讲,文件的规模可以说也是非常大,要么就是层次非常深,要么就是非常扁平。扁平就是说一个目录下可能会有几百万的文件数,形成这样一个超大的目录。第三,成本。我要收集那么多的数据,我要把全部原始的数据放在一起,成本上怎么去优化。另外一个挑战就是说,按照数据湖的架构,它背后的本质是存储和计算分离。现在是专业化的分工,存储的做存储,计算的做计算,这个带来非常大的研发效率的这样一个提升。但是分离了之后,怎么满足计算的吞吐,怎么满足计算对性能的这样一个需求,这也是带来很大挑战的一个原因。
另外,在数据湖的整个的方案下面,要考虑到计算场景是非常丰富的,计算的环境也是错综复杂的。大数据,我们要支持分析、交互式、实时计算。然后 AI 有自己的各种各样的引擎来训练。
然后是计算的场景,包括 EMR 、ECS 自建、云原生、混合云。这样的一些环境可能都会涉及到,我们怎么提供一个统一、集中的存储的解决方案,来满足这样一个丰富的计算场景和环境。假设我们能够克服数据量上面的挑战,满足各种计算的环境,也能够提供缓存加速,也能够满足存储的这样一个性能。现在架构师决定了我们要做数据迁移,实施层面的挑战是什么。我们要做大量数据的迁移,之后要做正确性的比对。另外,比如说, Hive 数仓,Spark 作业,可能上千上万的作业我们决定要迁移,迁移了之后要做结果的比对。迁移上来之后,可能我过去有一套成熟的治理、运维的体系,在新的架构下面,我怎么能够尽量少改,能够继续得到支持。这是实施层面的挑战。三、完美选项之 checklist
数据湖架构下面,从存储、加速的视角,我们可以看到有这样一些挑战,那么理想的选型是什么样子的,要考虑到哪些因素,这里做了一个总结。- 第一, 基于对象存储,大规模存储能力。
- 第二,大目录元数据操作能力。
- 第三,策略灵活的缓存加速能力。
- 第四,和计算打通优化的能力。
- 第五,支持数据湖新型表格存储的能力。
- 第六,归档/压缩/安全存储的能力。
- 第七,全面的大数据+ AI 生态支持。
- 第八,强大迁移能力,甚至是无缝迁移能力。
以上就是作为一个理想的数据湖的存储、加速方案,最好具备的一个 checklist 。考虑升级到数据湖架构的这样一些架构师可以对照一下这个 checklist ,来做方案的选型。关于如何分析数据湖存储架构选型就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。