数仓系统与操作数据系统的差异
自然演化式体系结构(传统数据库)的问题
数据缺乏可信性
- 数据时效性无法统一
- 数据计算口径的差异
- 多层次的抽取,导致前两个因素的进一步严重
- 外部数据问题
- 无公共起始数据源
生产效率问题
当数据大量积累,用数年来积累的数据生成一张企业报表的时候,在不同阶段会遇到的问题。
第一步:要进行数据定位。
- 不同的系统的数据存放于不同的操作系统,访问整个企业的数据需要拥有不同的技能组合。
- 两个文件拥有相同名字的元素,但是元素的意义相差甚远;两份数据中相同意义的字段,但是字段名不同,这就不得不遍历每一个数据,不是按名称,而是按数据的定义和计算要求遍历。
第二步:从众多的数据源中取得数据而编写程序。
- 要写很多程序
- 每个程序都需要定制
- 程序涵盖了公司采用的所有技术
第三步:报表重复产出
- 扫描大量数据时,抢占资源。
- 当第二、三、四份报表产出需要扫描相同的数据,但是因为这些需求因素在第
一份报表中不存在,所以就会重复扫描大量数据。
总结:信息访问代价太高,并且需要大量时间 - 从数据到信息
例一个需求,在银行在一个很典型的需求:今年的账号活动同过去五年中各个年份有什么不同- 数据集成问题
分析员需要将未集成的遗留应用数据抽取。例如储蓄应用、借贷应用、活期存款应用和信托应用。然而用常规方法集成未必能做到,因为到处在这些应用建立的时候,从未考虑过集成。 - 历史数据丢失
不用应用系统中,保留的数据时间可能不同。
- 数据集成问题
数仓与传统数据库的差异
自然演化式体系结构的存在方式确实不足以满足将来的需求。这就需要进行一种更大的变化——体系结构的转变。于是引来了体系化的数据仓库环境。
在体系结构化环境的核心,主要存在两种数据:原始数据和导出数据。下表给出了原始数据与导出数据之间的一些主要区别
原始数据/操作型数据 | 导出数据/DSS型数据 |
---|---|
面向应用 | 面向主题 |
详细的 | 概要的,或精化的 |
在访问瞬间是准确的 | 代表过去的数据,快照 |
处理需求预先可知 | 处理需求事先不知道 |
对性能要求高 | 对性能要求宽松 |
一次访问一个单元 | 一次访问一个集合 |
事务处理驱动 | 分析处理驱动 |
就操作型数据更新责任来说更新控制是一个主要关心的问题 | 无更新控制问题 |
非冗余性 | 总是存在冗余 |
静态结构:可变的内容 | 结构灵活 |
一次处理数据量小 | 一次处理数据量大 |
支持日常操作 | 支持管理需求 |
访问频繁 | 按分析需求访问 |
以下是另外一些差异:
-
原始数据是维持企业日常运行所需的细节性数据;导出数据是要经过汇总或计算来满足公司管理者需要的数据。
-
原始数据可以更新;导出数据可以重新计算得出,但不能直接进行更新。
-
原始数据主要是当前值数据;导出数据通常为历史数据。
原始数据和导出数据拥有巨大差异,为了数据环境的稳定及性能等,无法存在同一数据库中,甚至不能共存于同一环境中。
在体系结构环境中有四个层次的数据——操作层➡原子或数据仓库层➡部门层(或数据集市层)➡个体层。
- 操作层:只包含面向应用的原始数据,并且主要服务于高性能事务处理领域。
- 数据仓库层:存储不可更新的集成的原始历史数据,也存放导出数据。
- 部门层:根据最终用户的需求为满足部门的特殊需要而建立的。
- 个体层:大多数为启发式分析。
用实际数据举例:
体系结构化环境中的数据集成是另外一个重要点。当数据从操作型环境传向数据仓库环境时,需要对数据进行集成。将同一粒度不同维度数据集成为一张宽表,存储到数据仓库中,为了获得数据仓库真正的效益,这一步必不可少。
用户是谁
数据仓库的用户也成为DSS分析员,他首先是个商务人员,意为懂业务,其次才是技术人员。DSS分析员的主要工作是定义和发现在企业决策中使用的信息。他们的思考方式是“发现模式”,即“给我看一下我说我想要的东西,然后我才能告诉你我真正想要什么。”只有看到数据时,才能探讨是否有必要进行分析。
它对数据仓库的开发方式和使用数据仓库的系统的开发方式有深远的影响,用数据激发需求。
数仓的附带好处
为重建工程创造条件,将生产环境的历史数据迁移至数仓,大幅减少生产环境数据,所产生的好处诸多,更易于纠错、重构、监控、索引,更具有可塑性。生产环境也会因此更稳定,高效等。
监控数仓环境
数据仓库的维护工作中的一个重要部分是对性能进行管理,这就需要对数据仓库环境进行监控。
监控主要分为两种:存储于数据仓库中的数据和数据的使用情况。通过监控数据能取得一些重要信息,包括:
-
确定发生了什么增长,增长发生在什么地方,增长以什么速率发生。
-
确定哪些数据正在被使用。
-
估算最终用户得到的响应时间。
-
确定谁在实际使用数据仓库。
-
说明最终用户正在使用数据仓库中的多少数据。
-
精确指出数据仓库何时被使用。
-
确定数据仓库中多少数据正在被使用。
-
检测数据仓库使用率。
总结归纳为三块,数据监控、用户监控、数仓使用监控。
数仓监控
监控最有效的用途之一是能够将今天的结果与每天平均的结果进行比较。发现异常时,能够回答“今天与每天平均的结果有什么不同?”。其二可以定期跟踪日均值的变化,就能观测出系统长期变化的趋势。
在数据监控处理期间,可以建立数据的各种概要文件,包括:
- 数据仓库中所有表的目录
- 这些表的内容概要
- 数据仓库中表的增长情况概要
- 用于访问表的可用的索引目录
- 汇总表和汇总源的目录。