企业级数据仓库系统使组织能够以标准 数据库 无法实现的方式对大量数据(PB 级或更多)进行强大的分析。数据可以是 结构化 、半结构化的,也可以是非结构化的。数据可以从多个数据库输入仓库,包括 客户关系管理 (CRM) 库存 销售点 (POS) 供应链 管理系统。

三十多年来,数据仓储系统(有时也称为企业数据仓库 (EDW) 系统)一直在为商业智能工作提供支持。它们的功能主要在于从其他来源提取数据、清理和准备数据,以及在 关系数据库 中加载和维护数据。

传统上,数据仓库通常托管在本地大型机上。如今,许多数据仓库都托管在云中,并作为云服务提供。

数据仓库诞生于 20 世纪 80 年代,目的是通过以一致的格式提供综合交易数据来优化数据分析。随着商业应用程序功能的发展和新数据源(包括万维网、社交媒体和 物联网 (IoT) )的激增,对更大的存储空间和更快分析的需求也日益增长。

随着数据仓库不断发展以支持更大的数据量和更细粒度的数据,组织内越来越多的团队要求直接访问数据以实现 自助分析 功能。

许多组织意识到,他们的旧版数据仓库无法管理这些新的庞大工作量。而且,由于许多数据仓库只存储结构化数据,分析的丰富性可能会受到限制。为此,出现了更灵活的替代方案,包括云原生数据仓库和湖仓一体。(有关更多信息,请参阅“湖仓一体与数据仓库”。)

此层传统上围绕分析引擎构建,最常见的是 在线分析处理 (OLAP) 系统,旨在提供快速的分析和查询速度。此层可使用三种类型的 OLAP 模型:

  • 关系在线分析处理 (ROLAP),可对关系型数据库进行多维数据分析。
  • 多维在线分析处理 (MOLAP) 使用基于数组的多维存储空间引擎来创建数据的多维视图。
  • 混合在线分析处理 (HOLAP),融合了 ROLAP 和 MOLAP 功能。

所使用的 OLAP 模型类型取决于所使用的数据库系统类型。

大多数数据仓库都使用 OLAP 系统来支持分析。OLAP 软件可以从数据仓库等统一、集中的数据存储中对大量数据进行高速多维分析。

一项业务数据通常有多个维度。例如,销售数据可能包括与地点(地区、国家和商店)、时间(年、月、周和日)或产品(品牌、类型)相关的多个维度。

在传统的关系数据库中,数据以行列表的形式组织,这些表每次只能表示两个维度,即行一个维度,列一个维度。这可能会使分析变得繁琐。

然而,OLAP 系统允许用户同时沿多个维度分析数据,从而实现更快的处理速度和更有见地的分析。OLAP 的常见用途包括数据挖掘和其他商业智能应用程序、复杂的分析计算、预测场景、预算编制和预测规划。

OLAP 不同于 在线交易处理 或 OLTP。OLTP 系统实时跟踪大量用户进行的大量交易。OLTP 和 OLAP 之间的主要区别在于,OLTP 系统主要是为获取数据而设计的,而 OLAP 系统则分析已经获取的数据。

OLTP 系统通常使用关系数据库来记录交易,例如:

  • 银行业务和 ATM 交易
  • 电子商务和店内购物
  • 酒店和机票预订

虽然数据仓库一般不涉及 OLTP 系统,但 OLTP 系统记录在数据库中的数据通常会被传送到仓库,由 OLAP 系统进行分析。

雪花模式是数据仓库中使用的另一种组织结构,虽然没有得到广泛采用。在这种情况下,事实数据表连接到多个标准化维度表,其中包含有关中央事实数据表中事实的描述性数据。这些维度表也有子表。

这种更复杂的分支图案就像雪花一样。雪花型架构的用户可享受到较低水平的数据冗余性,但这会以降低查询性能作为代价。

数据层或中央数据库是数据仓库的核心,并由所有其他组件支持。数据可以从业务应用程序、电子邮件列表、网站或任何其他关系数据库中输入。数据实际存储在一台或一组服务器上。

数据层可以分割数据段,使用户只能访问他们需要的数据。例如,销售团队通常无法访问人力资源团队的数据,反之亦然。

通常,数据仓库内置了 数据治理 和安全功能,因此组织不需要做太多的定制数据工程工作就能实现这些功能。随着来自不同来源的新数据被添加到仓库中,组织可能需要随时间更新数据治理原则和安全措施。

ETL 工具可帮助将数据从数据源移动到数据仓库。数据首先从其来源“提取”,移动到暂存区,在那里进行清理和准备(或“转换”),然后“加载” 进入仓库。

ETL 工具可将数据转换成一致的格式,以便在仓库内对其进行高效分析和查询。例如,可以从多个客户数据库中提取数据,然后转换为通用格式,这样所有客户记录都具有相同的字段。

数据处理框架工具(例如 Apache Spark )可以帮助管理数据转换。

由于数据仓库主要存储结构化数据,因此在将数据转移到仓库之前,通常会对数据进行转换。虽然有些仓库可以使用提取、加载、转换 (ELT) 流程,即先将数据加载到仓库,然后再进行转换,但这种流程更常用于数据湖,因为数据湖不需要标准化的数据格式。(有关更多信息,请参阅“数据湖与数据仓库”。)

数据湖 是一种没有预定义模式的大量原始数据的存储解决方案。数据湖通常包含非结构化数据和半结构化数据,例如文档、视频、物联网 (IoT) 日志和社交媒体帖子。通常在 大数据 平台上构建,例如 Apache Hadoop

数据湖的主要设计目的是为大量数据提供低成本存储空间。为了降低存储成本,它们通常不会像仓库那样转换数据或进行优化分析。

湖仓一体 是一种数据平台,它将数据仓库和数据湖的各个方面(即数据湖泊的灵活性和数据仓库的高性能)融合到一个 数据管理解决方案 中。湖仓一体还可增加共享元数据、分布式 结构化查询语言 (SQL) 引擎以及内置治理和安全控制等功能。

开源技术的出现,以及减少数据重复和复杂 ETL 管道的愿望,促进了湖仓一体的发展。通过将数据湖和数据仓库的主要功能整合到一个数据解决方案中,数据湖可以帮助加快数据处理速度,支持机器学习、数据科学和 AI 工作量。

基于云的数据仓库是为在云中运行而构建的。它通常作为托管数据存储服务提供给组织,其中数据仓库基础设施由云公司管理。该组织不需要在硬件或软件上进行前期投资,也不需要管理自己的系统。云服务通常也提供灵活的定价。

随着越来越多的组织使用云计算服务并寻求减少其内部 数据中心 的占用空间,基于云的数据仓库变得越来越受欢迎。

  • 政府: 数据仓库的分析功能可以帮助政府更好地了解犯罪、人口趋势和交通模式等复杂现象。
  • 医疗保健: 集中管理和分析不同数据,例如账单和诊断代码、患者人口统计数据、药物和检测结果,可帮助医院深入了解患者的预后、运营效率等。
  • 酒店和交通: 组织可以使用有关旅行和住宿选择的历史数据来更准确地向客户提供广告和促销信息。
  • 制造业 :大型制造企业会产生大量数据。组织可以利用数据仓库构建适合各部门需求的数据市场,使用户更容易访问与其角色相关的数据。

数据仓库整合了来自不同的数据存储中的数据流,使得组织更容易分析这些数据。因此,组织可以发现有价值的洞察分析,提高性能,改善运营,并最终获得竞争优势。

更具体地说, 数据仓库的好处 可包括:

  • 提升数据质量
  • 更深入的洞察分析
  • 更好的业务决策