《DW2.0---下一代数据仓库的架构》读书笔记

在公司花了一天时间把这本书翻完了,这本书是PM借我看的,之前一直忙项目,没有时间看,在国庆期间就想把它看完早点还了。书不厚,才218页,所以比较快的看完了,总算完成了既定目标。这本书是老外写的,但是翻译的不错。至少我从头读到尾没感觉很不顺畅的地方。看封面上写的主要四个人翻译的,看来多点人翻译校对,翻译质量还是能够上去的嘛。这本书写的挺好,介绍了数据仓库的一些基本知识,虽然多是概念上的东西,没有什么实际案例,但是对于我入门还是挺有帮助的。

书的章节后都会有一个总结,整理的很好,有时候我会先看总结,然后再针对性的看详细内容,这样看起来效率蛮高,效果也不错。主要内容是介绍了DW2.0只区别于之前的数据仓库的变化,以及DW2.0中采用的一些方案,从数据的生命周期,谈到数据模型,如何应对不断变化的业务需求,ETL在数据仓库中的角色,以及后面的性能,成本考虑以及对非结构化数据的处理。感觉有些概念是需要记下的,大部分内容就摘录总结的内容了。

DW2.0是新一代数据仓库的构架
。DW2.0和第一代数据仓库有很大的差别。四个最大的差别如下:
1,随着数据进入并存储于数据仓库,产生了对数据生命周期的认识。
2,数据仓库中包含非结构化数据。
3,DW2.0环境包含元数据。
4,DW2.0的技术基础能够随着时间而变化。

DW2.0的四个主要的生命周期区:
1,交互区,数据仓库一更新模式在交易响应时间水平下完成构建
2,整合去,数据在这里经过整合并完成分析处理
3,近线区,作为整合区数据的一个缓存区域
4,归档区,存放访问概率显著下降但仍有可能访问的数据

以上的四个区,按照数据的时间进行划分,交互区的数据非常新,比如刚2秒的数据。整合区大概有24小时或一个月之久的数据。而近线区存放3~4年的数据,作为整合区的一个缓存,如果有些数据不被频繁的访问到,则可能会将数据从整合区放到近线区,反之也有可能移回整合区,在很多方面,近线区就是整合区的延伸,近线区时可选择的,亦即数据不一定需要经过这一区。但是当数据量非常大并且数据间的访问概率差别很大时,就可以利用近线区来处理。后面提到近线区的存储成本比整合区要低很多。归档区存放超过5年甚至10年的数据,这些数据一般不会被查询到,但是不排除专门的数据分析师会用到,所以还是需要存储的。


设置不同区的原因:
由于数据的访问概率和访问模式差别很大。比如交互区的数据被频繁访问,并且其访问模式是随机访问。这样就有必要将数据进行划分,区别对待,不同区的数据采用的技术会有所不同。在经典的数据仓库中,所有的数据都被存放在磁盘存储器上,好像所有的数据都有平等的访问机会。这样其实会导致数据越聚越多,造成经常被访问的数据的访问效率下降,对不同的数据要求的响应时间也会不同,比如历史很久的数据,查询很少,可以忍受等几个小时或一天的时间等数据出来。而最近的数据会被经常访问到,希望是秒杀级的速度。所以要将数据进行分区,集中性的处理。这样层次上也比较清晰。

数据是会会随着时间流动的,慢慢的从交互区,最终移动到归档区。数据的结构在不同的区之间可能会做些改变。不同的生命周期,数据的访问方式和分析手段会不同,对数据的响应要求也会改变,这样就会利用ETL或其他应用程序来处理。

整合区 的数据是在对交互区中的数据通过ETL层处理后收集得到的。在进行ETL处理时,同时进行数据的质量处理。简单的数据质量处理就是域检查和范围检查。

访问整合区中数据事务处理仅限于读取数据。这不像交互区中,删除,修改,整合区中的数据只能访问,不能更新。整合区中的数据不能添加,删除,修改意味着不溶于数据的更改,而是可以以一种不同的方式完成对数据的更改。整合区对于同一时间提出的问题保证了回答的一致性。整合区中有两种相关的参照完整性。 第一张是区间参照完整性,区间参照完整性指的是交互区通过各区时的完整性。就是说,当数据从交互区进入整合区时,数据必须有可辨别的源和目的以确保数据不会丢失。整合区中另一种参照完整性是相同区内的参照完整性,这种完整性意味着同一区内数据元素之间可能存在某种关系。

整合区的数据通常与使用它的某一特定版本的软件是兼容的。到归档数据被从归档环境中检索出来时,使用它们的这个版本的软件可能早已不存在了。因此,把归档区的数据结构设计的与整合区一样是不明智的 。没有任何理由不允许数据以两种格式存放在归档环境-一种是整合区中的源格式,另一种是更为简单通用的格式。


近线区
就像是整合区的一个缓存 。近线区基于非磁盘存储技术运行,其中包含了整合区中数据的镜像。近线区通过人工或者一种跨媒介存储管理(CMSM)方法与整合区连接。近线区的工作流主要是不频繁的数据读取。但是数据的读取都是集中进行的。当数据的访问频率下降时就被放入近线区。

DW2.0中的元数据
DW2.0中的每个区中都有各自的元数据,其中包括交互区元数据,整合区元数据,近线区元数据以及归档区元数据。归档区元数据不同于其他元数据,这是因为归档区元数据直接置于归档数据中,以确保元数据不会跟其所描述的基础数据分离或丢失。

DW2.0的方法与途径
成功实施DW不是一次性可以完成的,存在需求不明确,开发周期长等问题。所以企业需要采用一种螺旋型的开发方法,以快速多次迭代的方式完成数据仓库的开发。每次迭代的开发周期不应超过3个月 。引入
螺旋式方法 时第二代数据仓库迈向成功的关键一步,其被证明是建立数据仓库最为行之有效的方法。螺旋式方法因为“ 七流法 ”的实施,其功能更为强大。数据仓库/商业智能项目方法的七种流的每一种都侧重于企业数据结构的不同方面,并且都采用不同的和相应合适得工作方法:
1,企业参考模型流:以对象为单位建立的企业参考模型
2,企业知识协调流:以工作为单位建立的企业知识协调
3,信息工厂开发流:以主题为单位建立的信息工厂开发
4,数据归档定位流:以源为单位建立的数据归档和定位
5,数据纠正流:以属性为单位建立的数据校正
6,基础设施流:以组件为单位建立的基础设施管理
7,整体信息质量管理流:以工序为单位建立的整体信息质量管理
以上的每一事件流是根据不同的步调进行的。每一个流是同步开始和并发驱动的,并且需要监控和协调。

数据模型与DW2.0
建立数据模型的第一步是定义整合范围。数据模型建立在企业的数据基础之上,但是大多数机构有大量的数据,这样即使定义了整合范围,仍然可能导致数据模型的建立永无休止。在这种情况下,要明确的区分粒状型数据和概括型数据。
区别粒状型数据和概括型数据:
粒状型数据是指体现最底层意义的数据。一个人的姓名是粒状型数据,生日也是粒状型数据,薪水在一个时段内也可以看成是粒状型数据。概括型数据则是诸如一天的交易量,一个月的收入,一年企业的员工数,一个季度内的国民生产总值之类的数据。

关于为什么要区别
粒状型数据和概括型数据 主要有以下几个原因:
1,概括型数据远远多于粒状型数据
2,概括型数据变化速度比对其建模过程要快
3,概括型数据自身携带描述其是如何形成的算法。
如果数据模型中包含概括型数据,那么该模型肯定不能完成。

数据模型包括三个
层次 -ERD层,中间层以及底层。

交互区的形成由应用模型决定,整合区的形成由企业数据模型决定。
一些数据模型可以被用在非结构数据中。特别是外部分类可以有为它们建立的数据模型。另外,内部数据模型可以根据主题建立模型,这些主题是根据文本产生的。


监视机制:
数据仓库在大部分情况下,就像是一个黑盒,随着时间的变化,数据仓库会出现这样或那样的问题,所以要有相应的监视机制,在发生问题时能够提前通知,而不是我们被动的去做。在DW2.0环境中至少需要三种监视 :事务监视(包含响应时间,高峰期处理的资源使用情况,检测工作力量,队列长度等),数据质量监视(包含ETL数据质量,转化数据的完整一致性),数据仓库监视(检测数据的使用频度,休眠情况,通过嗅探sql可以做到)

ETL与DW2.0
ETL是用于转换数据状态的过程。数据通过ETL处理后由应用状态转换为企业状态。ETL处理发生在数据进入交互区时,在数据由交互区向整合区过渡时会再次发生。ETL可以以在线模式或批处理模式运行。以在线模式运行时强调的是数据的移动,而以批处理模式运行时强调的是数据的转换。 在大量的数据需要进入目的地时,ETL处理可以以一种并行的方式运行。ETL的一个副产品是用于描述数据移动的元数据,它的另一个副产品是审核记录。除了数据转换之后,ETL处理还包含了简单的数据质量检查。

DW2.0的性能问题
有两种类型的性能:事务型和分析型。当事务型处理的性能出现问题时,公司的操作型活动会受到影响,而当分析型处理的性能出现问题时,公司的分析能力就会受到影响。
提升性能 可以采用以下方法:
1,选择合适的索引
2,尽快移除休眠数据
3,培训终端用户怎样识别好的和差的代码
4,监控事务和数据仓库环境,以便当性能变差时,可以有一个用于判断到底出现什么错误的起点
5,规划容量以便组织可以预见资源将要被用完
6,升级,保证正在使用的是最新版本的硬件和软件
7,元数据,以便利用重用性,最小化所需的工作量
8,批处理,减少消耗的时间
9,事务并行,有效的处理大的工作负荷量
10,工作负荷量管理,保证一项工作不会因为大小而合其他工作冲突
11,数据集市,完成从中央数据仓库中转出的主要的分析型处理
12,探索工具,将统计型处理移动到其他位置进行
13,基于事务所要使用的资源将事务分为不同的类
14,服务标准协议,建立量化的指标来衡量性能
15,保护交互区来最小化资源的争夺
16,将数据分成不同类别来分别管理
17,选择合适的硬件和软件来实现性能
18,区别农民和探索者的工作
19,非正规化数据,将经常会被同时访问的数据物理的放到一起
20,检查由工具(如商业智能工具)自动产生的代码

数据集市 包含了用于做决策的部门数据。有若干理由支持建立数据集市:
1,机器周期成本低
2,终端用户拥有控制权
3,DW2.0的性能得以提升

猜你喜欢

转载自jianchen.iteye.com/blog/777436