查看: 38323|回复: 45

[原创] 关于数据仓库 — ODS概念

[复制链接]
论坛徽章:
181
慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
跳转到指定楼层
1#
发表于 2006-12-16 14:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需 求。常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。

根据Bill.Inmon的定义,“数据仓库是面向主题的、集成的、稳定的、随时间变化的,主要用于决策支持的数据库系统”

ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需 求。常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。

在Kimball的<<数据仓库生命周期工具集The Data WareHouse Liftcycle Toolkit>>,他是这样定义的

1. 是操作型系统中的集成,用于当前,历史以及其它细节查询(业务系统的一部分)

2. 为决策支持提供当前细节数据(数据仓库的一部分)

因此操作数据存储(ODS) 是用于支持企业日常的全局应用的数据集合,ODS的数据具有面向主题、集成的、可变的和数据是当前的或是接近当前的4个基本特征。同样也可以看出ODS是介于DB和DW 之间的一种数据存储技术,和原来面向应用的分散的DB相比,ODS中的数据组织方式和数据仓库(DW)一样也是面向主题的和集成的,所以对进入ODS的数 据也象进入数据仓库的数据一样进行集成处理。另外ODS只是存放当前或接近当前的数据,如果需要的话还可以对ODS中的数据进行增、删和更新等操 作,虽然DW中的数据也是面向主题和集成的,但这些数据一般不进行修改,所以ODS和DW的区别主要体现数据的可变性、当前性、稳定性、汇总度上。

由于ODS仍然存储在普通的关系数据库中,出于性能、存储和备份恢复等数据库的角度以及对源数据库的性能影响角度,个人不建议ODS保存相当长周期的数据,同样ODS中的数据也尽量不做转换,而是原封不动地与业务数据库保持一致。即ODS只是业务数据库的一个备份或者映像,目的是为了使数据仓库的处理和决策支持要求与OLTP系统相隔离,减少决策支持要求对OLTP系统的影响。

为什么需要有一个ODS系统呢?一般在带有ODS的系统体系结构中,ODS都具备如下几个作用:

1) 在业务系统和数据仓库之间形成一个隔离层。

一 般的数据仓库应用系统都具有非常复杂的数据来源,这些数据存放在不同的地理位置、不同的数据库、不同的应用之中,从这些业务系统对数据进行抽取并不是一件 容易的事。因此,ODS用于存放从业务系统直接抽取出来的数据,这些数据从数据结构、数据之间的逻辑关系上都与业务系统基本保持一致,因此在抽取过程中极 大降低了数据转化的复杂性,而主要关注数据抽取的接口、数据量大小、抽取方式等方面的问题。

2) 转移一部分业务系统细节查询的功能

在 数据仓库建立之前,大量的报表、分析是由业务系统直接支持的,在一些比较复杂的报表生成过程中,对业务系统的运行产生相当大的压力。ODS的数据从粒度、 组织方式等各个方面都保持了与业务系统的一致,那么原来由业务系统产生的报表、细节数据的查询自然能够从ODS中进行,从而降低业务系统的查询压力。

3) 完成数据仓库中不能完成的一些功能。

一 般来说,带有ODS的数据仓库体系结构中,DW层所存储的数据都是进行汇总过的数据和运营指标,并不存储每笔交易产生的细节数据,但是在某些特殊的应用中,可能需要 对交易细节数据进行查询,这时就需要把细节数据查询的功能转移到ODS来完成,而且ODS的数据模型按照面向主题的方式进行存储,可以方便地支持多维分析 等查询功能。即数据仓库从宏观角度满足企业的决策支持要求,而ODS层则从微观角度反映细节交易数据或者低粒度的数据查询要求。

在一个没有ODS层的数据仓库应用系统体系结构中,数据仓库中存储的数据粒度是根据需要而确定的,但一般来说,最为细节的业务数据也是需要保留的,实际上 也就相当于ODS,但与ODS所不同的是,这时的细节数据不是“当前、不断变化的”数据,而是“历史的,不再变化的”数据。这样的数据仓库的存储压力和性能压力都是比较大的,因此对数据仓库的物理设计和逻辑设计提出了更高的要求。
论坛徽章:
51
2015年新春福章
日期:2015-03-06 11:57:31茶鸡蛋
日期:2012-03-18 19:28:08鲜花蛋
日期:2012-02-29 11:37:262012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:50:44ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
2#
发表于 2006-12-17 00:48 | 只看该作者
我觉得对这些细节, 现在还有很多争论, 所以大家要多看看实际项目的处理解决方案. 比如ODS, 可以是作为实时BI的, 而有很多项目是不用ODS作为更多前端应用的.比如很多报表\查询功能不是通过ODS的, 而是通过数据仓库或者数据集市. 而有的数据仓库也保留了低粒度的数据以供查询, 而并不是这些留给ODS去做.

有的项目ODS的集成程度都没有数据仓库/集市高, 并没有汇总多个系统数据,那么也就以为着不能提供复杂的查询,于是很多项目ODS只提供少量的前端服务.

我想楼主的这些知识可以给初学者一些参考, 可不能作为教科书呀,呵呵

使用道具 举报

回复
论坛徽章:
29
授权会员
日期:2006-09-06 10:13:102013年新春福章
日期:2013-02-25 14:51:24法拉利
日期:2013-08-25 18:34:31路虎
日期:2013-08-26 20:49:09问答徽章
日期:2013-11-26 08:58:15林肯
日期:2014-02-11 13:02:482014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:112014年世界杯参赛球队:巴西
日期:2014-05-29 16:03:24马上有房
日期:2014-11-18 16:07:15
3#
发表于 2006-12-18 13:22 | 只看该作者
一直认为ODS不是必须的,要依据需求而定。

使用道具 举报

回复
论坛徽章:
2
设计板块每日发贴之星
日期:2006-10-17 01:09:06授权会员
日期:2007-01-10 08:53:09
4#
发表于 2006-12-19 08:34 | 只看该作者
关注。。。

使用道具 举报

回复
论坛徽章:
51
2015年新春福章
日期:2015-03-06 11:57:31茶鸡蛋
日期:2012-03-18 19:28:08鲜花蛋
日期:2012-02-29 11:37:262012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:50:44ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
5#
发表于 2006-12-19 16:36 | 只看该作者
最初由 神呐救救我 发布
[B]一直认为ODS不是必须的,要依据需求而定。 [/B]

视情况而定,一般说的数据仓库都有多个数据源,数据源多而复杂的话,最好还是用ODS过渡。

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
122
马上加薪
日期:2014-02-19 11:55:14ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:拳击
日期:2011-03-29 13:11:152010广州亚运会纪念徽章:篮球
日期:2011-02-20 22:50:172011新春纪念徽章
日期:2011-02-18 11:42:492011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
6#
发表于 2006-12-19 17:30 | 只看该作者
最初由 神呐救救我 发布
[B]一直认为ODS不是必须的,要依据需求而定。 [/B]


ODS本来就不是必须的啊

主要看dw的粒度是怎么定的,业务需求是怎么样的

使用道具 举报

回复
论坛徽章:
181
慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
7#
 楼主| 发表于 2006-12-19 17:37 | 只看该作者
第一句话,就说了ODS是数据仓库项目的可选项之一!
ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需 求。常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。

使用道具 举报

回复
论坛徽章:
1
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
8#
发表于 2006-12-19 21:20 | 只看该作者
想了解一下ods在保持实时性方面是怎么实现的

是业务系统完成ods的加载呢,还是做一个接近实时的etl过程,或者其它一些方法?

使用道具 举报

回复
论坛徽章:
181
慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
9#
 楼主| 发表于 2006-12-19 21:52 | 只看该作者
呵呵,这个问题问得好!
保持实时性有很多种办法
1、利用数据库的特性,Oracle的logminer,SQLServer的分发订阅都可以实现,本质上都是通过数据库的日志分析来完成的。许多ETL工具即利用数据库的特性来实现实时操作。
2、Oracle数据库的话有standby方式,也可以认为是一个ODS数据库,即脱离联机在线OLTP的功能,达到数据整合的目的就行了。
3、Oracle的物化视图方式,也可以实现实时性的目的。当然也有一定的延迟!
4、准实时性的,就是普通的ETL抽取,1小时~1天不等的进行数据的定期抽取!

下面有篇不错的英文文章可以供参考一下:
变化数据捕捉的一些方法的总结
http://www.itpub.net/showthread.php?s=&threadid=649241
最初由 gary_yang2002 发布
[B]想了解一下ods在保持实时性方面是怎么实现的

是业务系统完成ods的加载呢,还是做一个接近实时的etl过程,或者其它一些方法? [/B]

使用道具 举报

回复
论坛徽章:
0
10#
发表于 2006-12-20 15:27 | 只看该作者

说点看法,请教

我们当前的这个项目中,有HDS,ODS,DDS,
其中HDS是直接从源数据来数据.可是从HDS到DDS的时候已经开始做了一些转换了.
这和楼主说的DDS概念是不是有点违背。
不过如果按上所说ods是直接从数据源业数,那么转换在哪里做呢?
请教

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表