数据仓库实施步骤

  • 前言
  • 1. **定义范围**
  • 2. **确定需求**
  • 3. **逻辑设计**
  • 4. **物理设计**
  • 5. **装载数据**
  • 6. **访问数据**
  • 7. **管理维护**
  • 参考资料

前言

实施一个数据仓库项目的主要步骤是:定义项目范围、收集并确认业务需求和技术需求、逻辑设计、物理设计、从源系统向数据仓库装载数据、使数据可以被访问以辅助决策、管理和维护数据仓库。

1. 定义范围

在实施数据仓库前,需要制定一个开发计划。这个计划的关键输入是信息需求和数据仓库用户的优先级。当这些信息被定义和核准后,就可以制作一个交付物列表,并给数据仓库开发团队分配相应的任务。

首要任务是定义项目的范围。项目范围定义了一个数据仓库项目的边界。典型的范围定义是组织、地区、应用、业务功能的联合表示。定义范围时通常需要权衡考虑 资源(人员、系统、预算等)、进度(项目的时间和里程碑要求)、功能(数据仓库承诺达到的能力)三方面的因素。定义好清晰明确的范围,并得到所有项目干系人的 一致认可,对项目的成功是非常重要的。项目范围是设定正确的期望值、评估成本、估计风险、制定开发优先级的依据。

2. 确定需求

数据仓库项目的需求可以分为业务需求和技术需求。

  • 定义业务需求
    建立数据仓库的主要目的是为组织赋予从全局访问数据的能力。数据的细节程度必须能够满足用户执行分析的需求,并且数据应该被表示为用户能够理解的业务术 语。对数据仓库中数据的分析将辅助业务决策,因此,作为数据仓库的设计者,应该清楚业务用户是如何做决策的,在决策过程中提出了哪些问题,以及哪些数据是回答 这些问题所需要的。与业务人员进行面对面的沟通,是理解业务流程的好方式。沟通的结果是使数据仓库的业务需求更加明确。在为数据仓库收集需求的过程中,还要考 虑设计要能适应需求的变化。
  • 定义技术需求
    数据仓库的数据来源是操作型系统,这些系统日复一日地处理着各种事务活动。操作型系统大都是联机事务处理系统。数据仓库会从多个操作型源系统抽取数据。但 是,一般不能将操作型系统里的数据直接迁移到数据仓库,而是需要一个中间处理过程,这就是所谓的ETL过程。需要知道如何清理操作型数据,如何移除垃圾数据,如 何将来自多个源系统的相同数据整合在一起。另外,还要确认数据的更新频率。例如,如果需要进行长期的或大范围的数据分析,可能就不需要每天装载数据,而是每周 或每月装载一次。注意,更新频率并不决定数据的细节程度,每周汇总的数据有可能每月装载(当然这种把数据转换和数据装载分开调度的做法并不常见)。在数据仓库 设计的初始阶段,需要确定数据源有哪些、数据需要做哪些转换以及数据的更新频率是什么。

3. 逻辑设计

定义了项目的范围和需求,就有了一个基本的概念设计。下面就要进入数据仓库的逻辑设计阶段。逻辑设计过程中,需要定义特定数据的具体内容,数据之间的关系,支持数据仓库的系统环境等,本质是发现逻辑对象之间的关系。

  • 建立需要的数据列表
    细化业务用户的需求以形成数据元素列表。很多情况下,为了得到所需的全部数据,需要适当扩展用户需求或者预测未来的需要,一般从主题域涉及的业务因素入 手。例如,销售主题域的业务因素可能是客户、地区、产品、促销等。然后建立每个业务因素的元素列表,依据也是用户提出的需求。最后通过元素列表,标识出业务因 素之间的联系。这些工作完成后,应该已经获得了如下的信息:原始的或计算后的数据元素列表;数据的属性,比如是字符型的还是数字型的;合理的数据分组,比如国 家、省市、区县等分成一组,因为它们都是地区元素;数据之间的关系,比如国家、省市、区县的包含关系等。
  • 识别数据源
    现在已经有了需要的数据列表,下面的问题是从哪里可以得到这些数据,以及要得到这些数据需要多大的成本。需要把上一步建立的数据列表映射到操作型系统上。 应该从最大最复杂的源系统开始,在必要时再查找其他源系统。数据的映射关系可能是直接的或间接的,比如销售源系统中,商品的单价和折扣价可以直接获得,而折扣 百分比就需要计算得到。通常维度模型中的维度表可以直接映射到操作型源系统,而事实表的度量则映射到源数据在特定粒度级别上聚合计算后的结果。某些数据的获得 需要较高的成本,例如,用户想要得到促销相关的销售数据就不那么容易,因为促销期的定义从时间角度看是不连续的。
  • 制作实体关系图
    逻辑设计的交付物是实体关系图(entity-relationship diagram,简称ERD)和对它的说明文档(数据字典)。实体对应关系数据库中的表,属性对应关系数据库中的列。 ERD传统上与高度规范化的关系模型联系密切,但该技术在维度模型中也被广泛使用。在维度模型的ERD中,实体由事实表和维度表组成,关系体现为在事实表中引用维 度表的主键。因此先要确认哪些信息属于中心事实表,哪些信息属于相关的维度表。维度模型中表的规范化级别通常低于关系模型中的表。

4. 物理设计

物理设计指的是将逻辑设计的对象集合,转化为一个物理数据库,包括所有的表、索引、约束、视图等。 物理数据库结构需要优化以获得最佳的性能。每种数据库产品都有自己特别的优化方法,这些优化对查询性能有极大的影响。比较通用的数据仓库优化方法有位图索引和表分区。
位图索引和表分区。位图索引对索引列的每个不同值建立一个位图。和普通的B树索引相比,位图索引占用的空间小,创建速度快。但由于并发的DML操作会锁定整个位图段的大量数据行,所以位图索引不适用于频繁更新的事务处理系统。而数据仓库对最终用户来说是一个只读系 统,其中某些维度的值基数很小,这样的场景非常适合利用位图索引优化查询。遗憾的是有些数据库管理系统如MySQL,还没有位图索引功能。
大部分数据库系统都可以对表进行分区。表分区是将一个大表按照一定的规则分解成多个分区,每个表分区可以定义独立的物理存储参数。将不同分区存储到不同的磁盘上,查询表中数据时可以有效分布I/O操作,缓解系统压力。分区还有一个很有用的特性,叫做分区消除。查询数据的时候,数据库系统的优化器可以通过适当的查询条件过滤掉一些分区,从而避免扫描所有数据,提高查询效率,这就是分区消除
除了性能优化,数据仓库系统的可扩展性也非常重要。简单地说,可扩展性就是能够处理更大规模业务的特性。从技术上讲,可扩展性是一种通过增加资源,使服务 能力得到线性扩展的能力。比方说,一台服务器在满负荷时可以为一万个用户同时提供服务,当用户数增加到两万时,只需要再增加一台服务器,就能提供相同性能的服 务。成功的数据仓库会吸引越来越多的用户访问。随着时间的推移,数据量会越来越大,因此在做数据仓库物理设计时,出于可扩展性的考虑,应该把对硬件、软件、网 络带宽的依赖降到最低。第3章会详细讨论数据仓库在Hadoop上的扩展性问题。

5. 装载数据

这个步骤实际上涉及整个ETL过程。需要执行的任务包括:

  • 源和目标结构之间建立映射关系;
  • 从源系统抽取数据;
  • 对数据进行清洗和转换;
  • 将数据装载进数据仓库;
  • 创建并存储元数据。

6. 访问数据

访问步骤是要使数据仓库的数据可以被使用,使用的方式包括: 数据查询、数据分析、建立报表图表、数据发布等。根据采用的数据仓库架构,可能会引入数据集市的创建。通常,最终用户会使用图形化的前端工具向数据库提交查询,并显示查询结果。访问步骤需要执行以下任务:

  • 为前端工具建立一个中间层。在这个中间层里,把数据库结构和对象名转化成业务术语,这样最终用户就可以使用与特定功能相关的业务语言同数据仓库交互。
  • 管理和维护这个业务接口。
  • 建立和管理数据仓库里的中间表和汇总表。建立这些表完全是出于性能原因。中间表一般是在原始表上添加过滤条件获得的数据集合,汇总表则是对原始表进行聚 合操作后的数据集合。这些表中的记录数会远远小于原始表,因此前端工具在这些表上的查询会执行得更快。

7. 管理维护

这个步骤涵盖在数据仓库整个生命周期里的管理和维护工作。这步需要执行的任务包括:确保对数据的安全访问、管理数据增长、优化系统以获得更好的性能、保证系统的可用性和可恢复性等。

参考资料

[Book]Hadoop构建数据仓库实践, 第2章第5节 —— 数据仓库实施步骤

[数据仓库复习] —— 数据仓库实施步骤相关推荐

  1. [数据仓库复习] 数据仓库架构

    数据仓库架构 基本架构 主要数据仓库架构 1. 数据集市架构 2. Kimball数据仓库架构 3. 混合型数据仓库架构 操作数据存储 参考资料 基本架构 "架构"是什么?这个问题 ...

  2. hive olap 数据仓库_数据仓库那些事儿

    在文章开始前,各位读者大人如果听过数据仓库或者知道数据仓库,可以思考下数据仓库跟数据库有什么区别.如果未听过数据仓库,我猜你也想知道为什么有数据库了,还要数据仓库. 思考过后,我们来开始吧. 一.什么 ...

  3. 【数据仓库】数据仓库的介绍

    一 数据仓库的概念 1 什么是数据仓库 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH.数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合.它出于分析性报 ...

  4. 商业智能软件的实施步骤依次是什么?

    部分企业在刚开始接触商业智能的时候,以为只需要将商业智能软件买回就可以马上投入使用.其实并不是这么简单,商业智能软件作为一个解决方案,从前期的部署到后期的维护,需要考虑很多因素,比如数据系统后端架构, ...

  5. hadoop构建数据仓库实践 数据仓库简介和数据仓库设计基础章节 读书笔记

    1.数据仓库简介 1.0演变 1.1什么是数据仓库 本质:数据仓库试图提供一种从操作型系统到决策支持环境的数据流架构模型. 要解决的问题:多重数据复制带来的高成本问题(在没有数据仓库的时代,需要大量的 ...

  6. 数据仓库介绍:什么是数据仓库、数据仓库功能、数据仓库价值、数仓领域职业发展方向规划

    数据仓库介绍:什么是数据仓库.数据仓库功能.数据仓库价值.数仓领域职业发展方向规划 大家好,本次分享的主题是数据仓库,通过本次分享的目的,一个是帮助到初次接触大数据行业.或者想要了解大数据体系的伙伴, ...

  7. 数据仓库和数据仓库分层

    一.数据仓库概念 数据仓库(Data Warehouse),可简写为DW或DWH.数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合.它是单个数据存储,出于分析性报告和决策支持目 ...

  8. ai项目实施步骤_停止AI产品开发中道德责任的6个步骤

    ai项目实施步骤 这是官方的:人工智能(AI)并不是我们想要成为的公正的天才. Google的母公司Alphabet(Alphabet)使用其最新的年度报告来警告称,对其产品的道德顾虑可能会损害未来的 ...

  9. APS系统的实施步骤,外行人都能看懂

    可能很多人都有听过APS生产计划,但是很少有人知道APS排程具体是包括哪些步骤的,以及APS在企业生产过程中到底能起到什么样的作用,那么我们今天就来讲讲. 一.建模. 车间模型必须详细地捕捉生产流程的 ...

最新文章

  1. 【学习笔记】高斯整数、高斯素数、费马平方和(全部相关概念及例题详解)《初等数论及其应用》
  2. java8 监控文件变化_[Java 8] (4) 列举目录下的所有文件和监视文件变化
  3. Spark SQL JOIN操作代码示例
  4. c# 非顶层截屏_C#中三种截屏方式总结
  5. java接口方法实现_Java接口的简单定义与实现方法示例
  6. C语言 int y=10 do,删除学生信息算法执行完case10输入y 之后do whil
  7. 如何避免大规模线上故障?
  8. Linux 系统中随机数在 KVM 中的应用
  9. SQL Server执行大文件SQL脚本
  10. 谷歌浏览器、Yandex浏览器使用体验分享
  11. 在HTML中可以链接Word文档吗,为Word文档添加超文本链接就是这么简单!
  12. 【人工智能】从数据预处理到排序算法,全方位解读 Uber 人工智能客服 COTA
  13. 宝宝终于退烧了,高兴
  14. 重磅推荐:5款强大的开源报表工具!
  15. QT界面树形浏览与界面切换简单设计
  16. Pycharm下运行调试Python项目时,当调试既需要给调试的程序传入命令行参数又需要程序在设置的断点处停下里查看变量时的解决方法
  17. 学习笔记存款利息计算
  18. 【CT】【转】Church论题
  19. 最小二乘法拟合圆公式推导及vc实现
  20. mybatis日志配置

热门文章

  1. 四川多多开店:拼多多上面的东西是正品吗
  2. jsp+ssm计算机毕业设计旅游景点管理系统【附源码】
  3. 基于物联网网关的电表数采云平台
  4. Oracle中的 DML, DDL,DCL
  5. Centos服务器被挂马的一次抓马经历
  6. 淮阴工学院计算机课程,2017秋大学计算机(淮阴工学院)
  7. 23种设计模式(十四)模板方法模式(阁瑞钛伦特软件-九耶实训)
  8. 2014计算机知识竞赛,2014年计算机系防溺水安全知识竞赛试卷
  9. matlab 数理统计 pdf下载,十二五江苏省重点教材·数理统计学及其应用:使用MATLAB pdf 宗序平...
  10. 集群操作对ssh及scp命令报错问题解决归纳