什么是数据湖?

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

学习目标

阅读本文后,您将能够:

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

复制文章链接

什么是数据湖?

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

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

数据湖如何存储数据?

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

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

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

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

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

什么是数据湖架构?

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

  • 数据源:数据的原始格式,包括结构化(即易于嵌入表格结构的数据,例如 SQL 数据库)、半结构化(即可能不易嵌入表格结构的数据,例如 HTML 文件),或非结构化(例如视频、音频文件和图像)数据
  • 数据提取:提取、加载、转换 (ELT) 是一个多步骤流程,它首先将数据从其原始源移动到数据湖的原始区域,然后对数据进行更改,提高可用性
  • 数据摄取和存储:将数据添加到数据湖的方式,要么实时摄取,即按需添加数据,要么批量摄取,即定期添加数据组。无论采用哪种摄取方式,所有数据最初都存储在原始数据存储部分中。换句话说,将所有数据以原来的原始格式添加到数据湖
  • 数据保留与编目:向原始数据添加元数据的流程,以便更易于访问和检索数据
  • 数据处理:对原始数据进行不同的转换,具体包括数据清理(移除不准确或不一致的数据)、数据标准化(重新格式化数据,使其以相同的形式存在)、数据丰富(添加上下文或必要的信息),以及数据结构化(将半结构化数据或非结构化数据转换为结构化数据)
  • 数据溯源:跟踪数据从原来的原始格式转变为转换后的状态的流程
  • 数据安全与治理:确保数据安全和访问控制、数据溯源、数据质量以及数据分析和审计的多种不同的方法

数据湖用例

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

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

数据湖有哪些优势?

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

数据湖有哪些局限性?

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

数据湖与数据仓库的对比

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

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

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

Cloudflare 是否支持数据湖?

Cloudflare R2 是一个无出口费用的对象存储解决方案,让组织能够开发自己的数据湖。借助 Cloudflare 全球网络的支持,R2 通过多次复制对象,有助于确保最优的数据耐用性和可靠性,使数据仍然易于访问且对区域故障和数据丢失具有很强的抵抗力。

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