在设计公司的数据管理策略时,第一个关键步骤是选择存储数据的方式和位置。有些人更喜欢数据仓库 (DWH) 中的结构化存储库,而另一些人则更喜欢在数据湖 (DL) 中拥有大量未处理的结构化和非结构化数据的简单性。
在本文中,您将了解什么是数据仓库和数据湖、主要区别以及如何选择最适合您的选择。
让我们深入了解数据仓库和数据湖的基础知识。
数据仓库是一个大型、集中和有序的数据存储系统。数据仓库就像大型图书馆,所有数据都整齐地分类且易于查找。仓库中的数据已经过清理和预处理,可以进行快速分析。
数据仓库旨在快速处理大量信息,因此当有人提出问题时,例如“我们上个月有多少产品退货”,他们很快就会得到答案。
数据仓库通常包括一个元数据存储库,该存储库提供有关数据结构的基本信息,包括架构详细信息和关系,例如详细说明表、列、数据类型、关系和约束的组织。元数据存储库还通过提供对整个数据管道中数据的来源、转换和移动的见解来跟踪数据沿袭,以确保质量、透明度和合规性。这有助于用户理解和导航数据。
以下是数据仓库的主要功能:
为了构建数据仓库,需要从各种来源检索数据,对其进行转换以创建相关的业务指标,然后加载到数据仓库中。此过程通常称为 ETL (Extract, Transform, Load)。
一些聚合数据存储在称为 Data Marts 的小型预留表中,这些表侧重于业务的特定领域,例如销售、客户、营销活动和项目。
对于数据存储,可以使用各种商业解决方案,包括 SQL、无 SQL、基于云的和本地选项,每种选项都在不同的架构上运行。
数据仓库的主要优势是结构化、聚合数据的可用性,这些数据提供了业务、组织或研究过程的更高级别视图。
数据仓库的井然有序的结构使数据为分析和可视化做好准备,从而简化了业务分析师的数据访问。但是,它需要大量的数据准备和数据工程工作,才能以可立即使用的格式存储所有数据。公司必须在易于访问、信息丰富的数据与设计和实施数据架构所需的投资之间权衡,这一决定通常由数据工程师告知并在各部门之间共享。
数据仓库方法对于跨不同部门进行重复数据操作的公司特别有益。例如,如果多个部门需要基于客户忠诚度 KPI 的定期报告,那么在 DWH 中存储和更新 KPI 一次会很省时,而不是每次都重新计算所有部门的每份报告。
数据湖 (DL) 是一个中央存储库,以原始、自然的格式存储来自各种数据源的数据。数据湖可以包括来自关系数据库的结构化数据、CSV 文件或 XML/JSON 对象等半结构化数据;非结构化数据,例如电子邮件、文档或 PDF 文件;以及图像、音频和视频等二进制数据。
对于数据存储,可以使用各种商业解决方案,包括基于云的和本地的。数据目录在 DL 和 DWH 中都用于提供有关数据存储位置和数据组织方式的信息。这包括一个元数据存储库,可帮助用户了解数据湖或数据仓库中的信息。
数据湖的数据管道首先以原始格式将数据从各种数据源直接摄取到数据存储中。然后,最终用户提取这些数据,将其转换为所需的格式,并在报告中可视化。数据管道的初始阶段称为 ELT(提取、加载、转换),因为加载发生在转换之前。
以下是数据湖的主要功能:
数据湖的主要优势在于它能够存储来自各种来源的原始数据,而无需预处理或预定义架构。这消除了对复杂数据架构和数据准备的要求,与数据仓库相比,从而降低了前期成本。但是,在创建报表时,必须从头开始重新计算所有 KPI、量度和聚合数量,这在考虑所有部门的工作量时可能非常耗时。
请注意,如果数据湖管理不当,它们可能会成为“数据沼泽”,从而难以在大量未经整理的原始数据中找到所需的必要数据。
对于尚未定义数据策略、缺乏有效处理数据的资源或需要快速收集大量数据而不担心结构的公司,通常建议使用数据湖方法。例如,在 IoT 应用程序中,从各种来源收集大量快速非结构化数据。这些数据的快速涌入使得使用传统的 DWH 变得困难。
数据仓库可以用作分析师和数据科学家的中央数据中心,但它需要仔细规划以设计其内容并无差错地实施它。相比之下,数据湖更容易设置,因为它不需要任何数据处理。但是,这可能会导致数据存储冗余和数据处理效率低下等问题。没有万能的解决方案,每家公司都必须根据其特定的业务需求和处理的数据类型做出选择。
在数据湖中,这种方法通常被描述为 “自下而上”。数据以其原始形式摄取,并且仅在需要分析时才进行转换,遵循提取、加载、转换 (ELT) 过程。
相比之下,数据仓库通常使用“自上而下”的方法,其中数据的架构是预先定义的。这需要在将数据加载到数据仓库之前转换数据以适应架构,并与提取、转换、加载 (ETL) 流程保持一致。
答案取决于您公司的具体需求、数据策略和数据管理的成熟度。公司很少只选择一种方法。相反,许多人选择混合解决方案,该解决方案包含用于常用聚合指标的数据仓库和用于不常用数据或不适合数据仓库架构的数据的数据湖。
现代商业软件解决方案通常为有效数据处理提供两种选择。因此,问题通常不是非此即彼的问题,而是哪些数据应该以预处理的形式存储以供常规使用和快速查询,哪些数据可以存储在数据湖中。
主要功能比较:数据仓库与数据湖
特征 | 数据仓库 | 数据湖 |
Data forma | 经过处理的结构化格式 | 原始、原生格式(结构化、半结构化、非结构化 |
灵活性 | 灵活性较差;专为特定数据类型设计 | 高度灵活;支持各种数据类型 |
时间和精力方面的设置成本 | 初始设置更耗时,并且涉及大量前期工作,例如设计架构、整理数据和确保结构正确,但以后可以通过更快、更有序的数据检索来节省时间。 | 初始设置更容易,并且需要较少的前期人力(因为不需要定义严格的架构),但以后可能需要更多时间来处理非结构化数据。 |
数据引入方法 | ETL (提取、转换、加载) | ELT (提取、加载、转换) |
史料 | 专注于处理后的历史数据 | 无限期保留原始数据 |
用户辅助功能 | 您需要一些技术技能来编写特定查询并导航结构以提取数据,但由于数据已经预先处理,因此使用起来更容易。 | 您可以轻松提取原始形式的数据,但您需要先处理数据清理和预处理,然后才能获得见解。 |
元数据存储库 | 包括数据结构和世系的元数据 | 包括用于数据组织的元数据 |
数据治理 | 强大的治理和数据质量控制 | 通常缺乏强有力的治理;“数据沼泽”的风险 |
性能 | 针对快速、复杂的查询进行了优化 | 性能可变;需要优化 |
KNIME Analytics Platform 是一款免费的开源软件,您可以下载它来访问、混合、分析和可视化数据,而无需任何编码。
KNIME 提供多功能解决方案,可以适应两种存储架构并帮助简化数据操作。KNIME Analytics Platform 凭借其构建数据操作管道的可视化方法,可以成为数据工程师的宝贵工具。
您可以使用 KNIME 轻松:
KNIME 提供了广泛的节点集合,旨在与各种数据源无缝交互,以及构建和维护数据仓库和数据湖 – 无论是在本地还是在云上。这包括 SQL 和非 SQL 数据库连接器、文件处理节点、大数据连接器以及用于访问 Web 服务的节点等。
在本文中,我们向您介绍了数据仓库和数据湖的概念,并概述了它们在特定业务环境中的优缺点。虽然数据湖因其灵活性而受到青睐,但一些公司优先考虑结构良好的数据,这使得数据仓库更合适。
通常,公司会选择混合方法,数据仓库用于某些业务功能,而数据湖用于其他业务功能。
要进一步学习,您可以探索数据工程课程的自定进度 KNIME 学习路径,该路径可在 KNIME 学习中心免费获得。此学习路径涵盖从数据素养基础知识到数据工程的产品化和最佳实践的所有内容,所有这些都通过可视化编程完成,无需任何编码经验。
以下是有关数据仓库和数据湖的一些最常见问题的答案:
不可以,数据湖和数据仓库可以共存,但本质上是不同的。数据湖存储未处理的数据,而数据仓库存储预处理的数据。您可以根据此差异决定您是拥有数据湖、数据仓库还是两者的混合。
它们旨在满足不同的要求。
数据仓库是一个大型的中央存储库,用于存储来自整个组织中各种来源的数据。它旨在支持许多部门和流程,甚至整个组织。
数据集市是数据仓库的更小、更集中的子集,专为满足特定部门或业务职能(如营销或销售)的需求而量身定制。
数据仓库层是数据处理管道中的阶段。数据仓库层包括用于收集原始数据的数据源层、用于临时存储的暂存层、用于转换数据的 ETL 层、用于结构化数据存储的存储层、用于查询和报告的访问层以及用于管理和监控数据的元数据层。