在数据仓库架构中有一种部件叫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。
对于基于WEB环境的数据仓库系统来说,建立ODS是一个非常好的选择。WEB的点击流数据经过粒度管理器进入数据仓库,当需要对数据仓库中的数据进行访问时,一般会在数据仓库和WEB环境之间建立ODS,而将数据仓库中概况数据存入ODS中,迁移的频率可以根据具体情况自己来指定。这样,ODS和粒度管理器将数据仓库中的数据与WEB环境进行了隔离,提供给WEB环境高性能的查询。
Kimball对操作数据存储的定义是,面向主题的、集成的、经常更新的细节数据存储,用集成的数据来支持事务系统。Kimball也认可Inmon对ODS的分类,但是他认为ODS应该以星型结构来进行建模。
虽然Kimball对操作数据存储(ODS)的定义和Inmon基本上一样,但是他对操作数据存储的理解、作用与实现和Inmon有着较大的不同。
Kimball认为ODS在两种情况下是需要的:第一种情况是提供操作型报表,这些报表需要提供面向主题的、集成的数据,所以操作型的源系统无法提供;这些报表和数据仓库中的报表也不相同,因为它们可以是一些定制好的,写死在程序中的报表。第二种情况是需要提供实时的信息时,由于数据仓库的更新频率一般都是24小时,而用户会有更急切的需求来了解数据源的信息,这时,建立操作数据存储是很有必要的。
对于ODS是保存最细粒度数据的地方的说法,Kimball认为对于最细粒度数据,即原子数据层,应该保存在数据仓库中,而且应该置于维度框架和总线架构中。
一个和操作数据存储(ODS)常混淆的概念就是数据准备区(Data Staging Area)。很多人把供数据迁移的数据准备区称为ODS。事实上,ODS和Staging Area有着较为明显的不同。
ODS和数据准备区最大的区别就是,ODS是支持用户访问的,而数据准备区是不支持用户访问的。数据准备区包括一组数据迁移的程序和为了清洗数据而建立一组表结构及表中的数据。数据准备区是介于源系统和数据仓库之间的所有内容。而ODS的作用在前面已经提及,它主要是给用户提供分析的数据。ODS的数据来源主要是数据准备区,也有些来源于数据仓库。
另外,数据准备区的建模比较灵活,甚至可以不是关系型数据库。Staging的意思就是把数据写到磁盘上,而数据准备区用文件同样可以实现数据的清洗、整合过程。不多,大多的数据准备区都是建立在关系数据库之上。ODS的建模则需要考虑用户的需求,毕竟ODS是为用户提供数据的一个部件。
下面谈谈个人对操作数据存储(ODS)的一些观点。
首先要谈的是ODS的位置和作用。ODS应该位于源系统和数据仓库之间的一个独立部件,它的作用是给用户提供一些在源系统和数据仓库系统都不适合完成的功能。置于ODS应该对用户提供什么样的功能,我觉得没必要过于死板,可以根据自己的需要来定。
ODS应该是面向主题的。这一点我觉得是有必要的,ODS名称中虽然有操作两个字,但是它的目的主要还是查询和分析。所以面向主题可以使ODS中的数据目的性更明显。
至于ODS是否应该是集成的,我觉得对于大部分情况都是应该的。毕竟集成的数据可以发挥更大的作用,使分析更全面。但是对于实时性要求比较高的情形,集成是不太现实的,因为这时留给ETL的时间很短。集成和实时是一对矛盾的要求。
对于Inmon的第四类ODS,我觉得适用面可能要更广一些。从数据仓库中出来的一些概况数据及数据挖掘等应用的分析结果对于用户可能会起到非常大的作用。我们把这些数据单独保存在ODS中,供操作用户随时快速的查看,给他们的工作提供了极大的方便。
分享到:
相关推荐
操作数据存储(ODS)和数据集市,操作数据存储(ODS)和数据集市
操作数据存储(ODS)和数据集市详解 操作数据存储(ODS)是一种数据存储系统,旨在提供全局一致的、细节的、当前的数据,以支持企业的即时决策需求。ODS 是数据仓库体系结构的一部分,具备数据仓库的部分特征和 ...
【操作数据存储(ODS)】 ODS处于数据库和数据仓库之间,它是一个介于实时操作环境和分析环境的过渡层。ODS保持当前状态的详细数据,提供即时的数据访问,以满足企业对实时信息的需求。与数据库相比,ODS具有更快速...
* 动态数据:ODS存储的是当前数据,用于实时监控和实时业务需求。 ODS的优点是: * 满足企业的实时监控和实时业务需求。 * 提供了当前数据,用于实时决策和预警。 然而,ODS也存在一些缺点: * 不适合中远期决策...
- **影响分析**:由于涉及到关键的数据存储组件,此次扩容可能会对总部数据中心ODS的可用性造成影响,因此需提前做好数据备份等工作,确保数据安全。 #### 三、实施级别与客户方签字人员 - **实施级别**:根据操作...
【ODS与EDW的关系浅析】 ODS(Operational Data Store,运营数据仓储)和EDW(Enterprise Data Warehouse,企业数据仓库)在企业数据架构中扮演着至关重要的角色。ODS主要负责整合和提供近实时的运营数据,而EDW则...
《运营数据存储(ODS)系统v2.5——打造高效电信企业数据共享平台》 大唐ODS系统,全称为运营数据存储系统,是专为电信行业设计的企业级数据共享平台,旨在统一整合企业的运营数据,提升数据质量和时效性,以满足业务...
点胶数据.ods
《ODS数据仓库新技术的研究与应用》一文深入探讨了数据仓库领域中一项重要的技术——操作型数据存储(ODS)及其在实时系统中的应用。文章由东北林业大学的王霓虹和刘美玲撰写,发表于《信息技术》杂志第28卷第11期,...
操作数据存储(ODS)在这一体系中扮演着关键角色。ODS是一种短期数据存储区,用于整合来自多个数据源的原始数据,以便进行实时处理和分析。它不同于传统的数据仓库,后者通常用于长期存储历史数据,以供深度分析和...
ODS是一种介于OLTP(在线事务处理)系统和数据仓库之间的数据存储结构,它主要用来支持运营决策和实时分析。ODS的特点是数据实时或近实时更新,结构相对简单,数据粒度较细,能快速响应业务查询需求。 在IBM的设计...
3. 完成数据仓库中不能完成的一些功能:一般来说,带有 ODS 的数据仓库体系结构中,DW 层所存储的数据都是进行汇总过的数据,并不存储每笔交易产生的细节数据,但是在某些特殊的应用中,可能需要对交易细节数据进行...
特别是对于大型商业银行而言,如何有效地构建ODS(Operational Data Store,操作型数据存储)系统中的ETL体系架构,以应对海量数据的整合与处理,是一项极具挑战性的任务。 **ETL架构概述:** 在商业银行的ODS系统...
在 IT 领域,操作数据存储(Operational Data Store,简称 ODS)是一种特定类型的数据仓库,用于实时或近实时地提供业务运营所需的数据。ODS 的设计目的是支持企业的日常运营决策,它通常集成来自多个异构源的实时或...
随着企业对数据分析处理需求的日益增加,传统的数据库(DB)与数据仓库(DW)的两层架构已无法满足多层面的需求,因此引入了操作型数据存储(ODS)作为中间层,形成了DB-ODS-DW三层体系结构。Microsoft Excel作为一...
ODS是一种临时性的数据存储区,用于存放经过初步清洗和整合后的操作型数据。这些数据通常来源于企业的各种业务系统。 **特点:** 1. **实时性较高**:ODS中的数据更新频率较高,接近于实时。 2. **数据保留周期短**...
XX银行(操作型数据存储)ODS项目方案介绍.pptXX银行(操作型数据存储)ODS项目方案介绍.pptXX银行(操作型数据存储)ODS项目方案介绍.pptXX银行(操作型数据存储)ODS项目方案介绍.pptXX银行(操作型数据存储)ODS项目方案...
为解决这一问题,ODS作为企业数据的集中统一存储和跨系统应用平台应运而生。 ODS的概念由数据仓库专家Bill Inmon提出,其定义强调ODS是一个集成、实时、面向主题的细节数据集合,服务于企业即时性、操作性和集成的...