数据仓库
数据仓库基础笔记思维导图已经整理完毕,完整连接为:
数据仓库基础知识笔记思维导图
前言
两种数据库观念
- 服务于操作型需求数据库
- 服务于信息型或分析型数据库
分析型环境又称决策支持系统(Decision-making Support System,DDS)
信息型和决策支持型系统处理核心–数据仓库
分析型信息型处理
服务于决策支持过程的管理需求,一般称为DSS处理 ,要在大量的数据中分析处理探索趋势
DSS环境重点
- 数据粒度
- 数据分区
- 元数据
- 数据可信度的缺乏
- DSS数据的集成
- DSS数据的时间基准
- 确定DSS的数据源–记录系统
- 数据迁移及方法
数据仓库本身意味着建立不同类型的数据库
决策支持系统的发展
数据仓库是一个需要从整体上着手,然后逐步解决具体细节问题的体系结构。
直接存取存储设备(Direct Access Storage Device,DASD): 指磁盘存储器
数据库管理系统(Database Management System,DBMS) :使程序员方便地在DASD上存储和访问数据,对数据进行索引等功能的新型系统软件。
在线事务处理(Online Transaction Processing,OLTP :是一种用于处理实时交易和数据记录的计算机处理方式。它是许多企业与机构日常运营中的关键组成部分,确保了数据的准确性和实时性。OLTP使用基于事务的处理方式,将并发用户的交易安全地提交到数据库中。它通过保证数据的一致性、原子性、持久性和隔离性来确保交易的完整性和可靠性。
在线分析处理(Online Analysis Processing,OLAP):一种用于分析和查询大规模数据集的计算机处理技术。OLAP技术主要用于多维数据分析和数据挖掘,通过提供多维数据模型和多维查询功能,帮助用户从不同角度和层次上对数据进行分析和查询,侧重分析决策。
抽取程序
抽取程序 : 搜索整个文件或者数据库 使用某些标准选择合乎要求的数据 并把这些数据传送到其他文件或者数据库去。
抽取程序受欢迎的原因
- 抽取处理将数据从高性能在线事务处理环境中转移出来,在对数据进行总体分析时,性能方面不存在冲突。
- 抽取程序将数据从操作型数据处理环境中转移出来 ,数据控制方式转移给最终的用户。
蜘蛛网
由于迭代抽取,随着业务自然演化,造成抽取处理失控,数据库体系结构越来越庞大 、越来越复杂,最后演变成类似蜘蛛网的结构。
自然演化体系结构的问题
- 数据可信性
- 生产率的问题
- 无法将数据转化为信息
数据缺乏可信性
原因
- 数据无时间基准
- 数据算法上的差异
- 抽取的多层次问题
- 外部数据问题
- 无公共起始数据源
生产率问题
数据定位问题
数年内积累的大量数据与众多文件,存储来不同的系统中 、不同的硬件中,并且相同文件相同元素存在差异。
数据编辑问题
- 要写的程序很多
- 每个程序都需要定制
- 程序涵盖了公司采用的所有技术
使用以形成蜘蛛网的遗留系统,信息访问费用非常高 并且需要花费很长时间才能建立。
从数据到信息
- DSS分析员将面对众多未集成的遗留应用,但是因为应用建立之初未考虑集成问题,从它们中抽取信息几乎不可能。
- 不同应用中,只有当前数据,并没有DSS分析员需求的历史数据。
体系结构的转变
原始数据/操作型数据 | 导出数据/DSS型数据 |
---|---|
面向应用 | 面向主题 |
详细的 | 概要的 |
在访问瞬间是准确的 | 代表过去的数据,快照 |
为日常工作服务 | 为管理者服务 |
可更新 | 不更新 |
重复运行 | 启发运行 |
处理需求预先可知 | 处理需求事先不知道 |
生命周期符合SDLC | 完全不同的生命周期 |
对性能要求高 | 对性能要求宽松 |
一次访问一个单元 | 一次访问一个集合 |
事务处理驱动 | 分析处理驱动 |
就操作型数据更新责任来说更新控制是一个主要关心的问题 | 无更新控制问题 |
高可用性 | 宽松的可用性要求 |
整体管理 | 以子集管理 |
非冗余性 | 总是存在冗余 |
静态结构 可变的内容 | 结构灵活 |
一次处理的数据量小 | 一次处理的数据量发 |
支持日常操作 | 支持管理需求 |
访问频繁 | 访问很少或不多 |
原始数据与导出数据差异如此巨大,它们根本不能存在于同一数据库中,甚至不能共存于同一个环境中。
体系结构层次
**企业信息源(corporate information factory,CIF )**体系结构的基石: 体系结构化环境四个层次。
操作层 | 原子层/数据仓库层 | 部门层 | 个体层 |
---|---|---|---|
细节的 日常的 当前值的 访问频繁 面向应用 | 大部分是粒度化数据 随时间变化的 集成的 面向主题 一些汇总 | 领域狭隘 一些导出数据 一些原始数据 如财务 市场 工程 保险 | 暂时的 为特定目的的 启发的 非重复的 基于PC和工作站的 |
体系结构化环境并没有产生太多的冗余数据
- 数据仓库环境存储的是历史信息,并不与操作环境中的当前信息重复。数据仓库中记录之间并没有重复,每个记录都有相关联的时间元素。
- 部门/数据集市环境数据是反向规范的和汇总的,与数据仓库环境数据有根本不同
- 个体层数据常常是暂时的,小规模的。
体系结构化数据集成
当数据从操作型环境流入数据仓库时,数据集成必须进行。
- 数据以非集成状态到达数据仓库,无法用于支持数据的企业视图。
- 未经集成的操作型数据都是复杂和难以处理的。
- 抽取/装载/转换(ETL)大部分可以自动进行 ,且继承集成只需要进行一次。
数据仓库的用户——DSS分析人员
- 首先是商务人员,其次才是技术人员
- 主要工作是定义和发现在企业决策中使用的信息
- 自身对数据仓库的使用的理解很重要
- 到DSS开发生命周期最后才发现真正的需求,自身从现有需求开始,要将新的需求考虑在内几乎是完全不可能的事
开发生命周期
数据仓库环境下系统开发生命周期与传统SDLC完全相反
传统SDLC | 数据仓库SDLC |
---|---|
收集需求 | 实现数据仓库 |
分析 | 集成数据 |
设计 | 检验偏差 |
编程 | 针对数据编程 |
测试 | 设计DSS系统 |
集成 | 分析结果 |
实现 | 理解需求 |
硬件利用模式
- 操作型环境处理中有多个波峰和波谷,存在相对静止的硬件利用模式
- 数仓环境中,利用二元模式。
重建工程创造条件
从生产环境移走大量数据
移走巨大数量数据,可以使生产环境更具可塑性。
- 生产环境更易于纠错
- 生产环境更易于重构
- 生产环境更易于监控
- 生产环境更易于索引
从生产环境中移走信息型处理
信息型处理移到数据仓库,生产环境中维护的负担将大大减轻。
- 信息型处理采用报表,屏幕显示,抽取等形式。
- 信息型处理特点是不停变化。
- 信息型处理在传统生产环境中,维护起来无休无止。
监控数据仓库环境
建立数据仓库后,需要对它进行维护。需要对性能进行管理,需要对数据仓库环境进行监控。
需要对数据仓库监控的基本点:
- 数据
- 数据使用情况
- DSS环境中的响应时间
数据仓库监控方式
- 最终用户终端
- 服务器层次
数据仓库体系结构
Inmon的企业信息化工厂
企业数据仓库是企业信息化工厂的枢纽,它是原子数据的集成仓库,从各种操作信息集成而来,包含一个确定得且一致的业务活动表示法,基于原子数据的性质,该数仓尽可能的包括底层的细节数据。
企业数据仓库不是通过分析型应用程序、商务智能工具或类似方法直接查询,它的目的是将附加的数据存储用于各种分析型系统,企业数据仓库通常存储与关系型数据库管理系统中。并且Inmon主张使用第三范式进行数据库设计。
对于主题区域来说,每个数据集市都从企业数据仓库中获取信息,并为后续的信息做好准备,Inmon主张在数据集市中采用维度设计的方法,数据集市可以从企业数据仓库的原子表示中聚集数据。
Kimball的维度数据仓库
维度数据仓库根据维度建模的原则来设计,它由一系列星型模式或者多维数据集组成,并且他们获取尽可能详尽的细节数据。
维度数据仓库也许能被分析型系统直接访问,虽然这种访问方式不是必要的,但是这种体系结构显然允许存在,数据集市的概念有着逻辑上的区别,数据集市是数据仓库中的主题区域。ETL开发者通常会将满足第三范式的一组表作为该过程的中间步骤,Kimball认为,如果这些临时表时由ETL过程,而不是其他任何过程直接访问,那么这在维度数据仓库中是可接受的。
独立型数据集市
独立型数据集市是一个分析型数据存储,并不是在企业环境中被设计的,它只关注于主题区域,一个或多个操作型系统可以满足一个被称作数据集市的数据库。数据集市可能采用维度设计、实体关系模型或是其他设计,分析型工具或应用程序对它直接进行查询,然后将结果反馈给最终用户。
独立型数据集市在短期内获取快速的、廉价的结果的同事,会导致长期费用的提高和效率的低下。数据集市本身可能是基于不同的技术,并且用户群体可能依赖于各自的查询和报表基础设施。这些特性经常使独立型数据仓库带有“信息孤岛”的标记,缺乏兼容性。多重独立型数据集市增加了整个解决方案的成本,需要对冗余技术,进程和技能集合进行维护。
即使最大限度的降低了这些技术的低效性,在数据中也仍然可能存在严重缺陷,如果构建的数据集市仅用于解决某一方面的需求,当需求扩大时,由于缺乏不同粒度的数据存储,数据集市将难以回答那些比原先预期需要更多细节信息的新问题,冗余的加载过程对源数据应用不同的规则,导致系统得出矛盾的结果。
由于最初是为了满足狭隘的需求,因此无法支持跨功能进行分析,需要大量的重复工作来适应更深、更广的需求,短期的节省将付出长期的代价。
独立型数据集市产生的问题不是因为采用星型模式导致的,相反,这是有独立型数据集市只关注有限范围这一缺陷造成的。
体系结构 | 提倡者 | 其他称谓 | 描述 | 维度设计的角色 |
---|---|---|---|---|
企业信息化工厂 | Bill Inmon | 原子数据仓库、企业数据仓库 | 企业数据仓库是原子数据的集成仓库、不能被直接访问、数据集市为部门使用/分析而重新组织数据 | 维度设计只应用于数据集市 |
维度数据仓库 | Ralph and Kimbal | 企业数据仓库、总线体系结构、结构化数据集市、虚拟数据集市 | 维度数据仓库是原子数据的一种集成仓库、可以被直接访问、包含在维度数据仓库的主题区域,有时称为数据集市、数据集市不要求是独立的数据库 | 所有数据按照维度组织 |
独立型数据集市 | 无倡导者但很常见 | 数据集市、竖井式、烟囱型、孤岛型 | 主题区域的实现不需要企业环境 | 可以使用维度设计 |
不同数据数据仓库设计方法对比
企业信息化工厂和维度数据仓库都关注企业级应用,他们的目的是支持跨企业或者组织机构的分析型需求,允许在一个主题区域内处理需求,需要采用一种工程化的方法来处理来自不同组织的数据需求。
独立型数据集市在关注企业级应用方面显示不足,其开发只考虑了来自一个小组或者部门的需求。
企业级 | 主题区域级 | |||||
---|---|---|---|---|---|---|
原子数据集成仓库 | 格式 | 直接访问 | 数据集市 | 格式 | 直接访问 | |
企业信息化工厂 | 有 | 第三范式 | 否 | 物理 | 维度* | 是 |
维度数据仓库 | 有 | 维度 | 是* | 逻辑* | 维度 | 是 |
独立型数据集市 | 无 | 物理 | 维度* | 是 |
“*”为可选标志
对于Inmon体系结构来说,数据集市是为部门使用而建立的一组表格,并且时物理分离的,可以聚集细节数据以适应部门或小组的特殊需要,这方面它与独立型数据集市有相似之处。然后企业信息化工厂中的数据集市在企业仓库中获取数据,因此内容与企业信息视图保持一致,这是独立型数据集市无法保证的。
对于Kimball体系来说,不要求数据集市与物理数据分开存储,相反它可以是一种逻辑构件,数据仓库表的子集。单独的数据集市报表可以随时构建。构建完毕后即可从集成仓库中得到报表。数据集市与企业信息视图保持一致。要么是由他们将这种视图具体化,要么是由他们从数据及时获取数据
Kimball维度数据仓库更加强调维度设计,依赖维度数据体系结构为企业和部门提供服务。Inmon则依靠维度模型在企业级解决方案背景下提供部门级的解决方案。多理性数据集市在使用维度设计时不考虑企业环境。