赞
踩
什么是数据湖?
数据湖是一个比喻,意思数数据可以以自然,原始的方式存放在湖中,不需要经过结构化处理。数据进入数据湖后也是需要被数据清洗和聚合的,才能发挥作用。
为什么使用数据湖?
使用数据湖的原因有很多,尤其是与关系型数仓 一起使用。可以快速将数据存储在数据湖中,而无需进行任何前期工作,这种方法称为读时 schema。这使我们能够快速访问数据生成报表,或者进行机器学习模型的训练。如果我们需要在关系型数仓中进行数据分析,我们可以通过 ETL 快速将数据湖中的数据加载进数仓。
对于数据仓库来说,通常有维护不可用时间,在这期间用户无法查询数仓数据进行分析,如果时间过长,会导致用户体验很差,而数据湖则没有这个烦恼。此外,数据湖还有许多其他的优点:
数据湖中的数据一般存储在云供应商的对象存储服务中,存储成本非常便宜,理论上数据湖的存储量是无限的。除非出于监管原因,否则数据湖中的数据一般都不会删除。
同时数据湖还可以与传统数据仓库结合使用,定义读时 schema 从数据湖中读取数据写入数仓,然后进行数据分析以及报表生成。此外数据湖还很适合存储流数据,比如说物联网设备的数据,而传统的数据仓库几乎不可能实现。
传统的数据仓库从数据源 ETL 加载进入很容易出现错误,并且加载的原始数据通常在一两天后就会删除,这就会导致一但出错就要重新加载,非常耗时,而数据湖从数据源加载的数据可以保留很长的历史记录。
与传统数据仓库不同,传统数据仓库需要从上而下,提前设计好库、表、字段以及写入 schema 等信息,然后在从数据源记载数据。而数据湖则是读时 schema,在从数据源加载数据时几乎没有限制,加载速度非常快。
下图为自上而下的构建方式:
下图为自下而上的构建方式:
这种构建方式使各种数据源的数据可以更加高效,实时的接入数据湖,可以更加快速的从非结构化数据中挖掘出数据价值。
虽然说数据湖中对写入的数据不做过多的限制,但是入湖的数据也需要通过相应整理和组织,否则数据湖就会变成数据沼泽,其中的数据变得难以管理。
我们可以将数据湖逻辑上划分为多个层:
原始层
适配层
清理层
应用层
沙箱层
上边是数据湖分常见分层中的一种,分层并不是固定的,我们可以根据实际的业务场景和公司组织架构额外增加一些层级。
另一种最佳实践是创建一个文件夹结构,通常每一层都有一个不同的文件夹结构,可以出于不同的原因以多种不同的方式进行划分:
数据隔离
访问控制
性能优化
数据生命周期管理
元数据管理
合规要求
容灾备份
版本控制
数据分区
ETL 需求
为了满足上边的要求,我们可以通过以下指标进行文件夹划分:
下图为原始层和清理层的文件夹结构:
本文对数据湖进行了概述,讨论了什么叫数据湖以及通过与传统数据仓库对比,说明了为啥要选择数据湖,数据湖的好处是什么。
数据湖的构建与传统的数据仓库的构建方式不同,数据湖采用的是自下而上的构建方式,这种构建方式可以使不同源数据快速入湖,第一时间挖掘数据的价值。
同时我们也讨论了数据湖在逻辑上的层级划分,以及在物理上的文件夹的结构改如何划分。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。