【大数据】一起弄懂Data Lake数据湖

浏览: 7403

在前一篇文章《DW2.0技术架构被大家遗忘了? 》中,BAO胖子点评时说到DW2.0和大数据中的数据湖是一回事,之前对数据湖这个概念也仅仅是在一些大数据架构时,听人提到过,潜意识里认为就是数据仓库,没有做深入的了解和对比,近期搜了一些文章和资料,将收集到的数据湖相关的内容加上个人的理解总结成这篇文章,供大家学习和参考,如有不对,请大家多多指出。

  1. Data lake定义
    1. Data lake这个术语由Pentaho公司的创始人兼首席技术官詹姆斯·狄克逊(James Dixon)发明,他对数据湖的解释是: 把你以前在磁带上拥有的东西倒入到数据湖,然后开始探索该数据。重要的只把需要的数据倒入到Hadoop;如果你想结合来自数据湖的信息和客户关系管理系统(CRM)里面的信息,我们就进行连接,只有需要时才执行这番数据结合。

      再来看下维基百科对Data lake的解释:数据湖是一种在系统或存储库中以自然格式存储数据的方法,它有助于以各种模式和结构形式配置数据,通常是对象块或文件。数据湖的主要思想是对企业中的所有数据进行统一存储,从原始数据(这意味着源系统数据的精确副本)转换为用于报告、可视化、分析和机器学习等各种任务的转换数据。湖中的数据包括结构化数据从关系数据库(行和列),半结构化数据(CSV、XML、JSON的日志),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像、音频、视频)从而形成一个集中式数据存储容纳所有形式的数据。

      从上面的两种定义来看,数据湖的核心思想是把不同结构的数据统一存储,使不同数据有一致的存储方式,在使用时方便连接,真正解决数据集成问题。

    2. 关于Hadoop、企业数据仓库、数据湖
    3. Data lake是大数据时代发展起来的一种数据存储架构,结合SAS新兴技术总监Tamara Dull在2015年4月达拉斯SAS全球论坛执行会议上关于Hadoop、企业数据仓库和数据湖的一系列讨论,虽然这几个问题的抛出是为满足市场营销人员对大数据的讲解和演示,弄明白这几个问题就能够理清三者之间的关系。

            1.Hadoop能做哪些数据仓库不能做的?

           (1)更廉价地存储任何种类的数据;

           (2)更快速、更廉价地处理数据。

            2.我们不做“大”数据,为什么我们需要Hadoop?

            多样化的数据存储:利用Hadoop存储成本低的特点,将原始数据、本地数据和转换数据存储在Hadoop中,这样你的所有数据都在一个地方存储,能给以后方便的管理、再处理和分析。

            高效的数据处理:利用Hadoop的低成本处理能力,将数据的处理过程交给Hadoop,释放昂贵的数据仓库资源对数据的处理压力。

            存储全部数据:由于Hadoop的存储是在可快速扩展的硬件上,低廉的存储成本能够让你不必担心数据超出预期寿命后进行销毁以节省存储空间,可以方便的存储你想存储的所有时间跨度的数据,全生命周期的数据都可以。

            处理任何数据:使用Hadoop利用当前在企业数据仓库生态系统中不可用的数据。 主要指两类数据:(1)没有集成到数据仓库中的结构化数据资源,(2)非结构化和半结构化数据资源。概况来说,它是目前您的仓库生态系统的一部分,它可以为客户、产品和服务提供更多的洞察。因为Hadoop可以存储和处理任何数据,所以它可以为数据仓库不能或处理不好的数据拾取冗余。

           访问任何数据(通过数据仓库):使用Hadoop扩展数据仓库,并将其保存在组织数据宇宙的中心。这个用例适用于那些希望将企业数据仓库作为事实记录系统的公司。作为一个补充组件,Hadoop可以用于处理和集成任何类型的结构化、半结构化和非结构化数据,并加载数据仓库所需的内容。这使得企业能够继续使用其当前的BI /分析工具与企业数据仓库生态系统。

           访问任何数据(通过Hadoop):使用Hadoop作为所有数据的登陆平台,并利用数据仓库和Hadoop的优势。在Hadoop中捕获数据的一个优点是它可以存储在原始的原生状态中。它不需要像传统的结构化数据那样预先格式化,它可以在数据请求时再进行格式化。这个用例最支持使用Hadoop作为“数据湖”的概念。

          3.Hadoop为企业准备好了吗?

           这个问题中Hadoop应该代表了整个Hadoop生态圈,不仅仅指的是Hadoop本身。这个问题的答案是:Hadoop可能会满足你的企业需求,但是不能满足所有的企业需求。如果你想用Hadoop作为附加的存储库或者是短期数据处理器,那完全可以使用它,而且也能够满足你的需求,但是如果你想超越数据存储和处理之外,做一些数据管理和分析,那单凭Hadoop是不可能的。所以现实情况是,你因为看到周围大家都在用Hadoop,或者安装使用成本低,跟着就选择了它,而没有根据你的业务需要去选择是否使用Hadoop。还有一点需要考虑的是,尽管Hadoop在迅速的变得成熟起来,但是对比发展了几十年的关系型数据系统,对于所有的企业需求它不能够100%满足,毕竟它的平均更新周期只有45天。

           Hadoop有没有准备好,取决于你的业务需求以及你想解决的问题,根据你的企业需求选择工具,而不是颠倒过来。

          4.难道数据湖不是数据仓库吗?

           数据湖和数据仓库都是数据存储库,这一点没有区别。数据湖以其本机格式保存大量原始数据,包括结构化的、半结构化的和非结构化的数据。在需要数据之前,没有定义数据结构和需求。

           下面的表格展示了数据仓库和数据湖之间的几个关键差异:

      图片 1.png

           数据:数据仓库是存储数据,进行建模,存储的是结构化数据;而数据湖不在乎数据,它存储所有的结构化、半结构化和非结构化。

           处理:在我们可以加载到数据仓库中的数据,我们首先需要定义好它,这叫做写模式。对于数据湖,您只需加载原始数据,然后,当您准备使用数据时,就给它一个定义,这叫做读模式。两种截然不同的方法。

           存储:像Hadoop这样的大数据技术的主要特点之一是与数据仓库相比,存储数据的成本相对较低。这有两个关键原因:首先,Hadoop是开源软件,因此许可和社区支持是免费的。第二,Hadoop被设计成安装在低成本的硬件资源上。

           敏捷性:根据定义,数据仓库是高度结构化的存储库。改变结构并不是技术上的困难,但是考虑到所有与之相关的业务流程将会非常耗时。另一方面,数据湖缺乏数据仓库的结构,这使得开发人员和数据科学家能够轻松地配置和重新配置他们的模型、查询和应用程序。

           安全:数据仓库技术已经存在了几十年,而大数据技术(数据湖的基础)是相对较新的。因此,在数据仓库中保护数据的能力比在数据湖中保护数据要成熟。

           用户:因为BI和分析的原因,用户可能已经建立了数据仓库,并邀请“每个人”来使用,但平均来说只有20%到25%的使用者。所以这些人怀疑对数据湖来说也是这样吗?当我们建立了数据湖,大家会不会来用。所以从用户差异上来看,数据仓库适合企业专业人士,而数据湖最适合数据科学家。

           通过以上5点的对比,数据湖并不是数据仓库,它们有各自的目标,为实现你的业务做最好的选择。

        5.数据湖的优缺点是什么?

           有了以上四个问题的回答,这个问题显得很多余。真要什么优缺点自己提炼吧

    4. 结束语
    5. 通过以上的对比,对数据湖、数据仓库、Hadoop三者之间的关系、优缺点以及使用场景都有很清晰的认识。那数据湖与数据仓库2.0架构中的多样化数据存储思想是一致的,但它不具有数据仓库2.0中提出的数据生命周期的概念。尽管数据湖有低廉的存储成本和计算成本,但是在实际存储数据时还是需要加以辨别,别让你的数据湖变成数据沼泽,而且毛主席都说了“浪费是极大的犯罪”。

      再次感谢BAO胖子

      推荐 3
      本文由 w卫东 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
      转载、引用前需联系作者,并署名作者且注明文章出处。
      本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

      3 个评论

      有个图片看不到啊
      直接粘贴进去的,估计有问题,晚上搞一下了
      才看到这个,inmon提到dw2.0的时候,重点提过,dw2.0就已经是混杂的数据结构了,并不是单纯的结构化数据。而后面那几个五项完全构不成二者的区别,说实话,我是非常讨厌各路人马各种起名字的,其实来回来去就是数据集成整合那点事,只是A少提了点东西,B添加上了就觉得不应该和A的名字一样,自己就玩套新名字。其实这么多年来,都是差不多的思路。

      要回复文章请先登录注册