OBIEE 教程 数据仓库

在当今竞争激烈的市场中,大多数成功的公司都会迅速应对市场变化和机遇。快速响应需要有效和高效地使用数据和信息。“数据仓库”(Data Warehouse)是按类别为数据建立的中央存储库,用于支持组织决策者。一旦数据被存储在数据仓库中,就可以访问它进行分析。

“数据仓库”这个术语最早是由 账单•恩门(Bill Inmon,被誉为数据仓库之父)在1990年发明的。他说:“数据仓库是一个面向主题的,集成的,随时间变化的和非易失的数据集合,用于支持管理层的决策过程。

拉尔夫. 金博尔(Ralph Kimball,数据仓库和商务智能领域的权威专家)根据其功能给出了数据仓库的定义。他说:“数据仓库是专门为查询和分析而构建的事务数据的副本。”

数据仓库(DW或DWH)是一个用于分析数据和做报告目的的系统。它们是保存来自一个或多个异构数据源的数据的存储库。它们存储当前数据和历史数据,并用于创建分析报告。DW可用于为高级管理人员创建交互式仪表盘。

例如,分析报告可以包含公司销售报告中的季度或年度比较数据。

数据仓库中的数据来自销售,人力资源,市场营销,仓库管理等多个操作系统。它包含来自不同事务系统的历史数据,但也可以包含来自其他来源的数据。DW用于将数据处理和分析工作量与事务工作量分开,并能够整合来自多个数据源的数据。

数据仓库能满足的需求

例如 - 您有一个住房贷款机构,它的数据来自多个SAP /非SAP应用程序,如市场营销,销售,ERP,HRM等。这些数据被抽取,转换并加载到DW中。如果您必须对产品进行季度/年度销售比较,则不能使用操作型数据库,因为这会挂起事务系统。这时就需要使用DW。

数据仓库的特性

DW的一些主要特性是 -

  • 用于报告和数据分析。
  • 它把来自一个或多个数据源的数据集成在一个中央存储库。
  • 它存储当前数据和历史数据。

数据仓库 vs 事务系统

下面是数据仓库和操作型数据库(事务系统)之间的几个区别 -

  • 事务系统是为已知工作量和事务(如更新用户记录,搜索记录等)设计的。而DW事务更为复杂,并展现通用的数据形式。
  • 事务系统包含组织的当前数据,而DW通常包含历史数据。
  • 事务系统支持多个事务的并行处理。为了保持数据库的一致性,需要使用并发控制和恢复机制。
  • 操作型数据库查询允许读取和修改操作(删除和更新),而OLAP查询只需要对存储数据(select语句)进行只读访问。
  • DW涉及数据清洗,数据集成和数据整合。

DW采用一个三层架构 - 数据源层,集成层和展现层。下图显示了数据仓库系统的通用架构。

数据仓库体系结构

数据仓库系统的类型

DW系统的类型如下 -

  • 数据集市(Data Mart)
  • 在线分析处理(OLAP)
  • 在线事务处理(OLTP)
  • 预测分析

数据集市

数据集市是最简单的数据仓库形式,通常关注单个职能领域,如销售,财务或市场营销。因此,数据集市通常只从少数几个数据源获取数据。

它的数据源可以是内部事务系统,中央数据仓库或外部数据源应用程序。去归一化是这个系统中数据建模技术的标准。

在线分析处理(OLAP)

一个OLAP系统包含的事务数量较少,但涉及复杂的计算,如使用聚合 - 求和,计数,平均值等。

什么是聚合?

我们保存具有年度(1行),季度(4行),月度(12行)等聚合数据的表,现在我们要比较数据,比如对于年度数据将只有1行被处理。但是,在数据未聚合的表中,所有行都将被处理。

OLAP系统通常将数据存储在多维Schema(如Star Schema, Galaxy Schema等)中(事实表和维度表以逻辑方式连接)。

在OLAP系统中,执行查询的响应时间是有效性度量。数据挖掘技术广泛使用OLAP应用程序从OLAP系统中获取数据。 OLAP数据库将聚合的历史数据存储在多维Schema中。与数据集市相比,OLAP系统的数据延迟时间只有几个小时,而数据集市的延迟时间通常接近几天。

在线事务处理(OLTP)

OLTP系统以插入,更新,删除等大量在线短事务而闻名。OLTP系统提供快速的查询处理,并负责在多路访问环境中提供数据完整性。

对于OLTP系统,有效性以每秒处理的事务数量来度量。OLTP系统通常只包含当前数据。用于存储事务数据库的 Schema是实体模型。归一化用于OLTP系统中的数据建模技术。

OLTP vs OLAP

下图显示了OLTP和OLAP系统之间的主要区别。

OLTP vs OLAP


索引- 在OLTP系统中只有少量索引,而在OLAP系统中有很多为了性能优化的索引。

多表连接 - 在OLTP系统中,有大量的 join,并且数据是归一化的; 但是,在OLAP系统中, join的数量较少,并且数据是去归一化的。

聚合- 在OLTP系统中,数据不会被聚合,而在OLAP数据库中使用更多聚合。