数据仓库 - 系统进程
我们有固定数量的操作要应用于操作数据库,并且我们有明确定义的技术,例如使用规范化数据、保持表较小等。这些技术适合交付解决方案。但对于决策支持系统,我们不知道将来需要执行哪些查询和操作。因此,应用于操作数据库的技术并不适合数据仓库。
在本章中,我们将讨论如何在 Unix 和关系数据库等顶级开放系统技术上构建数据仓库解决方案。
数据仓库中的流程
数据仓库有四个主要流程 -
- 提取并加载数据。
- 清理和转换数据。
- 备份并归档数据。
- 管理查询并将其定向到适当的数据源。
提取和加载过程
数据提取从源系统获取数据。数据加载获取提取的数据并将其加载到数据仓库中。
注意- 在将数据加载到数据仓库之前,必须重建从外部源提取的信息。
控制过程
控制过程包括确定何时开始数据提取以及数据的一致性检查。控制过程确保工具、逻辑模块和程序在正确的时间按正确的顺序执行。
何时开始提取
数据在提取时需要处于一致的状态,即数据仓库应该向用户表示单一的、一致的信息版本。
例如,在电信行业的客户分析数据仓库中,将客户数据库中周三晚上 8 点的客户列表与周二晚上 8 点之前的客户订阅事件合并起来是不合逻辑的。这意味着我们正在寻找没有关联订阅的客户。
加载数据
提取数据后,会将其加载到临时数据存储中,并在其中进行清理并使其保持一致。
注意- 仅当所有数据源都已加载到临时数据存储中时才会执行一致性检查。
清洁和转型流程
一旦数据被提取并加载到临时数据存储中,就可以执行清理和转换。以下是清洁和改造所涉及的步骤列表 -
- 清理加载的数据并将其转换为结构
- 对数据进行分区
- 聚合
清理加载的数据并将其转换为结构
清理和转换加载的数据有助于加快查询速度。可以通过使数据一致来完成 -
- 在其自身之内。
- 与同一数据源中的其他数据。
- 与其他源系统中的数据。
- 与仓库中存在的现有数据。
转换涉及将源数据转换为结构。结构化数据可以提高查询性能并降低运营成本。数据仓库中包含的数据必须进行转换,以支持性能要求并控制持续的运营成本。
数据分区
它将优化硬件性能并简化数据仓库的管理。在这里,我们将每个事实表划分为多个单独的分区。
聚合
需要聚合来加速常见查询。聚合依赖于这样一个事实:最常见的查询将分析详细数据的子集或聚合。
备份和存档数据
为了在数据丢失、软件故障或硬件故障时恢复数据,有必要定期进行备份。归档涉及以允许在需要时快速恢复的格式从系统中删除旧数据。
例如,在零售销售分析数据仓库中,可能需要将数据保存3年,其中最近6个月的数据在线保存。在这种情况下,通常需要能够对今年和去年进行月度比较。在这种情况下,我们需要从存档中恢复一些数据。
查询管理流程
该过程执行以下功能 -
管理查询。
有助于加快 queris 的执行时间。
将查询定向到最有效的数据源。
确保以最有效的方式使用所有系统资源。
监视实际的查询配置文件。
仓库管理流程使用此流程中生成的信息来确定要生成哪些聚合。在将信息定期加载到数据仓库期间,此过程通常不会运行。