47、数据仓库测试、部署与管理全解析

数据仓库测试、部署与管理全解析

1. 数据仓库测试概述

在数据仓库接近投入生产阶段时,已经完成了ETL测试、功能测试、性能测试、安全测试,并且用户也对数据仓库进行了审查,所有请求都已处理。但在正式部署到生产环境之前,还需要进行端到端测试。

1.1 端到端测试

端到端测试是验证整个系统从始至终的运行情况。具体操作步骤如下:
1. 让数据仓库ETL流程运行几天,模拟实际运行条件,ETL批次自动运行。
2. 测试人员不时查询数据仓库并使用前端应用程序。
3. 检查是否有缺失的交易、客户或其他数据。
4. 检查数据质量是否良好。
5. 检查审计表是否已填充。
6. 检查ODS表是否正确填充。
7. 检查DDS中的所有事实表和维度表是否正确填充。
8. 检查暂存区是否正确使用和清理。
9. 检查应用程序、报告、立方体和挖掘模型。

这个过程就像是对所有内容进行最终检查,而且ETL会按照预定的时间表(每日、每小时、每周等)自动运行,不时地将数据馈送到数据仓库中。

有些人将端到端测试称为集成测试。可以在用户验收测试(UAT)之前进行,也可以在ETL和功能测试之后进行。在进行此测试时,需要记录所有内容,包括配置细节、初始数据细节、部署的代码库信息、部署方法以及加载数据的截止日期等。理想情况下,记录应以部署过程的形式呈现,这是一个逐步列出的清单,用于将数据仓库系统部署到任何环境。

完成端到端测试后,就可以准备迁移到生产环境了。

1.2 迁移到生产环境的“上线”清单

在将数据仓库部署到生产环境之前,需要遵循以下“上线”清单:
|序号|任务|具体内容|
| ---- | ---- | ---- |
|1|准备生产环境|确保生产环境就绪,检查生产SQL服务器的构建和配置是否正确,所有应用服务器(报告和分析服务)是否正确配置,完成磁盘分区/LUN屏蔽、数据库配置、存储分配等操作,打开用户所在网段与数据仓库SQL服务器之间的防火墙,并检查生产中使用的所有软件的许可证。|
|2|与帮助台协调一线支持|确保帮助台人员能够支持数据仓库及其应用程序,向他们解释所有功能,设置具有适当安全性的用户账户,并商定数据问题、访问和安全、技术问题以及业务问题的联系人。|
|3|将数据仓库系统移交给运营团队|将知识和责任从开发团队转移到运营团队,向运营团队详细解释数据仓库的所有功能,理想情况下,支持团队中应有专门的数据仓库管理员(DWA),提前至少三个月让DWA加入团队,参与开发的后期阶段、端到端测试和生产部署。在几周(如两到三周)内,开发/项目团队和运营团队共同支持数据仓库运营,之后双方签署交接文件。|
|4|培训用户并创建文档|培训最终用户并创建用户手册,向用户解释所有功能,引导他们了解系统,说明数据仓库中存储的数据以及数据的组织方式,逐个介绍所有应用程序,并将这些信息整理成简洁的用户指南,放在数据仓库门户中供所有用户阅读。|
|5|与DBA沟通|与数据库管理员(DBA)讨论数据库管理要求,包括容量规划、预计增长、磁盘空间、备份和测试恢复要求,以及灾难恢复(DR)计划。|
|6|创建数据仓库门户|确保用户有单一访问点来访问数据仓库报告、应用程序、用户指南和帮助台号码,根据用户需求正确配置和设置数据仓库门户,并设置安全安排。|

完成上述准备工作后,就可以将数据仓库部署到生产环境,此时不再进行测试。

2. 数据仓库管理

数据仓库迁移到生产环境后的任务可根据涉及的人员分为三类:
1. BI经理创建用户指南,开发团队编写系统文档和支持手册。
2. 商业智能经理(BIM)培训业务用户,开发团队培训数据仓库管理员(DWA)和支持台人员。
3. DWA设置用户,数据仓库投入运营。

2.1 监控数据仓库ETL

在数据仓库管理中,监控ETL流程至关重要。如果ETL当天完全不运行,只是意味着仓库中的数据是旧的;但如果ETL在当天运行到一半停止,数据可能处于不完整状态,这会导致区域总计不正确,数据仓库无法供用户使用。为避免这种情况,在某些实现中,可以在数据仓库完全准备好供用户使用之前,阻止最终用户访问(仅DWA可以访问)。

监控ETL的重要性体现在以下四个方面:
1. 避免长时间未发现问题 :手动检查可能导致一周都不知道ETL运行不正常。
2. 简化和加快监控过程 :ETL流程可能有数百个任务,手动检查可能需要数小时,而自动化监控可采用基于异常的报告,只在出现问题时生成报告,只需检查少数未正常工作的任务。
3. 及时发现夜间故障 :ETL可能在半夜失败,如果没有自动化监控,直到早上上班才会发现,此时可能来不及让数据仓库在当天可用。对于用于CRM的数据仓库,及时发现问题尤为重要,因为CRM活动必须在特定日期进行,否则会直接影响收入。
4. 保证一致性 :自动化过程每次执行相同的查询和步骤,可保证一致性,而手动检查更容易出错且繁琐。

理想情况下,ETL批处理不应因坏数据而失败,坏数据应进入数据质量隔离区,或者根据业务规则自动纠正后再加载到仓库中。

监控ETL流程可以通过以下两种方式进行:

2.1.1 通知

通知是指系统告知ETL是否正常工作或失败。通常有两种通知方法:
- 内部方法 :ETL任务本身内部记录其状态。这种方法设置成本通常较低,能获取更多ETL任务状态信息,但当某个任务在内存中挂起时,可能无法发送通知。例如,在SSIS中,可以在ETL批处理结束时添加发送邮件任务,将执行结果(成功或失败)以及时间戳写入审计表,然后将该表导出为文本文件或电子表格并附加到邮件中,还可以过滤只报告失败的流程,或者只在任务失败时发送邮件或短信通知。
- 外部方法 :外部监控系统定期检查ETL任务。这种方法可能更昂贵,需要购买监控软件(如GFI、Nagios、MOM 2005或Microsoft SCOM 2007),获取的ETL任务信息更有限,但更可靠,即使ETL任务崩溃也能收到通知。安装监控系统后,指定要监控的单个ETL任务,并配置通知方式和通知对象,这通常是一个更大监控系统的一部分,还包括数据仓库数据库和SQL Server健康检查。

2.1.2 对账

对账是比较源系统和目标系统的数据,以确定数据仓库中的数据是否正确。可以比较摘要值(如记录数量或总值)和详细数据(如特定事实表行)。对于摘要值,可以比较特定时间段(如上周)的计数或所有时间段的总计。使用特定时间段意味着记录较少,速度更快,但所有时间段的方法显然更全面。可以结合两种方法,例如每天检查特定时间段,每周检查所有时间段。例如,如果源系统中上周有723,094笔产品销售交易,那么数据仓库中也应该有相同数量的交易。

以下是监控ETL流程的mermaid流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px

    A([开始监控ETL流程]):::startend --> B{选择监控方式}:::decision
    B -->|通知| C(内部方法):::process
    B -->|通知| D(外部方法):::process
    B -->|对账| E(比较摘要值):::process
    B -->|对账| F(比较详细数据):::process
    C --> G(记录任务状态):::process
    D --> H(安装监控系统):::process
    E --> I(特定时间段计数):::process
    E --> J(所有时间段总计):::process
    F --> K(检查特定事实表行):::process
    G --> L(发送通知):::process
    H --> M(指定监控任务):::process
    M --> N(配置通知方式):::process
    I --> O(结合两种方法):::process
    J --> O
    K --> O
    L --> P([结束]):::startend
    N --> P
    O --> P

通过以上测试、部署和管理步骤,可以确保数据仓库的稳定运行和数据的准确性,为企业的决策提供可靠支持。

2.2 监控数据质量

数据质量是数据仓库的核心要素之一,它直接影响到基于数据仓库所做出的决策的准确性和可靠性。监控数据质量的目的在于确保数据仓库中的数据准确、完整、一致且及时。

2.2.1 数据质量问题的来源

数据质量问题可能源于多个方面,常见的包括:
- 数据源问题 :原始数据源可能存在数据录入错误、数据格式不一致、数据缺失等问题。
- ETL过程问题 :在数据抽取、转换和加载过程中,可能会因为ETL脚本的错误、数据清洗不彻底等原因导致数据质量下降。
- 系统故障 :硬件故障、软件漏洞等系统问题可能会导致数据损坏或丢失。

2.2.2 监控数据质量的方法

为了监控数据质量,可以采用以下方法:
- 数据验证规则 :定义一系列的数据验证规则,例如数据类型检查、范围检查、唯一性检查等。在数据进入数据仓库时,对数据进行验证,不符合规则的数据将被标记或拒绝。
- 数据对比 :定期将数据仓库中的数据与源系统的数据进行对比,检查数据的一致性。可以通过对账的方式,比较摘要值和详细数据,确保数据在传输和处理过程中没有丢失或错误。
- 数据质量指标 :建立数据质量指标体系,例如数据准确性、完整性、一致性等指标。定期对这些指标进行监测和分析,及时发现数据质量问题。

以下是一个简单的数据质量监控指标示例表格:
| 指标名称 | 定义 | 计算方法 | 目标值 |
| ---- | ---- | ---- | ---- |
| 数据准确性 | 数据与实际情况的符合程度 | (准确数据记录数 / 总数据记录数)× 100% | ≥ 95% |
| 数据完整性 | 数据包含所有必要信息的程度 | (完整数据记录数 / 总数据记录数)× 100% | ≥ 90% |
| 数据一致性 | 数据在不同系统或不同时间段的一致性 | (一致数据记录数 / 总数据记录数)× 100% | ≥ 98% |

2.2.3 数据质量问题的处理

当发现数据质量问题时,需要及时采取措施进行处理。处理方法包括:
- 数据清洗 :对不符合规则的数据进行清洗,例如修正错误数据、补充缺失数据等。
- 数据修正 :根据业务规则,对数据进行修正,确保数据的准确性和一致性。
- 问题追溯 :找出数据质量问题的根源,例如是数据源问题还是ETL过程问题,采取相应的措施进行改进。

2.3 管理安全

数据仓库中存储着企业的重要数据,因此管理安全至关重要。安全管理的目标是确保数据的保密性、完整性和可用性,防止数据泄露、篡改和丢失。

2.3.1 安全管理的措施

可以采取以下措施来管理数据仓库的安全:
- 用户认证和授权 :对用户进行认证,确保只有授权用户可以访问数据仓库。根据用户的角色和职责,为用户分配不同的权限,例如只读权限、读写权限等。
- 数据加密 :对敏感数据进行加密,确保数据在传输和存储过程中的保密性。可以采用对称加密或非对称加密算法对数据进行加密。
- 访问控制 :设置访问控制策略,限制用户对数据仓库的访问。例如,可以设置IP地址限制、访问时间限制等。
- 审计和监控 :对用户的访问行为进行审计和监控,及时发现异常访问行为。可以记录用户的登录时间、操作内容等信息,以便进行审计和追溯。

2.3.2 安全管理的流程

以下是一个简单的数据仓库安全管理流程:
1. 用户注册和认证 :用户向系统管理员提交注册申请,系统管理员对用户进行认证,为用户分配用户名和密码。
2. 权限分配 :系统管理员根据用户的角色和职责,为用户分配不同的权限。
3. 数据加密 :对敏感数据进行加密,确保数据的保密性。
4. 访问控制 :设置访问控制策略,限制用户对数据仓库的访问。
5. 审计和监控 :对用户的访问行为进行审计和监控,及时发现异常访问行为。
6. 安全事件处理 :当发现安全事件时,及时采取措施进行处理,例如锁定用户账户、通知管理员等。

以下是数据仓库安全管理流程的mermaid流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px

    A([用户注册申请]):::startend --> B(系统管理员认证):::process
    B --> C(分配用户名和密码):::process
    C --> D(权限分配):::process
    D --> E(数据加密):::process
    E --> F(访问控制设置):::process
    F --> G(审计和监控):::process
    G --> H{是否有安全事件}:::decision
    H -->|是| I(安全事件处理):::process
    H -->|否| J([继续监控]):::startend
    I --> J

2.4 管理数据库

数据库是数据仓库的核心组成部分,管理数据库的目的是确保数据库的性能、可用性和数据完整性。

2.4.1 数据库管理的任务

数据库管理的任务包括:
- 容量规划 :根据数据仓库的增长趋势,合理规划数据库的容量,确保数据库有足够的空间存储数据。
- 备份和恢复 :定期对数据库进行备份,确保在数据库出现故障时能够及时恢复数据。备份可以采用全量备份、增量备份等方式。
- 性能优化 :对数据库进行性能优化,例如创建索引、优化查询语句、调整数据库参数等,提高数据库的查询性能。
- 故障处理 :当数据库出现故障时,及时采取措施进行处理,例如修复数据库错误、恢复数据等。

2.4.2 数据库管理的流程

以下是一个简单的数据库管理流程:
1. 容量规划 :根据数据仓库的增长趋势,预测数据库的容量需求,制定容量规划方案。
2. 备份策略制定 :根据数据库的重要性和变化频率,制定备份策略,确定备份的时间间隔、备份方式等。
3. 性能监控 :定期对数据库的性能进行监控,例如监控数据库的响应时间、吞吐量等指标,及时发现性能问题。
4. 性能优化 :根据性能监控结果,对数据库进行性能优化,例如创建索引、优化查询语句等。
5. 故障处理 :当数据库出现故障时,及时采取措施进行处理,例如恢复数据库、修复数据库错误等。

以下是数据库管理流程的表格总结:
| 步骤 | 任务 | 具体内容 |
| ---- | ---- | ---- |
| 1 | 容量规划 | 预测数据库容量需求,制定容量规划方案 |
| 2 | 备份策略制定 | 确定备份时间间隔、备份方式等 |
| 3 | 性能监控 | 监控数据库响应时间、吞吐量等指标 |
| 4 | 性能优化 | 创建索引、优化查询语句等 |
| 5 | 故障处理 | 恢复数据库、修复数据库错误等 |

通过以上对数据仓库的管理措施,包括监控ETL、监控数据质量、管理安全和管理数据库,可以确保数据仓库的稳定运行和数据的高质量,为企业的决策提供有力支持。同时,随着企业业务的发展和数据量的增长,需要不断优化和改进数据仓库的管理策略,以适应新的需求和挑战。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值