最新大厂数据湖面试题,知识点总结(一)

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
数据安全中心,免费版
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 本文是一篇数据湖的面试题,同时也是数据湖知识点的讲解

本文是一篇数据湖的面试题,同时也是数据湖知识点的讲解


目录:


一、什么是数据湖

二、数据湖的发展

三、数据湖有哪些优势

四、数据湖应该具备哪些能力

五、数据湖的实现遇到了哪些问题

六、数据湖与数据仓库的区别

七、为什么要做数据湖?区别在于?

八、数据湖挑战

九、湖仓一体

十、目前有哪些开源数据湖组件

十一、三大数据湖组件对比


一、什么是数据湖



数据湖是一种不断演进中、可扩展的大数据存储、处理、分析的基础设施;以数据为导向,实现任意来源、任意速度、任意规模、任意类型数据的全量获取、全量存储、多模式处理与全生命周期管理;并通过与各类外部异构数据源的交互集成,支持各类企业级应用。


用架构图能很快说明白,用阿里的数据架构图来说:



  • ODS(operational data store, staging area)存储来自各业务系统(生产系统)的原始数据,即为数据湖。
  • CDM为经过整合、清洗的数据。其中的DWS汇总层,为面向主题的数据仓库(狭义),用于BI报表出数。


简单来说,数据湖的定义就是原始数据保存区. 虽然这个概念国内谈的少,但绝大部分互联网公司都已经有了。国内一般把整个HDFS叫做数仓(广义),即存放所有数据的地方。


二、数据湖的发展



数据湖最早是2011年由Pentaho的首席技术官James Dixon提出的一个概念,他认为诸如数据集市,数据仓库由于其有序性的特点,势必会带来数据孤岛效应,而数据湖可以由于其开放性的特点可以解决数据孤岛问题。


为什么不是数据河?

因为,数据要能存,而不是一江春水向东流。


为什么不是数据池?

因为,要足够大,大数据太大,一池存不下。


为什么不是数据海?

因为,企业的数据要有边界,可以流通和交换,但更注重隐私和安全,“海到无边天作岸”,那可不行。


所以数据要能“存”,数据要够“存”,数据要有边界地“存”。企业级的数据是需要长期积淀的,因此是“数据湖”。


同时湖水天然会进行分层,满足不同的生态系统要求,这与企业建设统一数据中心,存放管理数据的需求是一致的。热数据在上层方便流通应用,温数据、冷数据位于数据中心的不同存储介质之中,达到数据存储容量与成本的平衡。


但随着数据湖在各类企业的应用,大家都觉得:嗯,这个数据有用,我要放进去;那个数据也有用,我也要放进去;于是把所有的数据不假思索地扔进基于数据湖的相关技术或工具中,没有规则不成方圆,当我们认为所有数据都有用时,那么所有的数据都是垃圾,数据湖也变成了造成企业成本高企的数据沼泽。


三、数据湖有哪些优势



  • 轻松地收集数据:数据湖与数据仓库的一大区别就是,Schema On Read,即在使用数据时才需要Schema信息;而数据仓库是Schema On Write,即在存储数据时就需要设计好Schema。这样,由于对数据写入没有限制,数据湖可以更容易的收集数据。
  • 从数据中发掘更多价值:数据仓库和数据市场由于只使用数据中的部分属性,所以只能回答一些事先定义好的问题;而数据湖存储所有最原始、最细节的数据,所以可以回答更多的问题。并且数据湖允许组织中的各种角色通过自助分析工具,对数据进行分析,以及利用AI、机器学习的技术,从数据中发掘更多的价值。
  • 消除数据孤岛:数据湖中汇集了来自各个系统中的数据,这就消除了数据孤岛问题。
  • 具有更好的扩展性和敏捷性:数据湖可以利用分布式文件系统来存储数据,因此具有很高的扩展能力。开源技术的使用还降低了存储成本。数据湖的结构没那么严格,因此天生具有更高的灵活性,从而提高了敏捷性。


四、数据湖应该具备哪些能力






  1. 数据集成能力

需要具备把各种数据源接入集成到数据湖中的能力。数据湖的存储也应该是多样的,比如HDFS、HIVE、HBASE等等。


  1. 数据治理能力

治理能力的核心是维护好数据的元数据(metadata)。强制要求所有进入数据湖的数据必须提供相关元数据,应该作为最低限度的治理管控。没有元数据,数据湖就面临成为数据沼泽的风险。更丰富的功能还包括:


  • 自动提取元元数据,并根据元数据对数据进行分类,形成数据目录。
  • 自动对数据目录进行分析,可以基于AI和机器学习的方法,发现数据之间的关系。
  • 自动建立数据之间血缘关系图。
  • 跟踪数据的使用情况,以便将数据作为产品,形成数据资产。


  1. 数据搜索和发现能力

如果把整个互联网想象成一个巨大的数据湖。那么,之所以人们可以这么有效的利用这个湖中的数据,就是因为有了Google这样的搜索引擎。人们可以通过搜索,方便地找到他们想要的数据,进而进行分析。搜索能力是数据湖的十分重要的能力。


  1. 数据安全管控能力

对数据的使用权限进行管控,对敏感数据进行脱敏或加密处理,也是数据湖能商用所必须具备的能力。


  1. 数据质量检验能力

数据质量是分析正确的关键。因此必须对进入数据湖中的数据的质量情况进行检验。及时发现数据湖中数据质量的问题。为有效的数据探索提供保障。


  1. 自助数据探索能力

应该具备一系列好用的数据分析工具,以便各类用户可以对数据湖中的数据进行自助探索。包括:


  • 支持对流、NoSQL、图等多种存储库的联合分析能力
  • 支持交互式的大数据SQL分析
  • 支持AI、机器学习分析
  • 支持类似OLAP的BI分析
  • 支持报表的生成


五、数据湖的实现遇到了哪些问题



数据湖刚提出来时,只是一个朴素的理念。而从理念变成一个可以落地的系统,就面临着许多不得不考虑的现实问题:


首先,把所有原始数据都存储下来的想法,要基于一个前提,就是存储成本很低。而今数据产生的速度越来越快、产生的量越来越大的情况下,把所有原始数据,不分价值大小,都存储下来,这个成本在经济上能不能接受,可能需要打一个问号。


其次,数据湖中存放这各类最原始的明细数据,包括交易数据、用户数据等敏感数据,这些数据的安全怎么保证?用户访问的权限如何控制?


再次,湖中的数据怎么治理?谁对数据的质量、数据的定义、数据的变更负责?如何确保数据的定义、业务规则的一致性?


数据湖的理念很好,但是它现在还缺乏像数据仓库那样,有一整套方法论为基础,有一系列具有可操作性的工具和生态为支撑。正因如此,目前把Hadoop用来对特定的、高价值的数据进行处理,构建数据仓库的模式,取得了较多的成功;而用来落实数据湖理念的模式,遭遇了一系列的失败。这里,总结一些典型的数据湖失败的原因:


  1. 数据沼泽:当越来越多的数据接入到数据湖中,但是却没有有效的方法跟踪这些数据,数据沼泽就发生了。在这种失败中,人们把所有东西都放在HDFS中,期望以后可以发掘些什么,可没多久他们就忘那里有什么。
  2. 数据泥团:各种各样的新数据接入进数据湖中,它们的组织形式、质量都不一样。 由于缺乏用于检查,清理和重组数据的自助服务工具,使得这些数据很难创造价值。
  3. 缺乏自助分析工具:由于缺乏好用的自助分析工具,直接对数据湖中的数据分析很困难。一般都是数据工程师或开发人员创建一个整理后的小部分数据集,把这些数据集交付给更广泛的用户,以便他们使用熟悉的工具进行数据分析。这限制了更广泛的人参与到探索大数据中,降低了数据湖的价值。
  4. 缺乏建模的方法论和工具:在数据湖中,似乎每一项工作都得从头开始,因为以前的项目产生的数据几乎没有办法重用。 其实,我们骂数据仓库很难变化以适应新需求,这其中有个原因就是它花很多时间来对数据进行建模,而正是有了这些建模,使得数据可以共享和重用。数据湖也需要为数据建模,不然每次分析师都得从头开始。
  5. 缺少数据安全管理:通常的想法是每个人都可以访问所有数据,但这是行不通的。企业对自己的数据是有保护本能的,最终一定是需要数据安全管理的。
  6. 一个数据湖搞定一切:大家都对能在一个库中存储所有数据的想法很兴奋。然而,数据湖之外总会有新的存储库,很难把他们全都消灭掉。 其实,大多数公司所需的,是可以对多种存储库联合访问功能。是不是在一个地方存储,并不是那么重要。


六、数据湖与数据仓库的区别


数据仓库,准确说,是面向历史数据沉淀和分析使用的,有三大特点:


  • 其一是集成性,由于数据来源众多,因而需要技术和规范来统一存储方式;
  • 其二是非易失和随时间变化,数据仓库存储了过去每一天的快照且通常不更新,使用者可以在任一天向前或者向后对比数据的变化;
  • 其三是面向主题,根据业务对数据进行有效的编码,让理论最佳值在应用中落地。


数据湖,准确说,其出发点是补全数据仓库实时处理能力、交互式分析能力等新技术缺失的情况。其最重要的特点,就是丰富的计算引擎:批处理、流式、交互式、机器学习,该有的,应有尽有,企业需要什么,就用什么。数据湖也有三个特征:


  • 其一是灵活性,默认业务的不确定性是常态的,在无法预期未来变化时,技术设施基础,就要具备“按需”贴合业务的能力;
  • 其二是管理性,数据湖需要保存原始信息和处理后的信息,在数据源、数据格式、数据周期等维度上,能够追溯数据的接入、存储、分析和使用等流动过程;
  • 其三是多态性,本身的引擎需要进可能的丰富,因为业务场景不固定,而多态的引擎支持、扩展能力,能够较好的适应业务的快速变化。


七、为什么要做数据湖?区别在于?


数据湖和数仓,就是原始数据和数仓模型的区别。因为数仓(狭义)中的表,主要是事实表-维度表,主要用于BI、出报表,和原始数据是不一样的。


为什么要强调数据湖呢?


真正的原因在于,data science和machine learning进入主流了,需要用原始数据做分析,而数仓的维度模型则通常用于聚合。


另一方面,机器学习用到的数据,也不止于结构化数据。用户的评论、图像这些非结构化数据,也都可以应用到机器学习中。



但数据湖背后其实还有更大的区别:


  • 传统数仓的工作方式是集中式的:业务人员给需求到数据团队,数据团队根据要求加工、开发成维度表,供业务团队通过BI报表工具查询。
  • 数据湖是开放、自助式的(self-service):开放数据给所有人使用,数据团队更多是提供工具、环境供各业务团队使用(不过集中式的维度表建设还是需要的),业务团队进行开发、分析。


也就是组织架构和分工的差别 —— 传统企业的数据团队可能被当做IT,整天要求提数,而在新型的互联网/科技团队,数据团队负责提供简单易用的工具,业务部门直接进行数据的使用。


八、数据湖挑战


从传统集中式的数仓转为开放式的数据湖,并不简单,会碰到许多问题


  • 数据发现:如何帮助用户发现数据、了解有哪些数据?
  • 数据安全:如果管理数据的权限和安全?因为一些数据是敏感的、或者不应直接开放给所有人的(比如电话号码、地址等)
  • 数据管理:多个团队使用数据,如何共享数据成果(比如画像、特征、指标),避免重复开发


这也是目前各大互联网公司都在改进的方向!

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
6月前
|
存储 分布式计算 大数据
HBase分布式数据库关键技术与实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析了HBase的核心技术,包括数据模型、分布式架构、访问模式和一致性保证,并探讨了其实战应用,如大规模数据存储、实时数据分析及与Hadoop、Spark集成。同时,分享了面试经验,对比了HBase与其他数据库的差异,提出了应对挑战的解决方案,展望了HBase的未来趋势。通过Java API代码示例,帮助读者巩固理解。全面了解和掌握HBase,能为面试和实际工作中的大数据处理提供坚实基础。
358 3
|
存储 数据采集 监控
【2022持续更新】大数据最全知识点整理-数据仓库篇
【2022持续更新】大数据最全知识点整理-数据仓库篇
1692 0
【2022持续更新】大数据最全知识点整理-数据仓库篇
|
存储 缓存 负载均衡
【2022持续更新】大数据最全知识点整理-HBase篇
【2022持续更新】大数据最全知识点整理-HBase篇
1047 0
【2022持续更新】大数据最全知识点整理-HBase篇
|
存储 数据挖掘 大数据
第16章 数据仓库与联机分析处理技术——复习笔记
第16章 数据仓库与联机分析处理技术——复习笔记
|
存储 数据采集 数据管理
数据仓库是干什么的?底层原理是什么?
数据仓库是干什么的?底层原理是什么?
213 0
|
存储 数据采集 大数据
数据仓库面试知识总结
数据仓库面试知识总结
数据仓库面试知识总结
|
SQL 存储 数据采集
数据仓库工程师面试题
数据仓库工程师面试题
数据仓库复习(十)
维度建模三种模式
76 0
数据仓库复习(六)
数仓建模-维度建模法
93 0
|
数据建模
数据仓库复习(七)
数仓建模-实体建模法
94 0