数据湖简介

数据湖提供了一个完整而权威的数据存储,可以为数据分析、商业智能和机器学习提供动力

背景图像

数据湖简介

什么是数据湖?

数据湖是保存大量原生原始格式数据的中心位置。与将数据存储在文件或文件夹中的分层数据仓库相比,数据湖使用扁平架构和对象存储来存储数据。对象存储(兼容amazon s3接口)通过元数据标签和唯一标识符来存储数据,便于跨区域定位和检索数据,提高性能。通过利用廉价的对象存储和开放格式,数据湖使许多应用程序能够利用数据。

数据湖是针对数据仓库的局限性而开发的。虽然数据仓库为企业提供了高性能和可扩展的分析,但它们昂贵且专有,无法处理大多数公司正在寻求解决的现代用例。数据湖通常用于将组织的所有数据合并到一个单一的中心位置,在那里数据可以“按原样”保存,而不需要像数据仓库那样预先强加模式(即数据如何组织的正式结构)。细化过程中所有阶段的数据都可以存储在数据湖中:原始数据可以与组织的结构化表格数据源(如数据库表)以及在细化原始数据过程中生成的中间数据表一起摄取和存储。与大多数数据库和数据仓库不同,数据湖可以处理所有数据类型,包括图像等非结构化和半结构化数据,视频、音频和文档——这些对于当今的机器学习和高级分析用例至关重要。

为什么要使用数据湖?

首先也是最重要的是,数据湖是开放格式的,因此用户可以避免被锁定在像数据仓库这样的专有系统中,这在现代数据架构中变得越来越重要。数据湖还具有高度持久性和低成本,因为它们能够扩展和利用对象存储。此外,对非结构化数据的高级分析和机器学习是当今企业最重要的战略重点之一。以各种格式(结构化、非结构化、半结构化)吸收原始数据的独特能力,以及前面提到的其他优点,使数据湖成为数据存储的明确选择。

当架构正确时,数据湖能够:

icon-title
动力数据科学和机器学习

数据湖允许您将原始数据转换为结构化数据,以便低延迟地进行SQL分析、数据科学和机器学习。原始数据可以以低成本无限期保留,以供将来在机器学习和分析中使用。

icon-title
集中、合并和分类您的数据

集中式数据湖消除了数据竖井的问题(如数据复制、多重安全策略和协作困难),为下游用户提供了一个查找所有数据源的单一位置。

icon-title
快速无缝地集成各种数据源和格式

任何和所有数据类型都可以在数据湖中无限期地收集和保留,包括批处理和流数据、视频、图像、二进制文件等。由于数据湖为新数据提供了一个着陆区,因此它总是最新的。

icon-title
通过为用户提供自助服务工具来实现数据的民主化

数据湖非常灵活,能够让拥有完全不同技能、工具和语言的用户同时执行不同的分析任务。

数据湖挑战

尽管数据湖有其优点,但由于缺乏一些关键特性(不支持事务、不执行数据质量或治理以及性能优化不佳),数据湖的许多承诺都没有实现。因此,企业中的大部分数据湖都变成了数据沼泽。

icon-title
可靠性的问题

如果没有适当的工具,数据湖可能会受到数据可靠性问题的影响,这使得数据科学家和分析师很难对数据进行推理。这些问题可能源于难以组合批处理和流数据、数据损坏和其他因素。

icon-title
缓慢的性能

随着数据湖中数据大小的增加,传统查询引擎的性能通常会变慢。一些瓶颈包括元数据管理、不恰当的数据分区等。

icon-title
缺乏安全特性

由于缺乏可见性和删除或更新数据的能力,数据湖很难得到适当的保护和治理。这些限制使得它很难满足监管机构的要求。

由于这些原因,传统的数据湖本身不足以满足寻求创新的业务需求,这就是为什么业务通常在复杂的体系结构中运行,将数据隔离在不同的存储系统中:企业中的数据仓库、数据库和其他存储系统。对于那些渴望利用机器学习和数据分析的力量在未来十年赢得胜利的公司来说,通过将所有数据统一到数据湖中来简化架构是第一步。

湖屋如何解决这些挑战

解决数据湖挑战的答案是湖屋,它在顶部添加了事务性存储层。湖屋使用与数据仓库类似的数据结构和数据管理功能,但直接在云数据湖上运行。最终,湖屋允许传统分析、数据科学和机器学习在同一个系统中共存,所有这些都以开放的形式存在。

湖屋为跨功能企业级分析、BI和机器学习项目提供了广泛的新用例,可以释放巨大的商业价值。数据分析师可以通过使用SQL查询数据湖来获得丰富的见解,数据科学家可以加入并丰富数据集,以更高的准确性生成ML模型,数据工程师可以构建自动化的ETL管道,商业智能分析师可以比以前更快更容易地创建可视化仪表板和报告工具。这些用例都可以在数据湖上同时执行,无需提升和移动数据,甚至在新数据流入时也是如此。

建一个有三角洲湖的湖屋

为了构建一个成功的湖屋,组织已经转向了Delta Lake,这是一个开放格式的数据管理和治理层,结合了数据湖和数据仓库的优点。各行各业的企业都在利用Delta Lake,通过提供可靠的、单一的真相来源来推动协作。通过在数据湖上提供高质量、可靠性、安全性和性能(包括流处理和批处理操作),Delta lake消除了数据竖井,并使整个企业都可以访问分析。通过Delta Lake,客户可以建立一个经济高效、高度可扩展的湖屋,消除数据孤岛,并为最终用户提供自助式分析。

BOB低频彩了解更多关于三角洲湖→

数据湖,数据湖屋,数据仓库

  1. 数据类型
    成本
    格式
    可伸缩性
    面向的用户
    可靠性
    易用性
    性能
  2. 数据湖
    所有类型:结构化数据、半结构化数据、非结构化(原始)数据
    开放格式
    扩展以低成本保存任意数量的数据,而不考虑类型
    有限公司:数据科学家
    质量低,数据沼泽
    困难:如果没有工具来组织和编目数据,探索大量原始数据可能会很困难
    可怜的
  3. 数据lakehouse
    所有类型:结构化数据、半结构化数据、非结构化(原始)数据
    开放格式
    扩展以低成本保存任意数量的数据,而不考虑类型
    统一:数据分析师、数据科学家、机器学习工程师
    高质量、可靠的数据
    简单:提供数据仓库的简单性和结构,并提供数据湖更广泛的用例
  4. 数据仓库
    仅限结构化数据
    $ $ $
    封闭的专有格式
    由于供应商成本,扩大规模的成本将呈指数级增长
    有限公司:数据分析师
    高质量、可靠的数据
    简单:数据仓库的结构使用户能够快速、轻松地访问数据以进行报告和分析

莱克豪斯最佳实践

icon-title
使用数据湖作为所有数据的着陆区

将所有数据保存到数据湖中,而不进行转换或聚合,以保存它以用于机器学习和数据沿袭目的。

icon-title
在包含私人信息的数据进入数据湖之前对其进行屏蔽

个人身份信息(PII)必须匿名,以遵守GDPR,并确保它可以无限期保存。

icon-title
使用基于角色和基于视图的访问控制来保护数据湖

添加基于视图的acl(访问控制级别)可以比单独基于角色的控件更精确地调优和控制数据湖的安全性。

icon-title
通过使用Delta lake为数据湖构建可靠性和性能

到目前为止,大数据的性质使得它很难提供与数据库相同水平的可靠性和性能。Delta Lake为数据湖带来了这些重要特征。

icon-title
对数据湖中的数据进行编目

在输入点使用数据目录和元数据管理工具来支持自助式数据科学和分析。

阅读数据湖最佳实践指南→

壳牌一直在进行数字化转型,这是我们提供更多、更清洁能源解决方案的雄心的一部分。为此,我们在数据湖架构上投入了大量资金。我们的目标是使我们的数据团队能够以尽可能简单的方式快速查询海量数据集。使用标准BI工具对pb级数据集执行快速查询的能力对我们来说是一个游戏规则改变者。

-Dan Jeavons,壳牌公司数据科学总经理

阅读完整故事→

数据湖的历史和演变

早期的数据管理:数据库

在早期的数据管理中关系数据库是公司用来收集、存储和分析数据的主要方法。关系数据库,也称为关系数据库管理系统(rdbms),为公司提供了一种使用结构化查询语言(SQL)存储和分析关于客户的高度结构化数据的方法。多年来,关系数据库足以满足公司的需求:需要存储的数据量相对较小,而且关系数据库简单可靠。直到今天,关系数据库仍然是存储不太大的高度结构化数据的绝佳选择。然而,数据的速度和规模即将爆发。

互联网的兴起,以及数据孤岛

随着互联网的兴起,公司发现自己被淹没在客户数据中。要存储所有这些数据,单一的数据库已经不够了。公司通常建立多个按业务线组织的数据库来保存数据。随着数据量的不断增长,公司最终可能会拥有几十个用户和用途不同的不连接的数据库。

一方面,这是一件幸事:有了更多更好的数据,公司能够比以往任何时候都更精确地定位客户并管理他们的运营。另一方面,这导致了数据仓库:分散的、碎片化的数据存储。由于没有办法集中和综合他们的数据,许多公司未能将其综合成可操作的见解。这种痛苦导致了数据仓库的兴起。数据仓库

数据仓库的诞生是为了将公司的结构化数据统一到一个屋檐下

由于有如此多的数据存储在不同的源系统中,公司需要一种方法来集成它们。“360度的客户视图”的想法成为了当时的想法,数据仓库的诞生就是为了满足这一需求,并将整个组织中的不同数据库统一起来。

数据仓库作为一种技术出现,它将组织的关系数据库集合聚集在一个保护伞下,允许将数据作为一个整体进行查询和查看。起初,数据仓库通常运行在Teradata和Vertica等供应商提供的昂贵的基于本地设备的硬件上,后来在云中可用。从90年代末开始,数据仓库成为大公司最主要的数据架构。该技术的主要优势包括:

  • 集成多个数据源
  • 为读访问优化的数据
  • 能够快速运行特别分析查询
  • 数据审计、治理和沿袭

数据仓库很好地实现了它们的目的,但随着时间的推移,这种技术的缺点变得很明显。

  • 无法存储非结构化的原始数据
  • 昂贵的专有硬件和软件
  • 由于存储和计算能力的紧密耦合,难以扩展

Apache Hadoop™和Spark™支持非结构化数据分析,为现代数据湖奠定了基础

随着21世纪初“大数据”的兴起,企业发现他们需要对数据集进行分析,而这些数据集无法在一台计算机上容纳。此外,他们需要分析的数据类型并不总是结构整齐——公司也需要利用非结构化数据的方法。为了使大数据分析成为可能,并解决对数据仓库成本和供应商锁定的担忧,Apache Hadoop™是一种开源的分布式数据处理技术bob下载地址。

什么是Hadoop?

Apache Hadoop™是一个用于大数据分析的开源软件集合,它允bob下载地址许大型数据集通过并行工作的计算机集群进行处理。它包括Hadoop MapReduce,HDFS (Hadoop Distributed File System)而且YARN(另一个资源协商者)。HDFS允许将单个数据集存储在许多不同的存储设备上,就像它是单个文件一样。它与MapReduce算法协同工作,MapReduce算法决定如何将大型计算任务(如统计计数或聚合)拆分为可以在计算集群上并行运行的小得多的任务。

Hadoop的引入是大数据分析的分水岭,主要有两个原因。首先,这意味着一些公司可以从昂贵的专有数据仓库软件转向运行免费开源Hadoop的内部计算集群。bob下载地址其次,它允许公司以一种以前不可能实现的方式分析大量非结构化数据。在Hadoop之前,拥有数据仓库的公司通常只能分析高度结构化的数据,但现在他们可以从更大的数据池中提取价值,其中包括半结构化和非结构化数据。一旦公司有能力分析原始数据,收集和存储这些数据就变得越来越重要——这为现代数据湖奠定了基础。

早期的数据湖建立在Hadoop上

早期建立在Hadoop MapReduce和HDFS上的数据湖取得了不同程度的成功。许多早期的数据湖使用Apache Hive™,使用户能够使用面向hadoop的SQL引擎查询数据。一些早期的数据湖成功了,而另一些则由于Hadoop的复杂性和其他因素而失败了。直到今天,许多人仍然将“数据湖”一词与Hadoop联系在一起,因为它是第一个能够收集和分析大量非结构化数据的框架。然而,今天,许多现代数据湖架构已经从本地Hadoop转移到在云中运行Spark。尽管如此,这些最初的尝试仍然很重要,因为这些Hadoop数据湖是现代数据湖的前身。随着时间的推移,Hadoop的流行程度趋于平稳,因为它存在大多数组织无法克服的问题,比如性能较慢,安全性有限,以及缺乏对流等重要用例的支持。

Apache Spark:支bob体育亚洲版持现代数据湖的统一分析引擎

在Hadoop引入后不久,Apache火花介绍了。Spark进一步发展了MapReduce的思想,为大数据上的分布式计算提供了一个强大的通用框架。随着时间的推移,Spark在数据从业者中越来越受欢迎,这主要是因为它易于使用,在基准测试中表现良好,并提供了额外的功能,增加了其实用性并扩大了其吸引力。例如,Spark的交互模式使数据科学家能够对庞大的数据集进行探索性数据分析,而不必花费时间在编写复杂代码以将数据转换为可靠源等低价值工作上。Spark还使大规模训练机器学习模型、使用SQL查询大数据集、使用Spark Streaming快速处理实时数据成为可能,显著增加了该技术的用户数量和潜在应用。

自推出以来,Spark的受欢迎程度越来越高,它已经成为大数据处理的事实上的标准,这在很大程度上归功于社区成员和专注的开源贡献者的忠实基础。bob下载地址如今,许多现代数据湖架构使用Spark作为处理引擎,使数据工程师和数据科学家能够执行ETL、优化数据并训练机器学习模型。

数据湖的挑战是什么?

挑战#1:数据可靠性

如果没有适当的工具,数据湖可能会出现可靠性问题,这使得数据科学家和分析师很难对数据进行推理。在本节中,我们将探讨数据湖上数据可靠性问题的一些根本原因。

重新处理由于管道损坏的数据

对于传统的数据湖,需要不断地重新处理丢失或损坏的数据可能成为一个主要问题。这种情况经常发生在某人正在向数据湖写入数据,但由于硬件或软件故障,写入作业没有完成。在这种情况下,数据工程师必须花费时间和精力删除任何损坏的数据,检查剩余数据的正确性,并设置一个新的写作业来填充数据中的任何漏洞。

三角洲湖通过使数据湖具有事务性来解决再处理问题,这意味着在数据湖上执行的每个操作都是原子的:它要么完全成功,要么完全失败。没有中间地带,这很好,因为您的数据湖的状态可以保持干净。因此,数据科学家不必因为部分写入失败而花费时间繁琐地重新处理数据。相反,他们可以把时间用于在数据中寻找见解,并建立机器学习模型,以推动更好的业务成果。

数据验证和质量执行

在考虑数据应用程序时,而不是软件应用程序,数据验证是至关重要的,因为没有它,就无法衡量数据中的某些内容是否损坏或不准确,从而最终导致低可靠性。使用传统的软件应用程序,很容易知道什么时候出了问题——例如,你可以看到网站上的按钮不在正确的位置。然而,对于数据应用程序,数据质量问题很容易不被发现。边缘情况、损坏的数据或不正确的数据类型可能会在关键时刻浮出水面,破坏数据管道。更糟糕的是,像这样的数据错误可能不会被发现,并扭曲您的数据,导致您做出糟糕的业务决策。

解决方案是使用数据质量强制工具,如Delta Lake的模式强制和模式进化来管理数据质量。这些工具,加上Delta Lake的ACID事务,使您能够完全信任您的数据,即使它在整个生命周期中不断发展和变化,并确保数据的可靠性。BOB低频彩了解更多三角洲湖

结合批处理和流数据

随着实时收集的数据量不断增加,数据湖需要能够轻松捕获流数据并将其与历史批量数据结合起来,以便始终保持更新。传统上,许多系统架构师已经转向lambda体系结构来解决这个问题,但是lambda体系结构需要两个单独的代码基(一个用于批处理,一个用于流处理),并且很难构建和维护。

三角洲湖,每个表都可以轻松地集成这些类型的数据,作为批处理和流源和接收器。Delta Lake能够通过ACID事务的两个特性来实现这一点:一致性和隔离性。这些属性确保每个查看器都能看到一致的数据视图,即使多个用户同时修改表,甚至在新数据同时流入表时也是如此。

批量更新、合并和删除

数据湖可以容纳大量的数据,公司需要可靠地对这些数据执行更新、合并和删除操作,以便始终保持最新。对于传统的数据湖,执行这样的简单操作并确认它们成功发生是非常困难的,因为没有机制来确保数据的一致性。如果没有这样的机制,数据科学家就很难对他们的数据进行推理。

数据湖上的更新、合并和删除成为公司痛点的一种常见方式是与CCPA和GDPR等数据法规有关。根据这些规定,公司有义务根据客户的要求删除客户的所有信息。对于传统的数据湖,要实现这一要求有两个挑战。公司需要能够:

  1. 使用SQL查询数据湖中的所有数据
  2. 逐行删除与该客户相关的所有数据,这是传统分析引擎所不具备的功能

三角洲湖通过允许数据分析师使用SQL轻松地查询数据湖中的所有数据,解决了这个问题。然后,分析师可以执行更新,由于Delta Lake的ACID事务,使用单个命令合并或删除数据。阅读更多关于如何使您的数据湖CCPA符合统一的数据和分析方法。

挑战#2:查询性能

查询性能是数据湖分析工具用户满意度的关键驱动因素。对于使用SQL执行交互式探索性数据分析的用户来说,对常见查询的快速响应是必不可少的。

数据湖可以容纳数百万个文件和表,因此对数据湖查询引擎进行大规模性能优化非常重要。下面将讨论数据湖可能出现的一些主要性能瓶颈。

小文件

由于I/O吞吐量的限制,在数据湖中放置大量小文件(而不是为分析而优化的大文件)会大大降低性能。三角洲湖使用小文件压缩将小文件合并为针对读访问进行优化的大文件。

对磁盘进行不必要的读取

从存储中反复访问数据会显著降低查询性能。三角洲湖使用缓存选择性地将重要的表保存在内存中,以便更快地回收它们。它还使用数据跳跃将读吞吐量提高了15倍,以避免处理与给定查询不相关的数据。

删除文件

在使用云存储的现代数据湖上,被“删除”的文件实际上可以在数据湖中保留长达30天,从而产生不必要的开销,降低了查询性能。三角洲湖提供VACUUM命令永久删除不再需要的文件。

数据索引和分区

为了获得适当的查询性能,应该按照最可能分组的维度对数据湖进行适当的索引和分区。三角洲湖可以创建和维护为分析优化的索引和分区。

元数据管理

增长到几拍字节或更多的数据湖可能成为瓶颈不是靠数据本身,而是靠伴随数据的元数据。三角洲湖使用Spark提供可扩展的元数据管理,就像数据本身一样分布其处理。

挑战#3:治理

传统上,数据湖很难得到适当的保护,并为治理需求提供足够的支持。GDPR和CCPA等法律要求,如果客户提出要求,公司可以删除与客户有关的所有数据。在常规Parquet数据湖中删除或更新数据是计算密集型的,有时几乎是不可能的。所有与被请求的个人数据有关的文件都必须被识别、吸收、过滤、作为新文件写入,并删除原始文件。这必须以一种不会破坏或破坏表上查询的方式完成。没有简单的删除数据的方法,组织受到监管机构的高度限制(经常被罚款)。

数据湖还使以合理的成本保存数据的历史版本具有挑战性,因为它们需要手动快照,并存储所有这些快照。

数据湖最佳实践

正如前一节所分享的,湖屋是一种平台架构,它使用与数据仓库中类似的数据结构和数据管理功能,但直接在用于bob体育客户端下载云数据湖的低成本、灵活的存储上运行。对非结构化数据进行高级分析和机器学习是当今企业最重要的战略优先事项之一,由于能够以各种格式(结构化、非结构化、半结构化)吸收原始数据,数据湖是这种新的简化架构的明确选择。最终,以数据湖为中心的Lakehouse架构允许传统分析、数据科学和机器学习在同一个系统中共存。

使用数据湖作为原始数据的基础和着陆区

在向数据湖中添加新数据时,不要对原始数据执行任何数据转换(个人身份信息除外,请参见下文)。数据应该以其原生格式保存,这样就不会因聚合或以其他方式修改数据而无意中丢失信息。例如,即使清除数据中的空值,也可能不利于优秀的数据科学家,他们似乎不仅可以从数据中挤出额外的分析价值,甚至可以从缺乏数据中挤出额外的分析价值。

然而,数据工程师确实需要从包含PII(个人身份信息)的任何数据源中剥离PII(个人身份信息),用唯一的ID替换它,然后才能将这些数据源保存到数据湖。这一过程维护了个人与其数据之间的联系,用于分析目的,但也确保了用户隐私,并遵守GDPR和CCPA等数据法规。由于数据湖的主要目标之一是无限期地持久化原始数据资产,因此这一步可以保留原本需要丢弃的数据。

使用基于角色和视图的访问控制来保护您的湖屋

传统的基于角色的访问控制(如AWS上的IAM角色和Azure上的基于角色的访问控制)为管理数据湖安全提供了一个很好的起点,但它们对许多应用程序来说不够细粒度。相比之下,基于视图的访问控制允许使用SQL视图将权限边界精确分割到单个列、行或笔记本单元格级别。SQL是实现这种模型的最简单的方法,因为它的普遍性和基于条件和谓词进行过滤的简单能力。

基于视图的访问控制可在现代统一数据平台上使用,并且可以通过凭据传递与云本地基于角色的控制集成,从而无需移交敏感的云提供商凭据。bob体育客户端下载设置完成后,管理员可以开始将用户映射到基于角色的权限,然后加入经过微调的基于视图的权限,根据每个用户的特定情况扩展或收缩权限集。您应该定期检查访问控制权限,以确保它们不会过时。

通过使用Delta Lake将可靠性和ACID事务构建到您的Lake house中

直到最近,ACID事务还不能在数据湖上实现。然而,随着开源的Delta Lake的引入,它们现在可以使用,为数据湖带来了数据仓库的可靠性和一致性。bob下载地址

ACID属性(原子性、一致性、隔离性和持久性)是数据库事务的属性,通常在传统的关系数据库管理系统(rdbms)中可以找到。它们对于数据库、数据仓库和数据湖都是可取的,因为它们通过防止前面提到的一些数据污染来源来确保数据的可靠性、完整性和可信赖性。

Delta Lake构建在开源Parquet(已经是一种高性能文件格式)的速度和可靠性基础上,添加了事务bob下载地址保证、可扩展元数据处理以及批处理和流处理统一。它还100%兼容Apache Spark API,因此它可以与Spark统一分析引擎无缝工作。bob体育亚洲版BOB低频彩与Michael Armbrust一起了解更多关于Delta Lake的信息网络研讨会题为Delta Lake:数bob下载地址据湖的开源可靠性,或者看看三角洲湖的快速入门指南在这里。

将你湖屋中的数据分类

为了实现成功的湖屋策略,重要的是用户在新数据进入数据湖时正确地对其进行分类,并不断地对其进行管理,以确保其保持更新。数据目录是一个有组织的、全面的表元数据存储,包括表和列描述、模式、数据沿袭信息等等。它是下游消费者(例如BI和数据分析师)发现哪些数据可用、它意味着什么以及如何使用它的主要方式。它应该在中央平台或共享存储库中供用户使用。bob体育客户端下载

在输入数据时,数据管理员应该鼓励(或者可能要求)用户用关于新数据源或表的信息(包括业务单元、项目、所有者、数据质量级别等等)“标记”它们,以便对它们进行排序和轻松发现。在理想的情况下,这种注释精神会发展成为全公司的承诺,即仔细标记新数据。至少,数据管理员可以要求对数据湖的任何新提交进行注释,并且随着时间的推移,希望培养一种协作管理的文化,在这种文化中,对数据进行标记和分类成为一种共同的义务。

有许多软件可以使数据编目更容易。主要的云提供商提供他们自己的云服务专有数据目录软件产品,即Azure数据目录和AWS Glue。除此之外,Apache Atlas还可以作为开源软件使用,其他选择包括Alation、Collbob下载地址ibra和Informatica等公司的产品。

先从湖边小屋开始

现在你了解了建造一个湖屋的价值和重要性,下一步是建立你的湖屋的基础三角洲湖.查看我们的网站了解更多信息或BOB低频彩免费试用Databricks

准备开始了吗?