数据仓库、数据湖与湖仓一体

俯拍湖边穿过森林的公路

作者

Matthew Kosinski

Staff Editor

IBM Think

数据仓库、数据湖与湖仓一体

数据仓库、数据湖和湖仓一体是不同类型的数据管理解决方案,具有不同的功能:

  • 数据仓库汇总、清理和准备数据,以便用于商业智能 (BI) 和数据分析工作。

  • 数据湖以低成本存储大量原始数据。

  • 湖仓一体将湖的灵活数据存储和仓库的高性能分析功能结合到一个解决方案中。

由于这些解决方案具有不同的功能,服务于不同的目的,因此许多企业数据架构在整体 Data Fabric 架构中使用其中 2 种或全部 3 种解决方案:

  • 组织可以使用数据湖作为通用存储解决方案,用于存储以任何格式输入的所有数据。

  • 数据湖中的数据可输送到为各个业务部门量身定制的数据仓库,为决策提供信息。

  • 湖仓一体架构可帮助数据科学家和数据工程师更轻松地处理数据湖中的原始数据,以开展机器学习 (ML)、人工智能 (AI) 和数据科学项目。

湖仓一体作为现有数据架构的现代化途径也很受欢迎。组织可以实施新的湖仓一体方案,而无需拆除和更换现有的数据湖和仓库,从而简化向统一数据存储和分析解决方案的过渡。

小球在轨道上滚动的三维设计

最新的 AI 新闻 + 洞察分析

在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。 

数据仓库的关键特征

数据仓库将来自不同数据源(数据库、业务应用程序和社交媒体源)的数据聚合到一个存储库中。数据仓库工具的特征功能是它清理和准备所摄取的数据集。

数据仓库使用一种名为“写时模式”的方法,该方法在将所有数据写入存储空间时对数据应用一致的模式。这有助于优化商业智能和分析的数据。

例如,零售销售数据仓库将有助于确保日期、金额和交易号等详细信息的格式正确并分配给关系表中的正确单元格。

数据市场是一种数据仓库,其中包含特定业务线或部门(而不是整个企业)的特定数据。例如,营销团队可能有自己的数据市场,人力资源团队可能也有自己的市场,等等。

数据仓库架构

典型的数据仓库有 3 层:

  • 中间层围绕分析引擎构建,例如联机分析处理 (OLAP) 系统或基于 SQL 的引擎。该中间层使用户能够直接在仓库中查询数据集并运行分析。

  • 顶层包括用户界面和报告工具,使用户能够对其业务数据进行专门数据分析。

早期的数据仓库托管在本地,但现在许多数据仓库托管在云中或作为云服务交付。混合方法也很常见。

由于传统数据仓库依赖关系数据库系统和严格的架构,因此它们对于结构化数据最有效。一些现代仓库已经发展到可以容纳半结构化和非结构化数据,但许多组织更喜欢通过数据湖和湖仓一体来存储这些类型的数据。

数据仓库用例

业务分析师、数据科学家和数据工程师使用数据仓库进行自助分析工作。

将定义的模式应用于所有数据可提高数据一致性,从而使数据更可靠且更易于使用。由于数据仓库将数据存储在结构化的关系架构中,因此它支持高性能结构化查询语言 (SQL) 查询

组织可以使用内置或连接的 BI 和数据分析工具来分析交易数据和历史数据、生成数据可视化并创建仪表板以支持数据驱动的决策

数据仓库带来的挑战

仓库的维护成本可能很高。数据在加载到仓库之前必须进行转换,这需要时间和资源。由于传统仓库中的存储和计算紧密耦合,因此扩展的成本可能很高。如果数据维护不当,查询性能可能会受到影响。

由于数据仓库可能会处理非结构化和半结构化数据集,因此不太适合 AI 和 ML 工作负载。

AI Academy

数据管理是生成式 AI 的秘诀吗?

深入了解为什么高质量数据对于成功使用生成式 AI 至关重要。

数据湖的主要特征

数据湖是低成本的数据存储解决方案,旨在处理海量数据。数据湖使用“读时模式”方法,这意味着它们不会对传入数据应用标准格式。相反,当用户通过分析工具或其他界面访问数据时,就会强制执行模式。

数据湖以原生格式存储数据。这使得数据湖能够将结构化数据、非结构化数据和半结构化数据存储在同一个数据平台中。

数据湖的出现是为了帮助组织管理 Web 2.0 以及 21 世纪前十年后期和 21 世纪 10 年代初云和移动计算的兴起所引发的大数据洪流。组织发现自己处理的数据比以往任何时候都多,其中大部分是非结构化格式,例如自由格式的文本和图像,而传统仓库无法轻松管理这些数据。

数据湖架构

早期的数据湖通常建立在 Apache Hadoop 分布式文件系统 (HDFS) 之上。现代数据湖通常使用云对象存储,例如 Amazon Simple Storage Service (S3)、Microsoft Azure Blob Storage 或 IBM® Cloud Object Storage

数据湖将数据存储与计算资源分开,这使得它们比数据仓库更具成本效益和可扩展。组织可以添加更多的存储,而无需同时扩展计算资源。云存储支持进一步的可扩展性,因为组织可以在不扩展本地资源的情况下使用更多的存储空间。

为了处理数据湖中的数据,用户可以连接外部数据处理工具,例如 Apache Spark。与数据仓库不同,这些处理工具不是内置在数据湖中的。

数据湖用例

数据湖由于成本低、可扩展性高且能够存储任何格式的数据而成为通用数据存储的热门选择。

组织通常使用数据湖来维护备份以及归档旧数据和未使用的数据。组织还可以使用数据湖来存储所有传入的新数据,包括没有明确用途的数据。数据可以保留在数据湖中,直到组织需要使用它们。

组织还使用数据湖来存储 ML、AI 和大数据分析工作负载的数据集,例如数据发现、模型训练和实验性分析项目。

数据湖带来的挑战

由于数据湖不执行严格的模式并且缺乏内置的处理工具,因此在数据治理和数据质量方面存在困难。它们也不太适合业务用户的日常 BI 和数据分析工作。

组织通常需要单独的工具(如综合数据目录和元数据管理系统)来保持准确性和质量。如果没有这样的工具,数据湖很容易变成数据沼泽。

湖仓一体的主要特点

湖仓一体将数据湖和数据仓库的核心功能合并到一个数据管理解决方案中。

与数据湖一样,湖仓一体能以低成本存储任意格式(结构化、非结构化或半结构化)数据。

与仓库一样,湖仓一体支持快速查询和优化分析。

湖仓一体架构

数据湖仓一体将以前不同的技术和工具组合成一个整体解决方案。典型的湖仓一体架构包括以下几层:

摄取层

提取层从各种来源收集批量和实时流数据。虽然湖仓一体可以使用 ETL 流程来捕获数据,但许多都使用提取、加载和转换 (ELT)。湖仓一体可以将原始数据加载到存储空间中,并在之后需要分析时对其进行转换。

存储层

存储层通常是云对象存储,如在数据湖中一样。

元数据层

元数据层为存储层中的每个对象提供统一的元数据目录。这个元数据层帮助湖仓一体做很多数据湖无法做到的事情:创建数据索引以便更快地查询、强制执行模式以及应用治理和质量控制。

应用程序编程接口 (API) 层

API 层使用户能够连接工具进行高级分析。

消费层

消费层托管用于 BI、ML 和其他数据科学和分析项目的客户端应用程序和工具。

就像在数据湖一样,计算和存储资源是分开的,从而实现了可扩展性。

数据湖严重依赖开源技术。Apache Parquet 和 Apache Iceberg 等数据格式使组织能够在不同环境之间自由移动工作负载。Delta Lake,一个开源存储层,支持帮助用户对原始数据运行分析的功能,例如版本控制和 ACID 事务。“ACID”是原子性、一致性、隔离性和持久性的简称;这些关键属性有助于确保数据事务的完整性。

组织可以利用组件构建自己的湖仓一体产品,也可以使用 Databricks、Snowflake 或 IBM® watsonx.data 等预构建的产品。

湖仓一体用例

湖仓一体可以帮助组织克服仓库和湖的一些限制和复杂性。

由于数据仓库和数据湖的用途不同,许多组织在其数据堆栈中同时实施了两者。然而,这意味着用户需要跨两个相异的数据系统,尤其是对于更高级的分析项目。这可能导致工作流程效率低下、数据重复、治理挑战和其他问题。

湖仓一体可以通过支持数据整合来帮助简化分析工作。所有数据,无论类型如何,都可以存储在同一个中央存储库中,从而减少了重复存储数据的需求。所有种类的业务用户都可以将湖仓一体用于其项目,包括 BI、预测性分析、AI 和 ML。

湖仓一体还可以作为现有数据架构的现代化途径。由于开放式湖仓一体架构很容易与现有数据湖和仓库一同安置,因此组织可以开始过渡到新的集成解决方案,而无需进行中断性的淘汰和更换。

湖仓一体带来的挑战

虽然湖仓一体可以简化许多数据工作流,但设立和运行可能会很复杂。用户还可能要经过一个学习曲线时期,因为使用湖仓一体可能与他们习惯的仓库不同。湖仓一体也是一项相对较新的技术,并且该框架仍在不断发展。

数据仓库、数据湖和湖仓一体如何在数据架构中协同工作

数据仓库、数据湖和湖仓一体满足不同的业务和数据需求。许多组织结合使用其中 2 个或全部 3 个系统来简化数据管道并支持 AI、ML 和分析。

打个比方,考虑一个商业厨房。每天,这个厨房都会接收卡车(事务数据库、业务应用程序等)运来的食材(数据)。

所有食材,无论类型如何,都会抵达装卸码头(数据湖)。食材经过加工并分类放入冰箱、食品储藏室和其他存储空间(数据仓库)。在那里,食材可供厨师使用,无需任何额外加工。

此过程相当高效,但它确实暴露了传统数据湖和数据仓库的一些挑战。就像装卸码头上的食材一样,如果不进一步处理,就无法使用数据湖中的数据。就像厨房中的食材一样,数据仓库中的数据必须经过适当准备并传送到正确的位置,然后才能使用。

湖仓一体有点像将装卸码头、储藏室和冰箱合并到一个地方。当然,这种组合在商用厨房领域可能不切实际。但是,在企业数据世界中,它使组织能够从数据中获得相同的价值,同时减少处理成本、冗余和数据孤岛。

快速比较和主要区别

比较数据湖、数据仓库和湖仓一体主要差异的图表。
数据仓库、数据湖和湖仓一体之间的主要差异。

数据仓库与数据湖

  • 数据仓库存储清理和加工过的数据,而数据湖则以原始格式存储原始数据。

  • 数据仓库具有内置分析引擎和报告工具,而数据湖需要外部工具进行进行加工。

  • 数据湖具有更便宜、灵活且可扩展的存储空间。数据仓库提供经过优化的查询性能。

  • 仓库最适合为业务用户的商业智能和数据分析工作提供支持。数据湖最适合需要大量各种格式的数据的运营,例如人工智能、机器学习和数据科学。

  • 仓库支持 ACID 事务。数据湖则不然。

数据仓库与湖仓一体

  • 湖仓一体和仓库具有类似的分析和查询功能,但湖仓一体可以比仓库更好地支持复杂的 AI 和 ML 工作负载。

  • 湖仓一体为所有类型的数据提供更廉价、灵活和可扩展的存储空间。仓库主要支持结构化数据。

  • 仓库使用 ETL,而湖仓一体可以使用 ETL 或 ELT。

  • 湖仓一体可以处理批量和流数据。仓库是按批作业的。

数据湖与湖仓一体

  • 数据湖和湖仓一体都可以支持大数据量和各种数据结构。两者都使用类似的数据存储系统,通常是云对象存储。

  • 数据湖不会将模式应用于所提取的数据。湖仓一体可以选择应用模式。

  • 数据湖和湖仓一体均可支持 AI 和 ML 工作负载,但湖仓一体能比数据湖为 BI 和数据分析工作提供更好的支持。

  • 湖仓一体具有内置分析工具或与分析框架紧密集成。数据湖需要外部工具来进行数据处理。

  • 与数据湖相比,湖仓一体具有更完善的数据治理、完整性和质量控制。

  • 湖仓一体支持 ACID 事务;数据湖则不然。

  • 数据湖通常是为批处理而构建的,可能不支持流数据。湖仓一体可以支持批处理和流数据。

相关解决方案
数据管理软件和解决方案

设计数据战略,消除数据孤岛、降低复杂性并提高数据质量,以获得卓越的客户和员工体验。

深入了解数据管理解决方案
IBM watsonx.data™

watsonx.data 支持您通过开放、混合和已治理数据,利用您的所有数据(无论位于何处)来扩展分析和 AI。

了解 watsonx.data
数据和分析咨询服务

通过 IBM® Consulting 发掘企业数据的价值,建立以洞察分析为导向的组织,实现业务优势。

了解分析服务
采取下一步行动

设计数据战略,消除数据孤岛、降低复杂性并提高数据质量,以获得卓越的客户和员工体验。

深入了解数据管理解决方案 了解 watsonx.data