什么是数据湖?

数据湖以非层次结构的格式存储大量数据。

学习目标

阅读本文后,您将能够:

  • 定义“数据湖”
  • 了解如何在对象存储中使用数据湖
  • 对比数据湖与数据仓库

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是数据湖?

数据湖是一种以自然或原始格式存储数据的存储库。数据湖也称为“数据池”,它是对象存储的一个功能。对象存储是一种基于的存储系统,设计用于处理大量结构化数据和非结构化数据。

与更传统的基于文件的存储系统相比,数据湖的非层次结构使其成为一种灵活且可扩展的选项。不过,由于数据湖的组织设计和复杂的数据出口定价,从数据湖中梳理和检索数据可能不仅速度缓慢,而且成本高昂。

数据湖如何存储数据?

要了解数据湖如何存储数据,首先一定要了解对象存储的工作原理。传统的基于文件的存储将数据存储在文件夹和文件的层次结构中,与此不同的是,对象存储在同一个位置收集单个数据或对象,并使用可自定义的元数据进行标记。

元数据,也就是用于识别文件的信息(例如名称、类型、大小,或唯一标识符),可帮助用户或应用程序找到和检索数据,而无需遵循文件夹之间的特定路径。由于数据湖设计用于容纳大量数据,分配给每个对象的元数据可能会非常详细,这有助于加快检索速度。

为了说明层次结构与非层次结构数据存储之间的差异,请设想一下,Bob 想要存储数千张黑胶唱片。如果采用层次结构存储系统,他可以将按照音乐创作风格划分的唱片分类放入大储物箱或文件夹。虽然这让 Bob 能够快速找到任意专辑,但随着他购买的该创作风格的唱片数量不断增加,储物箱可能会空间不足。这种方法类似于基于文件的存储,即必须将数据组织并存储在某个特定的位置。

相比之下,如果采用非层次结构存储系统,这让 Bob 能够按照自己想要的任何顺序将所有唱片放在一个房间或数据湖中。每张唱片都会贴上显示其创作风格的标签。虽然这会减缓识别单张唱片的速度,但让 Bob 能够将更多唱片添加到他的收藏集中,而无需将这些唱片存储在特定的储物箱中。这种方法类似于对象存储,即可以在同一个位置存储大量数据。

有关此流程的深入阐述,请阅读什么是对象存储?

什么是数据湖架构?

数据湖架构是指用于在数据湖中存储、转换、访问和保护数据的各种流程和工具。虽然此架构可能位于云端或本地,但它通常会共享以下几个组件:

  • Data sources: The original format of the data, whether structured (i.e. data that fits into a tabular structure, like SQL databases), semi-structured (i.e. data that may not easily fit into a tabular structure, like HTML files), or unstructured (e.g. videos, audio files, and images)
  • 数据提取:提取、加载、转换 (ELT) 是一个多步骤流程,它首先将数据从其原始源移动到数据湖的原始区域,然后对数据进行更改,提高可用性
  • 数据摄取和存储:将数据添加到数据湖的方式,要么实时摄取,即按需添加数据,要么批量摄取,即定期添加数据组。无论采用哪种摄取方式,所有数据最初都存储在原始数据存储部分中。换句话说,将所有数据以原来的原始格式添加到数据湖
  • 数据保留与编目:向原始数据添加元数据的流程,以便更易于访问和检索数据
  • 数据处理:对原始数据进行不同的转换,具体包括数据清理(移除不准确或不一致的数据)、数据标准化(重新格式化数据,使其以相同的形式存在)、数据丰富(添加上下文或必要的信息),以及数据结构化(将半结构化数据或非结构化数据转换为结构化数据)
  • 数据溯源:跟踪数据从原来的原始格式转变为转换后的状态的流程
  • 数据安全与治理:确保数据安全和访问控制、数据溯源、数据质量以及数据分析和审计的多种不同的方法

数据湖用例

数据湖的用途多种多样,包括数据分析和探索、物联网 (IoT) 管理、个性化消费者体验、高级机器学习等等。数据湖还有助于训练人工智能 (AI) 模型,这些模型通常需要使用非常大型的数据集才能生成有效的输出。

例如,假设一家旅行社希望为其客户提供量身定制的自动旅游推荐。通过数据湖,他们可以摄取大量与常见旅游模式、热门目的地、停留时长、住宿类型以及旅游活动相关的客户数据。然后,他们可以使用这些数据来训练 AI 模型,以制定更高级的旅游建议,并在理想情况下确保提高客户满意度。

数据湖有哪些优势?

  • 灵活:根据设计,数据湖可以以任何格式存储数据,无需压缩文件或重新格式化
  • 可扩展:数据湖可以处理几乎无限数量的数据,对于需要处理和存储大量且不断增长的数据的组织来说,这是更受欢迎的选择
  • 可搜索:数据湖可通过高度可自定义的详细元数据,实现简单直接的数据检索
  • 简洁:所有数据都存储在同一个数据湖中,无需复杂的分层配置

数据湖有哪些局限性?

  • 可靠性问题:如果向存储库添加的数据过多,却没有进行有效分类和转换,数据湖可能会变成数据沼泽,进而导致数据湖不可靠且难以使用
  • 性能缓慢:虽然数据湖设计用于大规模运行,但是过多的数据或无效的查询引擎可能会影响查询用时和整体性能
  • 数据出口费用:数据出口(或数据传输)是指从企业的云存储提供商检索数据的流程。云提供商通常会针对数据传输收取费用,企业可能因需要迁移的数据量而导致出口费用飙升

数据湖与数据仓库的对比

数据湖是结构化数据和非结构化数据的大型存储库。其主要优势是能够以经济实惠的方式运行大规模数据,但与其他类型的数据处理和存储解决方案相比,数据量和分类系统的复杂性可能会导致数据湖效率低下。

与数据湖一样,数据仓库也是大型数据存储库。数据仓库的不同之处在于,它仅存储结构化数据,并使用传统的文件层次结构来组织、存储和检索数据。虽然这种架构会提高数据检索速度和性能,但其扩展成本可能比数据湖高得多。

一些云供应商提供一种称为数据湖屋的混合方法,兼具数据湖与数据仓库的核心功能和优势。组织可以使用数据湖屋来处理和存储所有类型的数据,而不是将结构化数据与非结构化数据分别存储在单独、分散的系统中。如此一来,既拥有数据仓库的组织功能和高性能,又具备数据湖低成本高收益的可扩展性。这种方法还让组织能够利用自动化数据治理和合规工具,确保提高数据完整性和可靠性。

Cloudflare 是否支持数据湖?

Cloudflare R2 is a no-egress fee object storage solution that allows organizations to develop their own data lakes. Backed by Cloudflare’s global network, R2 helps ensure optimum data durability and reliability by replicating objects multiple times, so that they remain easily accessible and highly resistant to regional failure and data loss.

进一步了解 R2 以及全球连通云如何降低在不同云之间移动数据时的出口费用。