在存储大数据时,最常见的两种选择是数据湖和数据仓库。数据仓库用于分析归档的结构化数据,而数据湖用于存放各种结构的大数据。
在本文中,我们将拆解二者之间的差异。下表从五个维度进行对比。
| | 数据湖 | 数据仓库 |
|---|
| 数据类型 | 来自公司各类数据源的非结构化与结构化数据 | 已清洗并适配关系型数据库模式的历史数据 |
| 目的 | 具性价比的大数据存储 | 支持业务决策的分析 |
| 用户 | 数据科学家和数据工程师 | 数据分析师和业务分析师 |
| 任务 | 数据存储与大数据分析,如深度学习与实时分析 | 通常为只读查询,用于聚合与汇总数据 |
| 规模 | 存放所有可能会用到的数据——规模可达拍字节! | 仅存放与分析相关的数据 |
数据类型
数据清洗是一项关键的数据技能,因为数据天然是杂乱且不完美的。尚未清洗的原始数据称为非结构化数据——这占据了世界上大部分数据,如照片、聊天记录和 PDF 文件。将非结构化数据清洗以适配某种模式,组织为表格并定义数据类型与关系后,就成为结构化数据。这正是数据湖与数据仓库的根本区别。
数据湖存放来自各种来源的数据,如物联网设备、实时社交媒体流、用户数据和 Web 应用交易。有时这些数据是结构化的,但更多时候相当杂乱,因为数据是直接从源头摄取的。另一方面,数据仓库包含已清洗并适配关系模式的历史数据。
目的
数据湖用于以较低成本存放来自多种来源的大量数据。允许任何结构的数据可降低成本,因为无需适配特定模式,数据更灵活、更易扩展。然而,结构化数据更易分析,因为它更干净,并具有统一的可查询模式。通过将数据限定在某一模式内,数据仓库在针对特定业务决策分析历史数据方面非常高效。
您可能会注意到,在数据工作流中,数据湖和数据仓库是相辅相成的。公司摄取的数据会立即存入数据湖。当出现具体的业务问题时,会从湖中抽取相关数据,进行清洗,然后导入数据仓库。
用户
数据湖和数据仓库服务于不同的用户群体。数据分析师和业务分析师通常在数据仓库中工作,那里保存的是已为其工作流程处理过的、与业务密切相关的数据。数据仓库对编程与数据科学知识的要求较低。
数据湖由数据工程师搭建和维护,并将其集成到数据管道中。数据科学家更常与数据湖打交道,因为其中包含范围更广、更新更及时的数据。
任务
数据工程师使用数据湖来存放新进入的数据。不过,数据湖不仅仅用于存储。请记住,非结构化数据更灵活、更易扩展,这往往更适合大数据分析。可以使用 Apache Spark 和 Hadoop 等服务在数据湖上运行大数据分析。对于需要随着训练数据量增加而扩展的深度学习而言,这一点尤为重要。
数据仓库对分析师用户通常设置为只读,他们主要读取并聚合数据以获取洞见。由于数据已清洗且为归档数据,通常无需插入或更新数据。
规模
数据湖通常要大得多,因为它保留了对公司可能有用的全部数据。数据湖的规模常达拍字节——也就是 1,000 TB!数据仓库则对存放的数据更加挑选。
结论
在选择数据湖还是数据仓库时,可从上述这些维度出发,看看哪一种更契合您的使用场景。若您想更深入了解二者差异或学习如何设计数据仓库,欢迎查看我们的 Database Design 课程!
别忘了,有时两种存储方案需要配合使用,尤其是在构建数据管道时。您可以在我们的 Introduction to Data Engineering 和 Building Data Engineering Pipelines in Python 课程中看到实际演示。
在存储大数据时,最常见的两种选择是数据湖和数据仓库。数据仓库用于分析归档的结构化数据,而数据湖用于存放各种结构的大数据。
在本文中,我们将拆解二者之间的差异。下表从五个维度进行对比。
数据类型
数据清洗是一项关键的数据技能,因为数据天然是杂乱且不完美的。尚未清洗的原始数据称为非结构化数据——这占据了世界上大部分数据,如照片、聊天记录和 PDF 文件。将非结构化数据清洗以适配某种模式,组织为表格并定义数据类型与关系后,就成为结构化数据。这正是数据湖与数据仓库的根本区别。
数据湖存放来自各种来源的数据,如物联网设备、实时社交媒体流、用户数据和 Web 应用交易。有时这些数据是结构化的,但更多时候相当杂乱,因为数据是直接从源头摄取的。另一方面,数据仓库包含已清洗并适配关系模式的历史数据。
目的
数据湖用于以较低成本存放来自多种来源的大量数据。允许任何结构的数据可降低成本,因为无需适配特定模式,数据更灵活、更易扩展。然而,结构化数据更易分析,因为它更干净,并具有统一的可查询模式。通过将数据限定在某一模式内,数据仓库在针对特定业务决策分析历史数据方面非常高效。
您可能会注意到,在数据工作流中,数据湖和数据仓库是相辅相成的。公司摄取的数据会立即存入数据湖。当出现具体的业务问题时,会从湖中抽取相关数据,进行清洗,然后导入数据仓库。
用户
数据湖和数据仓库服务于不同的用户群体。数据分析师和业务分析师通常在数据仓库中工作,那里保存的是已为其工作流程处理过的、与业务密切相关的数据。数据仓库对编程与数据科学知识的要求较低。
数据湖由数据工程师搭建和维护,并将其集成到数据管道中。数据科学家更常与数据湖打交道,因为其中包含范围更广、更新更及时的数据。
任务
数据工程师使用数据湖来存放新进入的数据。不过,数据湖不仅仅用于存储。请记住,非结构化数据更灵活、更易扩展,这往往更适合大数据分析。可以使用 Apache Spark 和 Hadoop 等服务在数据湖上运行大数据分析。对于需要随着训练数据量增加而扩展的深度学习而言,这一点尤为重要。
数据仓库对分析师用户通常设置为只读,他们主要读取并聚合数据以获取洞见。由于数据已清洗且为归档数据,通常无需插入或更新数据。
规模
数据湖通常要大得多,因为它保留了对公司可能有用的全部数据。数据湖的规模常达拍字节——也就是 1,000 TB!数据仓库则对存放的数据更加挑选。
结论
在选择数据湖还是数据仓库时,可从上述这些维度出发,看看哪一种更契合您的使用场景。若您想更深入了解二者差异或学习如何设计数据仓库,欢迎查看我们的 Database Design 课程!
别忘了,有时两种存储方案需要配合使用,尤其是在构建数据管道时。您可以在我们的 Introduction to Data Engineering 和 Building Data Engineering Pipelines in Python 课程中看到实际演示。