什么是数据仓库?
数据仓库是一个包含来自单个或多个源的历史和交换数据的信息系统。它简化了组织的报告和分析过程。
对于任何一家公司来说,这也是一个用于决策和预测的真理的单一版本。
目录
- 什么是数据仓库?
- 数据仓库的特点
- 面向主题的(Subject-Oriented)
- 集成的(Integrated)
- 反映时间变化的(Time-Variant)
- 相对稳定的(Non-volatile)
- 数据仓库的架构
- 数据仓库的组件
- 数据仓库数据库
- 采集、收集、清洗和转换工具(ETL)
- 元数据
- 查询工具
- 数据仓库总线体系结构
- 数据集市
- 数据仓库体系结构最佳实践
- 总结
数据仓库的特点
数据仓库具有以下特点:
- 面向主题的(Subject-Oriented)
- 集成的(Integrated)
- 反映时间变化的(Time-Variant)
- 相对稳定的(Non-volatile).
面向主题的(Subject-Oriented)
数据仓库是面向主题的,因为它提供关于主题的信息,而不是公司正在进行的操作。这些信息可以是销售、市场营销、分销等各种各样的数据。
数据仓库从不关注正在进行的操作。相反,它强调的是为决策建立模型和分析数据。它还通过排除对支持决策过程没有帮助的数据,围绕特定主题提供了一个简单而明了的视图。
集成的(Integrated)
在数据仓库中,集成意味着为来自不同数据库的所有相似数据建立一个公共度量单元。数据还需要以通用且普遍可接受的方式存储在Datawarehouse中。数据仓库是通过集成来自大型机、关系数据库、文本文件等不同来源的数据而开发的。此外,它必须保持一致的命名约定、格式和编码。这种集成有助于有效地分析数据。必须确保命名约定、属性度量、编码结构等方面的一致性。参考下面的例子:
在上面的例子中,有三个不同的应用程序,分别标记为A、B和C。这些应用程序中存储的信息是性别、日期和余额。但是,每个应用程序的数据存储方式不同。
- 在应用A中,性别字段存储为M或F
- 在应用B中性别字段是一个数值,
- 在应用C中,性别字段以完整字符串的形式存储。
日期和余额也是一样的,各个应用有着自己的规范。
然而,不管它们属于什么应用、在转换和清理过程之后,所有这些数据都以通用格式存储在我们的数据仓库中。这个就是集成。
反映时间变化的(Time-Variant)
与操作系统相比,数据仓库的时间范围相当广泛。数据仓库中收集的数据可以用特定的时间段进行识别,并从历史的角度提供信息。它包含一个时间元素,显式或隐式。
Datawarehouse数据显示时间差异的一个地方位于记录键的结构中。数据仓库中包含的每个主键都应该具有隐式或显式的时间元素。如日、周、月等。
时间差异的另一个方面是,一旦数据插入到仓库中,它就不能更新或更改。
相对稳定的(Non-volatile)
数据仓库也是相对稳定的的,这意味着在输入新数据时不会删除以前的数据。
数据是只读的,并定期刷新。这也有助于分析历史数据,了解发生了什么和什么时候干了什么。它不需要事务处理、恢复和并发控制机制。
数据仓库环境中省略了在操作应用程序环境中执行的删除、更新和插入等活动。在数据仓库中执行的数据操作只有两种类型:
- Data loading
- Data access
这里是应用程序和数据仓库之间的一些主要区别:
应用程序 | 数据仓库 |
必须编写复杂的程序,以确保数据升级过程保持最终产品的高度完整性。 | 这类问题不会发生,因为没有执行数据更新。 |
数据以标准化的形式放置,以确保最小的冗余。 | 数据不是以规范化的形式存储的。 |
由于死锁相当复杂,需要支持事务、数据恢复、回滚和解决问题的技术。 | 它提供了相对简单的技术。 |
数据仓库的架构
数据仓库架构主要有三种类型:
单层体系结构
单层的目标是最小化存储的数据量。这个目标是消除数据冗余。这种体系结构在实践中并不经常使用。
双层体系结构
两层体系结构分离了物理上可用的源和数据仓库。这种体系结构是不可扩展的,也不支持大量的终端用户。由于网络的限制,它还存在连接问题。
三层体系结构
这是使用最广泛的体系结构。
它由顶层、中层和底层组成。
- 底层:Datawarehouse服务器的数据库作为底层。它通常是一个关系数据库系统。使用后端工具将数据清理、转换并加载到该层。
- 中间层:数据仓库中的中间层是使用ROLAP或MOLAP模型实现的OLAP服务器。对于用户,此应用程序层显示数据库的抽象视图。这一层还充当最终用户和数据库之间的中介。
- 顶层:顶层是前端客户端层。顶层是连接并从数据仓库获取数据的工具和API。它可以是查询工具、报告工具、托管查询工具、分析工具和数据挖掘工具。

数据仓库架构设计图
数据仓库基于RDBMS服务器,RDBMS服务器是一个中央信息存储库,由一些关键组件包围,使整个环境具有功能性、可管理性和可访问性
数据仓库主要有五个组成部分:
数据仓库数据库
中央数据库是数据仓库环境的基础。该数据库是在RDBMS技术上实现的。尽管如此,由于传统的RDBMS系统是为事务数据库处理而不是为数据仓库而优化的,所以这种实现受到了限制。例如,特别查询、多表连接、聚合都是资源密集型的,并且会降低性能。
因此,数据库的替代方法如下所示
在datawarehouse中,关系数据库是并行部署的,以支持可伸缩性。并行关系数据库还允许在各种多处理器配置或大规模并行处理器上建立共享内存或无共享模型。
新的索引结构被用来绕过关系表扫描,提高速度。
使用多维数据库(MDDBs)来克服关系数据模型带来的任何限制。示例:来自Oracle的Essbase。
采集、收集、清洗和转换工具(ETL)
数据来源、转换和迁移工具用于执行将数据转换为datawarehouse中的统一格式所需的所有转换、摘要和所有更改。它们也称为提取、转换和加载(Extract, Transform and Load, ETL)工具。
其功能包括:
- 按照监管规定对数据进行匿名处理。
- 消除将操作数据库中的不需要的数据加载到数据仓库。
- 搜索并替换来自不同数据源的数据的常用名称和定义。
- 计算摘要和导出的数据
- 如果缺少数据,用默认值填充它们。
- 消除来自多个数据源的重复数据。
这些提取、转换和加载工具可以生成cron作业、后台作业、Cobol程序、shell脚本等,这些作业定期更新datawarehouse中的数据。这些工具还有助于维护元数据。
这些ETL工具必须处理数据库和数据异构性之间的问题。
元数据
元数据这个名称暗示了一些高层次的技术概念。然而,它非常简单。元数据是关于定义数据仓库的数据的数据。它用于构建、维护和管理数据仓库。
在数据仓库体系结构中,元数据扮演着重要的角色,因为它指定了数据仓库数据的源、用法、值和特性。它还定义了如何更改和处理数据。它与数据仓库紧密相连。
例如,sales数据库中的一行可能包含:
4030 KJ732 299.90
这是一个毫无意义的数据,直到我们查阅元数据,告诉我们它是
型号:4030
销售代理ID: KJ732
总销售额为299.90美元
因此,元数据是将数据转化为知识的基本要素。元数据有助于回答以下问题:
- 数据仓库包含哪些表、属性和键?
- 数据从何而来?
- 数据被重新加载多少次?
- 清洗应用了哪些转换?
元数据可以分为以下几类:
- 技术元数据:这种元数据包含数据仓库设计人员和管理员使用的关于仓库的信息。
- 业务元数据:这种元数据包含详细信息,使最终用户能够轻松理解存储在数据仓库中的信息。
查询工具
数据仓库的主要目标之一是为企业提供信息以做出战略决策。查询工具允许用户与数据仓库系统交互。
这些工具可分为四类:
- 查询和报告工具
- 应用开发工具
- 数据挖掘工具
- OLAP工具
-
查询和报告工具:
查询和报告工具可以进一步分为
- 报告工具
- 管理查询工具
报告工具:报告工具可以进一步分为生产报告工具和桌面报告编写器。
报告撰写者:这种报告工具是为最终用户分析而设计的工具。
生产报告:这种工具允许组织生成常规的操作报告。它还支持打印和计算等大批量批处理作业。流行的报告工具有Brio、Business Objects、Oracle、PowerSoft、SAS Institute。
管理查询工具:
这种访问工具通过在用户和数据库之间插入元层,帮助最终用户解决数据库、SQL和数据库结构中的问题。
-
应用程序开发工具:
有时候,内置的图形化和分析工具不能满足组织的分析需求。在这种情况下,使用应用程序开发工具开发自定义报告。
-
数据挖掘工具:
数据挖掘是通过挖掘大量数据发现有意义的新相关性、模式和趋势的过程。使用数据挖掘工具使这个过程自动化。
-
OLAP工具:
这些工具基于多维数据库的概念。它允许用户使用复杂的多维视图分析数据。
数据仓库总线体系结构
数据仓库总线确定仓库中的数据流。数据仓库中的数据流可以分为流入流、上升流、下降流、流出流和元流。
在设计数据总线时,需要考虑数据集市之间的共享维度和事实。
数据集市
数据集市是一个访问层,用于将数据发送给用户。由于构建大型数据仓库所需的时间和金钱更少,因此将其作为一个选项提供。但是,数据集市的标准定义因人而异。
在一个简单的word中,数据集市是数据仓库的一个附属。数据集市用于对为特定用户组创建的数据进行分区。
数据集市可以在与Datawarehouse相同的数据库中创建,也可以在物理上独立的数据库中创建。
数据仓库体系结构最佳实践
要设计数据仓库架构,您需要遵循以下给定的最佳实践:
- 使用经过优化的数据模型进行信息检索,可以采用维度模式、非正规化方法或混合方法。
- 需要确保数据处理快速准确。与此同时,您应该采取一种方法,将数据合并到一个单一版本的真相中。
- 认真设计数据仓库的数据采集和清理流程。
- 设计一个元数据体系结构,允许数据仓库组件之间共享元数据。
- 当信息检索需求接近数据抽象金字塔的底部,或者需要访问多个操作源时,考虑实现ODS模型。
- 应该确保数据模型是集成的,而不仅仅是合并的。在这种情况下,应该考虑3NF数据模型。它也是获取ETL和数据清理工具的理想工具
总结:
- 数据仓库是一个包含来自单个或多个源的历史和交换数据的信息系统。
- 数据仓库是面向主题的,因为它提供有关主题的信息,而不是组织正在进行的操作。
- 在数据仓库中,集成意味着为来自不同数据库的所有相似数据建立一个公共度量单元数据仓库也是非易失性的,这意味着在输入新数据时不会删除以前的数据。
- 数据仓库是随时间变化的,因为DW中的数据具有较高的保质期。
- 数据仓库有5个主要组件:1)数据库2)ETL工具3)元数据4)查询工具5)
- 数据集市有四种主要的查询工具1。查询和报告,工具2。应用开发工具,3。数据挖掘工具4。OLAP工具
- 数据来源、转换和迁移工具用于执行所有转换和摘要。
- 在数据仓库体系结构中,元数据扮演着重要的角色,因为它指定了数据仓库数据的源、用法、值和特性。
文章说明:
本文翻译自国外技术文章:https://www.guru99.com/data-warehouse-architecture.html#1
本文为九五青年博客翻译,如需转载请在下面留言,原文如有版权问题,在下面留言板反馈,我们会第一时间处理。