数据湖是数据仓库的补充,是为了解决数据仓库漫长的开发周期,高昂的开发,维护成本,细节数据丢失等问题出现的。
数据湖大多是相对于传统的rdbms的数据仓库,而从2011年前后,也就是数据湖概念出现的时候,很多数据仓库正逐渐以hadoop为基础的技术栈上,而且除了结构化数据,半结构化,非结构化数据也存储到数据仓库中,并提供此类服务,这亲的数据仓库,已经具有数据湖的部分功能。
数据湖正在成为一种越来越流行的大数据解决方案,而数据湖这个词已经被大数据供应商赋予了太多不同的含义,如果有什么工作是传统数据仓库做不了的,那就把它塞进数据湖,以至于数据湖已经变成了一个定义模糊的概念。数据湖是不是就是传说中的银弹,可以解决所有数据仓库不能解决的问题呢。本文将讲述,关于数据湖的定义,与数据仓库的区别,以及现实中的数据湖解决方案和未来会怎样发展。
什么是数据湖?
维基百科对数据湖的定义是,数据湖是一种在系统或存储库中以自然格式存储数据的方法,它有助于以各种模式和结构形式配置数据,通常是对象块或文件。数据湖的主要思想是对企业中的所有数据进行统一存储,从原始数据(源系统数据的精确副本)转换为用于报告、可视化、分析和机器学习等各种任务的目标数据。数据湖中的数据包括结构化数据(关系数据库数据),半结构化数据(CSV、XML、JSON等),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像、音频、视频),从而形成一个容纳所有形式数据的集中式数据存储。
可见,企业使用数据湖架构,核心出发点就是把不同结构的数据统一存储,使不同数据有一致的存储方式,在使用时方便连接,真正解决数据集成问题。因此,数据湖架构最主要的特点,一是支持异构数据聚合,二是无需预定义数据模型即可进行数据分析。
数据湖从本质上来讲,是一种企业数据架构方法,物理实现上则是一个数据存储平台,用来集中化存储企业内海量的、多来源,多种类的数据,并支持对数据进行快速加工和分析。从实现方式来看,目前Hadoop是最常用的部署数据湖的技术,但并不意味着数据湖就是指Hadoop集群。为了应对不同业务需求的特点,MPP数据库+Hadoop集群+传统数据仓库这种“混搭”架构的数据湖也越来越多出现在企业信息化建设规划中。
Data Lake是一个存储库,可以存储大量结构化,半结构化和非结构化数据。它是以原生格式存储每种类型数据的地方,对帐户大小或文件没有固定限制。它提供高数据量以提高分析性能和本机集成。
Data Lake就像一个大型容器,与真正的湖泊和河流非常相似。就像在湖中你有多个支流进来一样,数据湖有结构化数据,非结构化数据,机器到机器,实时流动的日志。
Data Lake使数据民主化,是一种经济有效的方式来存储组织的所有数据以供以后处理。研究分析师可以专注于在数据中找到意义模式而不是数据本身。
与数据存储在文件和文件夹中的分层数据仓库不同,Data湖具有扁平的架构。Data Lake中的每个数据元素都被赋予唯一标识符,并标记有一组元数据信息。
数据湖与传统数据仓库的区别
数据仓库是一个优化的数据库,用于分析来自事务系统和业务线应用程序的关系数据。事先定义数据结构和 Schema 以优化快速 SQL 查询,其中结果通常用于操作报告和分析。数据经过了清理、丰富和转换,因此可以充当用户可信任的“单一信息源”。
数据湖有所不同,因为它存储来自业务线应用程序的关系数据,以及来自移动应用程序、IoT 设备和社交媒体的非关系数据。捕获数据时,未定义数据结构或 Schema。这意味着您可以存储所有数据,而不需要精心设计也无需知道将来您可能需要哪些问题的答案。您可以对数据使用不同类型的分析(如 SQL 查询、大数据分析、全文搜索、实时分析和机器学习)来获得见解。
数据湖与数据仓库这两个概念很容易被混淆,它们的区别主要有三个方面:
一是存储数据类型不同。数据仓库中存储的主要是结构化数据,对于加载到数据仓库中的数据,首先需要定义数据存储模型。而数据湖以其原生格式保存大量原始数据,包括结构化的、半结构化的和非结构化的数据,并且在使用数据之前,不对数据结构进行定义。
二是数据处理模式不同。数据仓库是高度结构化的架构,数据在清洗转换之后才会加载到数据仓库,用户获得的是处理后数据。而在数据湖中,数据直接加载到数据湖中,然后根据分析的需要再处理数据。
三是服务对象不同。从用户差异上来看,数据仓库适合企业中大数据产品开发人员和业务用户。而数据湖最适合数据分析师或数据科学家,他们直接基于数据沙箱做自由探索和分析,这些人要求有技术背景,会写代码或熟悉SQL。
为何选择Data Lake以及数据湖的概念和架构
构建数据湖的主要目标是向数据科学家提供未经定义的数据视图。
使用Data Lake的原因主要有:
-
随着存储引擎的出现,Hadoop让存储不同的信息变得更加容易。需要使用Data Lake将数据建模到企业范围的模式中。
-
随着数据量,数据质量和元数据的增加,分析质量也会提高。
-
Data Lake提供业务敏捷性
-
机器学习和人工智能可用于进行有利可图的预测。
-
它为实施组织提供了竞争优势。
-
没有数据孤岛结构。Data Lake提供360度的客户视图,使分析更加健壮。
数据湖架构
下图显示了Business Data Lake的体系结构。较低级别表示大部分处于静止状态的数据,而较高级别表示实时交易数据。此数据流经系统,没有延迟或延迟很小。以下是Data Lake Architecture的重要层次:
-
1 摄取层 :左侧的层描述了数据源。数据可以批量或实时加载到数据湖中
-
2 洞察层:右侧的层代表研究方面,使用系统的见解。SQL,NoSQL查询甚至excel都可用于数据分析。
-
3 HDFS是结构化和非结构化数据的经济高效的解决方案。它是系统中静止的所有数据的着陆区。
-
4 蒸馏层从存储轮胎中获取数据并将其转换为结构化数据以便于分析。
-
5 处理层运行分析算法和用户查询,具有不同的实时,交互,批处理以生成结构化数据,以便于分析。
-
6 统一操作层管理系统管理和监视。它包括审计和熟练管理,数据管理,工作流程管理。
以下是Data Lake的核心概念,人们需要了解这些概念才能完全理解Data Lake的架构:
-
数据摄取
数据提取允许连接器从不同的数据源获取数据并加载到Data湖中。
数据提取支持:所有类型的结构化,半结构化和非结构化数据。批量,实时,一次性负载等多次摄取;许多类型的数据源,如数据库,Web服务器,电子邮件,物联网和FTP。
-
数据存储
数据存储应该是可扩展的,提供经济高效的存储并允许快速访问数据探索。它应该支持各种数据格式。
-
数据治理
数据治理是管理组织中使用的数据的可用性,可用性,安全性和完整性的过程。
-
安全
需要在Data Lake的每个层中实现安全性。它始于存储,发掘和消耗。基本需求是停止未授权用户的访问。它应该支持不同的工具来访问数据,易于导航GUI和仪表板。
身份验证,会计,授权和数据保护是数据湖安全的一些重要特性。
-
数据质量:
数据质量是Data Lake架构的重要组成部分。数据用于确定商业价值。从劣质数据中提取洞察力将导致质量差的洞察力。
-
数据发现
数据发现是您开始准备数据或分析之前的另一个重要阶段。在这个阶段,标记技术用于表达数据理解,通过组织和解释数据湖中摄取的数据。
-
数据审计
两个主要的数据审计任务是跟踪对关键数据集的更改:跟踪重要数据集元素的更改;捕获如何/何时/以及更改这些元素的人员。
数据审计有助于评估风险和合规性。
-
数据沿袭
该组件处理数据的来源。它主要涉及随着时间推移它的推动者以及它发生了什么。它简化了从始发地到目的地的数据分析过程中的错误更正。
-
数据探索
这是数据分析的开始阶段。在开始数据探索之前,确定正确的数据集是至关重要的。
所有给定的组件需要协同工作,在Data Lake构建中发挥重要作用,轻松演化和探索环境。
-
Data Lake的成熟阶段
数据湖成熟阶段的定义不同于教科书。虽然症结仍然是一样的。成熟后,阶段定义是从外行的角度出发的。
第一阶段:大规模处理和摄取数据
数据成熟度的第一阶段涉及提高转换和分析数据的能力。在这里,企业所有者需要根据他们的技能组找到工具,以获取更多数据并构建分析应用程序。
第二阶段:建立分析能力
这是第二阶段,涉及提高转换和分析数据的能力。
在这个阶段,公司使用最适合他们技能的工具。他们开始获取更多数据和构建应用程序。在这里,企业数据仓库和数据湖的功能一起使用。
第三阶段:EDW和Data Lake协作
这一步涉及将数据和分析交给尽可能多的人。在此阶段,数据湖和企业数据仓库开始在联合中工作。两者都在分析中发挥作用。
第四阶段:数据湖的企业能力
在数据湖的成熟阶段,企业功能被添加到Data Lake中。采用信息治理,信息生命周期管理功能和元数据管理。但是,很少有组织可以达到这种成熟水平,但这种情况将在未来增加。
典型的数据湖解决方案
数据湖的概念诞生之后,一些大数据厂商也提出了自己对数据湖的理解,并依托自身核心产品或开源软件,发布了侧重于不同应用场景下的数据湖解决方案。
华为数据湖探索服务(DLI)解决方案基于Apache Spark生态,提供完全托管的大数据处理分析服务。用户使用标准SQL或Spark程序就能完成异构数据源的联邦分析,支持多种数据格式(CSV、JSON、Parquet、ORC、CarbonData等)和云上多种数据源(OBS、DWS、CloudTable、RDS等)。在对AI能力的支持上,实现了将对图片、视频、语言的处理分析能力嵌入在SQL里,存储和计算资源自动实现弹性扩容。目前的应用场景主要包括海量日志分析、异构数据源联邦分析和大数据ETL处理。
AWS数据湖方案主要是基于AWS云服务,该方案提出在 AWS 云上部署高可用的数据湖架构,并提供用户友好的数据集搜索和请求控制台,AWS数据湖方案主要借助了Amazon S3、AWS Glue等AWS 服务来提供诸如数据提交、接收处理、数据集管理、数据转换和分析、构建和部署机器学习工具、搜索、发布及可视化等功能。建立以上基础后,再由用户选择其它大数据工具来扩充数据湖。
Dell EMC 数据湖方案则是基于其存储技术,它将数据湖定义为一个现代化的数据仓库,是可整合数据的横向扩展存储方案。该方案包括了EMC信息基础设施、Pivotal和VMware的存储及大数据分析技术,来实现数据的存储、分析、应用三项核心需求,支持不同的数据存储技术(Data Domain、Isilon、ECS)和数据移动技术(DistCp、snapshot、NDMP)。据称已成功应用于医疗服务领域,用来改进预测性护理工作以及发现数据趋势。
但总体来言,业界提出数据湖解决方案的供应商并不多,大多数企业只是在做这方面的研究和探索,数据湖解决方案中提倡的自助分析、数据沙箱在实际中应用程度也并不高。