数据湖和数据仓库是业务分析的关键技术, 但两者之间的差异可能令人困惑。他们有什么不同?一个比另一个更稳定吗?哪一个对你的企业最有帮助?本文旨在揭开处理您的数据的这两个系统的神秘面纱。
什么是数据湖?
数据湖是一个集中式存储库, 旨在存储所有结构化和非结构化数据。此外, 数据湖可以使用其本机格式存储任何类型的数据, 而不存在大小限制。数据湖的开发主要是为了处理海量数据, 因此它们擅长处理非结构化数据。通常, 您可以将所有数据移动到数据湖中, 而不进行转换。为湖泊中的每个数据元素分配一个唯一标识符, 并对其进行广泛标记, 以便以后可以通过查询查找该元素。这样做的好处是, 您永远不会丢失数据, 数据可以在很长一段时间内可用, 并且您的数据非常灵活, 因为它在存储之前不需要遵守特定的架构。
什么是数据仓库?
数据仓库是位于多个数据库之上的大容量存储库。它旨在存储中、大量的结构化数据, 以便进行频繁且可重复的分析。通常, 数据仓库用于将来自各种结构化源的数据汇集在一起进行分析, 通常用于业务目的。某些数据仓库可以处理非结构化数据, 但这并不常见。在集成数据之前, 需要完成确保数据类型兼容的工作。由于存储在仓库中的数据是结构化的, 因此数据的大小受到限制, 并且在将数据添加到仓库之前确定架构。
数据湖与数据仓库
想象一个仓库: 空间有限, 箱子必须装进货架上的特定插槽。每个盒子都需要按顺序存储, 以便以后可以找到它, 您可能需要设计仓库, 以便定期清除旧的库存。这些相同的约束大多适用于数据仓库: 大小是固定的, 并且必须按照精心设计的架构存储每个数据块, 然后才能将数据添加到仓库。数据仓库针对结构化数据进行了优化。
相比之下, 数据湖是无定形的, 边界可以根据内容生长或缩小。就像湖一样, 如果注入更多的数据, 数据湖就会膨胀, 当数据被删除时, 它就会缩小。数据不需要进行结构化, 因为您可以使用大量标记在需要时查找数据。数据湖针对非结构化数据进行了优化。
下表显示了数据湖和数据仓库之间的一些主要区别。
数据湖 | 数据仓库 | |
---|---|---|
存储 | 数据是非结构化的, 所有数据都以原始形式保存。所有数据都被存储, 并且仅在分析时进行转换。 | 数据通常是从事务系统中提取的。在将数据加载到数据仓库之前, 将对其进行清理和转换。 |
数据采集 | 捕获半结构化和非结构化数据。 | 捕获结构化数据并在架构中对其进行组织。 |
目的 | 数据湖是深入分析非结构化数据的理想选择。例如, 数据科学家可能使用具有预测建模和统计分析等功能的高级分析工具。 | 数据仓库是操作用途 (如月度报告) 的理想选择, 因为它具有高度的结构。 |
模式 | 通常情况下, 架构是在存储数据后定义的 |
什么是适合你, 数据湖或数据仓库?
简单的答案是, 你可能需要两者兼而有之。
数据仓库是业务实践中常见的可重复报告类型的理想选择, 例如每月销售报告、跟踪每个区域的销售额或网站流量。当您需要执行不太简单的分析时, 数据湖非常有用。例如, 您可能希望对网站上的流量进行行为分析。这些都是互补而不是相互竞争的工具。