数据仓库 - 架构

  • 简述

    在本章中,我们将讨论数据仓库设计和数据仓库架构的业务分析框架。
  • 业务分析框架

    业务分析师从数据仓库中获取信息以衡量绩效并进行关键调整以赢得市场上其他业务持有者的支持。拥有数据仓库具有以下优势 -
    • 由于数据仓库可以快速有效地收集信息,因此可以提高企业的生产力。
    • 数据仓库为我们提供了客户和项目的一致视图,因此,它帮助我们管理客户关系。
    • 数据仓库还有助于通过以一致和可靠的方式长期跟踪趋势和模式来降低成本。
    要设计有效且高效的数据仓库,我们需要了解和分析业务需求并构建一个business analysis framework. 每个人对数据仓库的设计都有不同的看法。这些意见如下 -
    • 自上而下的视图− 该视图允许选择数据仓库所需的相关信息。
    • 数据源视图− 此视图显示操作系统正在捕获、存储和管理的信息。
    • 数据仓库视图− 该视图包括事实表和维度表。它代表存储在数据仓库中的信息。
    • 业务查询视图− 从最终用户的角度来看数据。
  • 三层数据仓库架构

    数据仓库一般采用三层架构。以下是数据仓库架构的三层。
    • 底层− 架构的底层是数据仓库数据库服务器。它是关系数据库系统。我们使用后端工具和实用程序将数据馈送到底层。这些后端工具和实用程序执行提取、清理、加载和刷新功能。
    • 中间层− 在中间层,我们有可以通过以下任一方式实现的 OLAP 服务器。
      • 通过关系型联机分析处理(ROLAP),这是一种扩展的关系数据库管理系统。ROLAP 将多维数据上的操作映射到标准的关系操作。
      • 通过多维联机处理(MOLAP)模型,直接实现多维数据和操作。
    • 顶级− 该层是前端客户层。该层包含查询工具和报告工具、分析工具和数据挖掘工具。
    下图描绘了数据仓库的三层架构 -
    数据仓库架构
  • 数据仓库模型

    从数据仓库架构的角度来看,我们有以下数据仓库模型 -
    • 虚拟仓库
    • 数据库
    • 企业仓库

    虚拟仓库

    操作数据仓库的视图称为虚拟仓库。建立虚拟仓库很容易。构建虚拟仓库需要操作数据库服务器的超额容量。

    数据库

    数据集市包含组织范围内数据的一个子集。该数据子集对组织的特定组很有价值。
    换句话说,我们可以声称数据集市包含特定于特定组的数据。例如,营销数据集市可能包含与商品、客户和销售相关的数据。数据集市仅限于主题。
    关于数据集市要记住的要点 -
    • 基于窗口或基于 Unix/Linux 的服务器用于实现数据集市。它们在低成本服务器上实现。
    • 实施数据集市周期是在短时间内衡量的,即以几周而不是几个月或几年为单位。
    • 如果数据集市的规划和设计不是组织范围的,那么从长远来看,数据集市的生命周期可能会很复杂。
    • 数据集市的规模很小。
    • 数据集市按部门定制。
    • 数据集市的来源是部门结构的数据仓库。
    • 数据集市是灵活的。

    企业仓库

    • 企业仓库收集了整个组织的所有信息和主题
    • 它为我们提供了企业范围的数据集成。
    • 数据是从操作系统和外部信息提供商集成的。
    • 这些信息可以从几 GB 到数百 GB、TB 或更多不等。
  • 负载管理器

    该组件执行提取和加载过程所需的操作。
    负载管理器的大小和复杂性因不同数据仓库的特定解决方案而异。

    负载管理器架构

    负载管理器执行以下功能 -
    • 从源系统中提取数据。
    • 快速将提取的数据加载到临时数据存储中。
    • 对类似于数据仓库中结构的结构进行简单转换。
    负载管理器

    从源中提取数据

    数据是从运营数据库或外部信息提供商中提取的。网关是用于提取数据的应用程序。它由底层 DBMS 支持,并允许客户端程序生成要在服务器上执行的 SQL。开放式数据库连接 (ODBC)、Java 数据库连接 (JDBC) 都是网关的示例。

    快速加载

    • 为了最小化总加载窗口,需要在尽可能快的时间内将数据加载到仓库中。
    • 转换会影响数据处理的速度。
    • 在应用转换和检查之前将数据加载到关系数据库中会更有效。
    • 网关技术被证明是不合适的,因为当涉及大量数据时它们往往性能不佳。

    简单的转换

    加载时可能需要执行简单的转换。完成后,我们就可以进行复杂的检查了。假设我们正在加载 EPOS 销售交易,我们需要执行以下检查:
    • 删除仓库中不需要的所有列。
    • 将所有值转换为所需的数据类型。
  • 仓库经理

    仓库经理负责仓库管理流程。它由第三方系统软件、C程序和shell脚本组成。
    仓库管理器的规模和复杂性因具体解决方案而异。

    仓库管理架构

    仓库经理包括以下内容 -
    • 控制过程
    • 存储过程或带 SQL 的 C
    • 备份/恢复工具
    • SQL脚本
    仓库经理

    仓库经理执行的操作

    • 仓库经理分析数据以执行一致性和参照完整性检查。
    • 针对基础数据创建索引、业务视图、分区视图。
    • 生成新聚合并更新现有聚合。生成规范化。
    • 将源数据转换并合并到已发布的数据仓库中。
    • 备份数据仓库中的数据。
    • 归档已达到其捕获生命周期终点的数据。
    Note− 仓库经理还分析查询配置文件以确定索引和聚合是否合适。
  • 查询管理器

    • 查询管理器负责将查询定向到合适的表。
    • 通过将查询定向到适当的表,可以提高查询和响应生成的速度。
    • 查询管理器负责安排用户提出的查询的执行。

    查询管理器架构

    以下屏幕截图显示了查询管理器的体系结构。它包括以下内容:
    • 通过 C 工具或 RDBMS 查询重定向
    • 存储过程
    • 查询管理工具
    • 通过 C 工具或 RDBMS 进行查询调度
    • 通过第三方软件查询调度
    查询管理器
  • 详细资料

    详细信息不在线保存,而是汇总到下一个详细级别,然后存档到磁带上。数据仓库的详细信息部分将详细信息保存在starflake schema中。详细信息被加载到数据仓库中以补充聚合数据。
    下图显示了详细信息的存储位置和使用方式的图形印象。
    详细资料
    Note− 如果将详细信息离线保存以最小化磁盘存储,我们应确保数据在归档前已被提取、清理并转换为 starflake 模式。
  • 概要信息

    摘要信息是存储预定义聚合的数据仓库的一部分。这些聚合由仓库经理生成。摘要信息必须被视为暂时的。它随时更改以响应不断变化的查询配置文件。
    有关摘要信息的注意事项如下 -
    • 摘要信息可加快常见查询的性能。
    • 它增加了运营成本。
    • 每当新数据加载到数据仓库中时,它都需要更新。
    • 它可能没有备份,因为它可以从详细信息中重新生成。