数据湖(Data Lake)-剑指下一代数据仓库

张小涛涛 2019-09-13

欢迎扫码关注我的VX公众号,回复【JAVAPDF】可以获得一份200页秋招面试题~

数据湖(Data Lake)-剑指下一代数据仓库

数据湖是数据仓库的补充,是为了解决数据仓库漫长的开发周期,高昂的开发、维护成本,细节数据丢失等问题出现的。

数据湖大多是相对于传统基于RDBMS的数据仓库,而从2011年前后,也就是数据湖概念出现的时候,很多数据仓库逐渐迁移到以Hadoop为基础的技术栈上,而且除了结构化数据,半结构化、非结构数据也逐渐的存储到数据仓库中,并提供此类服务。这样的数据仓库,已经具有了数据湖的部分功能。

数据湖正在成为一种越来越流行的大数据解决方案,而数据湖这个词已经被大数据供应商赋予了太多不同的含义,如果有什么工作是传统数据仓库做不了的,那就把它塞进数据湖,以至于数据湖已经变成了一个定义模糊的概念。数据湖是不是就是传说中的银弹,可以解决所有数据仓库不能解决的问题呢。本文将讲述,关于数据湖的定义,与数据仓库的区别,以及现实中的数据湖解决方案和未来会怎样发展。

什么是数据湖

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

可见,企业使用数据湖架构,核心出发点就是把不同结构的数据统一存储,使不同数据有一致的存储方式,在使用时方便连接,真正解决数据集成问题。因此,数据湖架构最主要的特点,一是支持异构数据聚合,二是无需预定义数据模型即可进行数据分析。

数据湖从本质上来讲,是一种企业数据架构方法,物理实现上则是一个数据存储平台,用来集中化存储企业内海量的、多来源,多种类的数据,并支持对数据进行快速加工和分析。从实现方式来看,目前Hadoop是最常用的部署数据湖的技术,但并不意味着数据湖就是指Hadoop集群。为了应对不同业务需求的特点,MPP数据库+Hadoop集群+传统数据仓库这种“混搭”架构的数据湖也越来越多出现在企业信息化建设规划中。

数据湖(Data Lake)-剑指下一代数据仓库

Data Lake是一个存储库,可以存储大量结构化,半结构化和非结构化数据。它是以原生格式存储每种类型数据的地方,对帐户大小或文件没有固定限制。它提供高数据量以提高分析性能和本机集成。

Data Lake就像一个大型容器,与真正的湖泊和河流非常相似。就像在湖中你有多个支流进来一样,数据湖有结构化数据,非结构化数据,机器到机器,实时流动的日志。

Data Lake使数据民主化,是一种经济有效的方式来存储组织的所有数据以供以后处理。研究分析师可以专注于在数据中找到意义模式而不是数据本身。

与数据存储在文件和文件夹中的分层数据仓库不同,Data湖具有扁平的架构。Data Lake中的每个数据元素都被赋予唯一标识符,并标记有一组元数据信息。

数据湖与传统数据仓库的区别

数据仓库是一个优化的数据库,用于分析来自事务系统和业务线应用程序的关系数据。事先定义数据结构和 Schema 以优化快速 SQL 查询,其中结果通常用于操作报告和分析。数据经过了清理、丰富和转换,因此可以充当用户可信任的“单一信息源”。

数据湖有所不同,因为它存储来自业务线应用程序的关系数据,以及来自移动应用程序、IoT 设备和社交媒体的非关系数据。捕获数据时,未定义数据结构或 Schema。这意味着您可以存储所有数据,而不需要精心设计也无需知道将来您可能需要哪些问题的答案。您可以对数据使用不同类型的分析(如 SQL 查询、大数据分析、全文搜索、实时分析和机器学习)来获得见解。

数据湖与数据仓库这两个概念很容易被混淆,它们的区别主要有三个方面:

一是存储数据类型不同。数据仓库中存储的主要是结构化数据,对于加载到数据仓库中的数据,首先需要定义数据存储模型。而数据湖以其原生格式保存大量原始数据,包括结构化的、半结构化的和非结构化的数据,并且在使用数据之前,不对数据结构进行定义。

二是数据处理模式不同。数据仓库是高度结构化的架构,数据在清洗转换之后才会加载到数据仓库,用户获得的是处理后数据。而在数据湖中,数据直接加载到数据湖中,然后根据分析的需要再处理数据。

三是服务对象不同。从用户差异上来看,数据仓库适合企业中大数据产品开发人员和业务用户。而数据湖最适合数据分析师或数据科学家,他们直接基于数据沙箱做自由探索和分析,这些人要求有技术背景,会写代码或熟悉SQL。

通过以上对比,可见数据湖不是简单的数据仓库升级版,两者有各自的存在必要。与此同时,还有一种数据沼泽的提法,这是指一种设计不良、未充分归档或未有效维护的数据湖,用户无法有效地分析和利用其中存储的数据。

更为详细的区别:

数据湖(Data Lake)-剑指下一代数据仓库

为何选择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 Lake的核心概念,人们需要了解这些概念才能完全理解Data Lake的架构:

  • 数据摄取

数据提取允许连接器从不同的数据源获取数据并加载到Data湖中。

数据提取支持:所有类型的结构化,半结构化和非结构化数据。批量,实时,一次性负载等多次摄取;许多类型的数据源,如数据库,Web服务器,电子邮件,物联网和FTP。

  • 数据存储

数据存储应该是可扩展的,提供经济高效的存储并允许快速访问数据探索。它应该支持各种数据格式。

  • 数据治理

数据治理是管理组织中使用的数据的可用性,可用性,安全性和完整性的过程。

  • 安全

需要在Data Lake的每个层中实现安全性。它始于存储,发掘和消耗。基本需求是停止未授权用户的访问。它应该支持不同的工具来访问数据,易于导航GUI和仪表板。

身份验证,会计,授权和数据保护是数据湖安全的一些重要特性。

  • 数据质量:

数据质量是Data Lake架构的重要组成部分。数据用于确定商业价值。从劣质数据中提取洞察力将导致质量差的洞察力。

  • 数据发现

数据发现是您开始准备数据或分析之前的另一个重要阶段。在这个阶段,标记技术用于表达数据理解,通过组织和解释数据湖中摄取的数据。

  • 数据审计

两个主要的数据审计任务是跟踪对关键数据集的更改:跟踪重要数据集元素的更改;捕获如何/何时/以及更改这些元素的人员。

数据审计有助于评估风险和合规性。

  • 数据沿袭

该组件处理数据的来源。它主要涉及随着时间推移它的推动者以及它发生了什么。它简化了从始发地到目的地的数据分析过程中的错误更正。

  • 数据探索

这是数据分析的开始阶段。在开始数据探索之前,确定正确的数据集是至关重要的。

所有给定的组件需要协同工作,在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)。据称已成功应用于医疗服务领域,用来改进预测性护理工作以及发现数据趋势。

但总体来言,业界提出数据湖解决方案的供应商并不多,大多数企业只是在做这方面的研究和探索,数据湖解决方案中提倡的自助分析、数据沙箱在实际中应用程度也并不高。

数据湖的未来

数据湖相对于以往的关系型数据库、传统式数据仓库,更多体现的是一种数据存储技术上的融合。数据湖的提出,改变了用户使用数据的方式,同时,数据湖也整合了各种类型数据的分析和存储,用户不必为不同的数据构建不同数据存储库。

但是,现阶段数据湖更多是作为数据仓库的补充,它的用户一般只限于专业数据科学家或分析师。数据湖概念和技术还在不断演化,不同的解决方案供应商也在添加新的特性和功能,包括架构标准化和互操作性、数据治理要求、数据安全性等。

未来,数据湖可能会进一步发展,作为一种云服务随时按需满足对不同数据的分析、处理和存储需求,数据湖的扩展性,可以为用户提供更多的实时分析,基于企业大数据的数据湖正在向支持更多类型的实时智能化服务发展, 将会为企业现有的数据驱动型决策制定模式带来极大改变。

结束语

从理论上讲,数据湖是一种存储大量复杂格式数据,避免企业数据孤岛化的数据架构方案,它一方面降低数据集成成本,另一方面为用户提供更灵活的数据访问支持。但同时,各类数据湖解决方案目前在技术实现上还不够成熟,仍处在演化过程中,其访问控制、数据安全、数据质量、元数据管理等特性仍需要完善。

在大数据+AI时代里,从数据仓库到数据湖,不仅仅是数据存储架构的变革,更是大数据思维方式的升级。随着基于深度学习技术的AI应用需求广泛出现,需要提供一个数据平台,支持对原始数据的轻松访问,开展算法模型训练和验证,数据湖解决方案将可能成为解决AI应用需求最好的选择。

— THE END —

数据湖(Data Lake)-剑指下一代数据仓库

相关推荐