数据和商业智能术语表

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 查询数据。这些查询将针对经过清理和注释的列式数据副本执行,而不是直接针对原始数据源本身(原始数据和清理后的数据都存储在你的数据湖中)。

核心文章

相关术语

延伸阅读

这有帮助吗?

感谢您的反馈!
© . This site is unofficial and not affiliated with Metabase, Inc.