在数据仓库架构中有一种部件叫Operational Data Store(ODS),中文一般翻译为“操作数据存储”。操作数据存储在通常的数据仓库架构中都是一个可选的部件,它和数据仓库起到互相补充的作用。
最早给ODS下定义的应该是数据仓库之父Inmon。他的定义是,操作数据存储(ODS)是面向主题的、集成的、可变的、反映当前数据值的和详细的数据的集合,用来满足企业综合的、集成的以及操作型的处理需求。
Inmon的这个定义与他对数据仓库的定义很像。其中前两个特性和数据仓库是一样的,即都是面向主题的和集成的,而后三个特性和数据仓库相差较大。
ODS中的数据是可以变化的。这一点是Inmon相对与他的CIF中的数据仓库来说的,在CIF中,数据仓库中的数据是不进行更新的,对于错误的处理通常是采用新的快照来进行保存。而ODS是可以按常规方法进行更新的。
ODS反映当前数据值。这一点是指ODS中不会长期的保留数据,通常ODS保留的数据的时限最长到一个月或三个月。而数据仓库可以保留五年、十年或更长的数据。
ODS中保留详细数据。这一点是说ODS中只保留原子数据,而不保留汇总数据。而在数据仓库中原子数据和汇总数据都会进行保留。这和ODS可更新的特性相关,因为随时可能将操作型系统的数据变化更新到ODS中,并且数据的迁移时间间隔会很短,这都使汇总数据在ODS中的意义不大。
Inmon在给ODS下了定义之后,进一步把ODS分成了四类。根据数据到达ODS的时间间隔,即数据从操作型系统生成开始到数据到达ODS为止的时间长短,ODS分为Class I、Class II、Class III和Class IV四类。
Class I的ODS指时间间隔为秒级,即对用户来说,ODS是个透明的部件,操作型系统业务发生后,数据立刻就可以在ODS中看到。这类ODS事实上是很难实现的。秒级的数据迁移间隔,我们没有时间进行数据的整合。对于此类ODS,从技术和成本上来说,都是不合算的。
Class II的ODS指时间间隔为小时级,即操作型系统业务发生后,数据要经个几个小时才能出现在ODS部件中。
Class III的ODS指时间间隔为天级,即我们常见到的数据仓库的迁移频率,如每天晚上进行一次数据迁移。
Class IV的ODS指时间间隔更长,可能为月级、甚至年级。Class IV和其他类尤为不同的一点是,Class IV的数据源经常是数据仓库。
需要说明的一点是,虽然ODS从概念上分成这样的四类,但是在进行数据仓库的架构时,我们不必过于刻板,四类ODS同时使用也应该是很正常的选择。例如,对于非常敏感的个别数据,我们可以选择Class I,而对于一般的数据,选择Class II或者Class III。个人感觉,Class IV是Inmon尤为推荐的一类。
Class I的ODS是实时数据仓库的一种实现方式。Class II和Class III的ODS是比较通常的ODS实现方式。Class IV的ODS非常有用的一类ODS实现方式。
在Class IV的ODS中,最为常见的记录就是从数据仓库中总结出来的概况数据(Profile Record)。概况数据是数据情况的大纲。以客户为例,可以总结的概况数据如下:每月买衣服的件数,每周的销售量,每年会看两次眼科医生等等。ODS中的概况数据是从大量的详细数据中总结出来的,大部分是统计和挖掘处理的结果,它们存放到ODS中,供操作人员了解客户的情况。
下面以点击流数据仓库举例来介绍一下Class IV的ODS。 上一篇:服务器常见故障 下一篇:浅析变化数据捕获 |