数据和商业智能词汇表术语

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
V
W
X

数据湖

什么是数据湖?

数据湖是存储结构化和非结构化信息的地方,通常以文件或 blob 的形式存储。您可以将数据湖视为所有数据的倾倒场,无论其结构、格式或预期用途如何。“湖”的概念在很大程度上是营销术语,但水生比较来自于数据湖中的信息比更严格和分层的数据仓库以更“自然”的状态流动的想法。并且因为它们可以保存不需要遵守特定模式的原始数据,因此在扩展到存储大量信息(达到 PB 级)时,数据湖往往具有成本效益。

由于一开始无需定义模式,因此数据湖的设置可能很简单;您可以加载数据以供特定用途或只是为了将来使用而保留数据,即使您尚不确定需要对其运行哪种类型的查询。但是,一旦您完成设置,配置使您的数据湖真正有用的工具可能会变得复杂且昂贵——通常需要数据工程师的专业知识。这些工程师将根据需要设置ETL,甚至对您的数据湖的部分数据训练机器学习模型。

数据湖依赖于读时模式系统,这意味着数据只有在从该数据湖中提取以进行查询时才根据模式进行验证,而不是在首次写入时进行验证。然而,这确实意味着从数据湖中提取和利用数据需要更多的工作。仅仅因为数据湖允许更大的灵活性并不意味着您应该将所有数据治理都抛到九霄云外;进入您湖泊的信息仍然应该是高质量的,经过清理和注释,以便您的 ETL 或查询引擎(以及扩展而言,需要数据的人员)可以很好地利用它。

何时使用数据湖

如果您需要分析大量半结构化和/或非结构化信息(例如,如果您是一家物联网公司),那么数据湖可能是一个不错的选择。由于在写入数据时无需强制执行总体模式,因此如果您同时处理许多不同类型的数据源(例如流数据、结构化应用程序数据库、来自物联网设备的数据、社交媒体或网络流量),数据湖也可能是一种有效的解决方案。

最终,具有复杂数据需求的组织可能不会完全依赖数据湖或数据仓库(甚至数据湖仓),而是构建可以结合两者的数据架构,同时考虑到组织的总体战略、将使用它的人员的需求以及这些人需要执行的查询类型。

设置数据湖

假设您要设置一个数据湖。从广义上讲,该过程看起来像这样

  1. 选择云存储提供商。 有一些数据湖服务可以帮助您设置您需要的各种层和工具,但其核心是您的“湖”是您的存储层——无论您将结构化和非结构化数据保存在哪里(例如在 AWS S3 或 Microsoft Azure 中)。

  2. 确定您的数据来源。 这些可能是结构化的(例如应用程序数据库)、半结构化的(例如 XML 或 JSON 文件)或非结构化的(例如社交媒体帖子、图像或文本文档)。

  3. 清理并从这些来源摄取数据。 在此阶段,您将注释这些数据源(尤其是半结构化和非结构化数据源),添加元数据并根据您可能对该数据提出的问题类型对其进行标记和分类。一旦数据被清理干净,这些注释副本就会被加载到您的数据湖中,可能以列式格式(如 parquet)加载,这种格式更适合分析查询。

  4. 根据需要创建 ETL 并查询您的数据湖。 由于数据湖混合了格式且通常是非结构化的性质,工程师和数据科学家通常是直接访问数据湖的人员。像您的数据分析师这样的人员将通过使用 Presto 或 SparkSQL 等查询引擎来查询数据湖,这些引擎在数据湖上运行 ETL,定期构建其结构,以便可以通过 SQL 查询数据。这些查询在数据的清理、注释、列式副本上执行,而不是在原始数据源本身上执行(原始数据和清理后的数据都存储在您的数据湖中)。

关键文章

相关术语

延伸阅读