更多精彩好文,尽在微信公众号《大数据阶梯之路》
一、数据湖是什么
数据湖相当于一个汇集着来自各个异构数据源的原生态数据,不经过加工清洗数据
,数据的格式也五花八门,结构化和半结构化和非结构化的数据
都能够被数据湖管理起来。
那么就引申出数据湖的特点:
- 数据湖的存储能力极强,能容纳海量数据
- 数据湖中数据格式多,不止结构化数据,还能存储半结构化和非结构化数据
- 数据湖提供从异构数据源中提取数据和元数据的功能,并能将它们吸纳汇聚到混合存储系统中去
- 数据湖提供数据转换引擎,支持数据集转换、清洗以及与其他数据集的集成,并提供用于检索和查询数据湖数据和元数据的接口
二、数据湖与数据仓库的区别
- 数据湖存储的是原生态数据(结构化或非结构化都可以存储),而数据仓库存储的只能是结构化的数据
- 数据湖一般是PB级别的,存储的数据量通常比数据仓库还多,但也存在大型的PB级数据仓库
- 数据湖主要面向的用户是数据科学家,数据仓库主要面向的用户是数据开发工程师、数据分析师、数据运营等
- 入数据湖的数据一般是直接先装载到数据湖中,当访问时才会去解析成所需要的格式,即读模式;而入数据仓库的数据一般是经过ETL过程后,转换成固定模式的数据,即写模式
数据湖和数据仓库可以用来互补,数据湖可以在非结构化数据处理方面扩展业务能力。对于许多公司来说,通过数据湖来增强现有的数据仓库,已经被证明是一种高效的方式
三、数据湖架构
数据湖的本质,是由数据存储架构+数据处理工具
组成的解决方案。
数据架构存储:要求要有足够强大的扩展性和可靠性,才能存得下和存得久要入湖的数据,比如AmazonWebServices亚马逊云科技的S3云对象存储。
数据处理工具:主要解决2类问题,一类是把数据移动到湖里,一类是管理湖里的数据。
- 数据移动工具:如定义数据源,制定数据访问策略,安全策略,移动数据,编写数据目录,等等功能。
- 数据管理工具:如一些数据管理和治理工具,否则元数据缺失的话,湖里的数据质量就没法保障。
总结:数据湖不只是个“囤积”数据的“大水坑”,除了用存储技术构建的湖底座以外,还包含一系列的数据入湖、数据出湖、数据管理、数据应用工具集,共同组成了数据湖解决方案。
接着普及下什么是数据重力 & 数据沼泽 ?
数据沼泽
:各式各样的数据都往"湖里倾倒",缺乏元数据管理,最终会把好好的数据湖变成了数据沼泽,导致数据湖中的数据使用困难。
数据重力
:指的是随着数据积累越来越多,则要移动它们就越来越难,这便是所谓的数据重力。
四、湖仓一体(Lake House)
Lake House,即所谓的湖仓一体架构,数据湖和数据仓库相结合发挥作用,实现“湖里”和“仓里”的数据/元数据能够无缝打通,并且“自由”流动
。比如湖里的“新鲜”数据可以流到仓里,甚至可以直接被数仓使用,而仓里的“不新鲜”数据,也可以流到湖里,低成本长久保存,供未来的数据挖掘使用。
上案例:所讲的场景实际上可以应用到大数据领域中数据治理这一个环节中,比如数仓表的生命周期管理,我们对表不常用的历史分区数据进行归档处理,本质上也就是将这部分数据移动到数据湖中存储,从而使得这部分冷数据换成了低成本的存储,需要时也可以从数据湖中恢复回来,当然这个恢复过程是有代价的。
Lake House不仅要把湖、仓打通,还要克服“数据重力”,让数据在这些服务之间按需来回移动:入湖、出湖、环湖……
智能湖仓的设计,采用各下游组件都“环湖而造”的理念
,既可以直接操纵湖内数据,也可以从湖中摄取数据,还可以向湖中回注数据,同时环湖的服务彼此之间也可以轻松交换数据。
Amazon Web Services官方给出了智能湖仓的参考架构,如下:
上面这个六层架构,从数据源定义、数据摄取和入湖入仓,到湖仓打通与集成,再到数据出湖、数据处理和数据消费,一气呵成,各种云上数据服务无缝集成在一起,创新了未来一个新的大数据解决方案。