数据仓库 - 概述
数据仓库由来自多个异构数据源的数据组成,用于分析报告和决策。数据仓库是存储来自不同数据源和应用程序的数据的中心位置。
数据仓库这个术语最早由 Bill Inmom 于 1990 年发明。数据仓库始终与操作数据库分开。
DW 系统中的数据是从操作事务系统(如 −)加载的。
- 销售
- 营销
- 人力资源
- 供应链管理等。
它可能经过操作数据存储或其他转换,然后加载到 DW 系统进行信息处理。
数据仓库用于报告和分析信息,并存储历史数据和当前数据。 DW 系统中的数据用于分析报告,随后业务分析师、销售经理或知识工作者会使用该报告进行决策。
在上图中,您可以看到数据来自多个异构数据源,然后进入数据仓库。数据仓库的常见数据源包括 −
- 操作数据库
- SAP 和非 SAP 应用程序
- 平面文件(xls、csv、txt 文件)
BI(商业智能)用户可以访问数据仓库中的数据,以进行分析报告、数据挖掘和分析。业务用户、销售经理和分析师可利用它制定决策,制定未来战略。
数据仓库的特点
它是一个中央数据存储库,其中存储来自一个或多个异构数据源的数据。DW 系统存储当前数据和历史数据。通常,DW 系统存储 5-10 年的历史数据。 DW 系统始终与操作事务系统分开。
DW 系统中的数据用于不同类型的分析报告,范围从季度到年度比较。
数据仓库与操作数据库
数据仓库和操作数据库之间的区别如下 −
操作系统专为已知工作负载和事务而设计,如更新用户记录、搜索记录等。但是,数据仓库事务更复杂,并呈现一般形式的数据。
操作系统包含组织的当前数据,而数据仓库通常包含历史数据。
操作数据库支持并行处理多个事务。并发控制和恢复机制对于保持数据库的一致性必不可少。
操作数据库查询允许读取和修改操作(插入、删除和更新),而 OLAP 查询仅需要对存储的数据进行只读访问(选择语句)。
数据仓库的架构
数据仓库涉及数据清理、数据集成和数据整合。数据仓库具有 3 层架构 −
数据源层
它定义了数据如何进入数据仓库。它涉及各种数据源和操作事务系统、平面文件、应用程序等。
集成层
它由操作数据存储和暂存区组成。暂存区用于执行数据清理、数据转换以及将数据从不同来源加载到数据仓库。由于有多个数据源可用于提取不同时区的数据,因此暂存区用于存储数据,稍后对数据进行转换。
表示层
最终用户使用该层执行 BI 报告。BI 用户可访问 DW 系统中的数据并将其用于报告和分析。
下图显示了数据仓库系统的通用架构。
数据仓库的特征
以下是数据仓库的主要特征 −
面向主题 −在 DW 系统中,数据按业务主题分类和存储,而不是按应用程序(如股权计划、股票、贷款等)分类和存储。
集成 − 来自多个数据源的数据集成在数据仓库中。
非易失性 − 数据仓库中的数据是非易失性的。 这意味着当数据加载到 DW 系统中时,它不会被更改。
时间变量 − 与仅包含当前数据的事务系统相比,DW 系统包含历史数据。 在数据仓库中,您可以查看 3 个月、6 个月、1 年、5 年等的数据。
OLTP 与 OLAP
首先,OLTP 代表联机事务处理,而 OLAP 代表联机分析处理
在 OLTP 系统中,有大量的短联机事务,例如 INSERT、UPDATE 和 DELETE。
而在 OLTP 系统中,有效的衡量标准是短事务的处理时间,并且非常少。它控制多访问环境中的数据完整性。对于 OLTP 系统,每秒的事务数衡量有效性。OLTP 数据仓库系统包含当前和详细数据,并在实体模型 (3NF) 中的架构中维护。
例如 −
零售店中的日常交易系统,每天插入、更新和删除客户记录。它提供更快的查询处理。 OLTP 数据库包含详细和当前数据。用于存储 OLTP 数据库的架构是实体模型。
与事务系统相比,OLAP 系统中的事务数量较少。执行的查询本质上很复杂,涉及数据聚合。
什么是聚合?
我们保存包含聚合数据的表,例如年度(1 行)、季度(4 行)、月度(12 行)等,如果有人必须进行年度比较,则只会处理一行。但是,在未聚合的表中,它将比较所有行。这称为聚合。
OLAP 系统中可以使用各种聚合函数,如 Sum、Avg、Max、Min 等。
例如 −
SELECT Avg(salary) FROM employee WHERE title = 'Programmer';
主要区别
这些是 OLAP 和 OLTP 系统之间的主要区别。
索引 − OLTP 系统只有少数索引,而 OLAP 系统中则有许多索引以优化性能。
连接 − 在 OLTP 系统中,大量连接和数据被规范化。然而,在 OLAP 系统中,连接较少,并且非规范化。
聚合 − 在 OLTP 系统中,数据未聚合,而在 OLAP 数据库中则使用更多聚合。
规范化 − OLTP 系统包含规范化数据,但在 OLAP 系统中数据未规范化。
数据集市与数据仓库
数据集市专注于单一功能领域,代表数据仓库的最简单形式。考虑一个包含销售、营销、人力资源和财务数据的数据仓库。数据集市专注于销售或营销等单一功能领域。
在上图中,您可以看到数据仓库和数据集市之间的区别。
事实表与维度表
事实表表示执行分析的度量。它还包含维度键的外键。
例如 −每笔销售都是事实。
客户 ID | 产品 ID | 时间 ID | 销售数量 |
---|---|---|---|
1110 | 25 | 2 | 125 |
1210 | 28 | 4 | 252 |
维度表表示特征维度。客户维度可以有客户姓名、电话号码、性别等。
Cust Id | Cust_Name | Phone | Sex |
---|---|---|---|
1110 | Sally | 1113334444 | F |
1210 | Adam | 2225556666 | M |