我们有用于应用于操作型数据库的固定数量的操作,并且我们有 use normalized data 、 keep table small 等明确界定的技术。这些技术适用于提供解决方案。但在决策支持系统中,我们不知道将来需要执行哪些查询和操作。因此,应用于操作型数据库的技术不适用于数据仓库。
在本章中,我们将讨论如何基于 Unix 和关系数据库等开放系统技术构建数据仓库解决方案。
Process Flow in Data Warehouse
-
提取并加载数据。
-
清理和转换数据。
-
备份和存档数据。
-
管理查询并将其引导到适当的数据源。
Extract and Load Process
数据提取从源系统获取数据。数据加载提取提取的数据并将其加载到数据仓库中。
Note - 在将数据加载到数据仓库之前,必须对从外部源提取的信息进行重建。
Controlling the Process
控制流程包括确定何时开始数据提取和对数据进行一致性检查。控制流程确保工具、逻辑模块和程序按正确的顺序和时间执行。
数据在提取时需要处于一致状态,也就是说,数据仓库应向用户表示单一的、一致的信息版本。
例如,在电信部门的客户分析数据仓库中,将周三下午 8 点从客户数据库中提取的客户列表与周二下午 8 点之前的客户订阅事件合并是不合逻辑的。这意味着我们正在查找没有关联订阅的客户。
Loading the Data
在提取数据之后,将其加载到临时数据存储中,在那里对其进行清理并使其保持一致。
Note - 仅当所有数据源加载到临时数据存储中时,才执行一致性检查。
一旦数据被提取并加载到临时数据存储中,就该执行清理和转换了。以下是清理和转换涉及的步骤列表:
-
将加载的数据清理并转换为结构
-
Partition the data
-
Aggregation
清理并转换加载的数据有助于加快查询。它可以通过使数据一致来完成:
-
within itself.
-
与同一数据源中的其他数据一致。
-
与其他源系统中的数据一致。
-
与数据仓库中现有的数据搭配使用。
转换包括将源数据转换为结构。对数据进行结构化有助于提高查询性能并降低运行成本。数据仓库中包含的数据必须经过转换,以支持性能需求并控制持续的运行成本。
Partition the Data
这样将优化硬件性能并简化数据仓库管理。我们在此将每个事实表划分为多个单独分区。
Aggregation
需要聚合来加速通用查询。聚合依赖于大多数通用查询将分析详细数据的子集或聚合这一事实。
Backup and Archive the Data
为了在数据丢失、软件故障或硬件故障时恢复数据,有必要定期进行备份。归档涉及以一种可以根据需要快速恢复的方式从系统中删除旧数据。
例如,在零售销售分析数据仓库中,可能需要保留 3 年的数据,而最近 6 个月的数据会保留在线。在这样的情况下,通常需要能够对今年和去年逐月进行比较。在这种情况下,我们需要从归档中恢复一些数据。
Query Management Process
-
manages the queries.
-
有助于加快查询执行时间。
-
将查询引导至最有效的数据源。
-
确保所有系统源以最有效的方式使用。
-
monitors actual query profiles.
仓库管理流程使用此流程生成的信息来确定要生成哪些聚合。此流程通常不会在将信息常规加载到数据仓库时运行。