ODS 与 EDW详细解析,不可或缺的应用场景
1 快速入门
ODS简单的理解为 Operational Data Store, 可操作的数据仓库。
EDW简单理解为 Enterprise Data Warehouse, 企业级数据仓库。
普遍存在于各种企业的BI(Business Intelligence) 项目。
ODS是数据仓库的一个扩展,它也是一个企业级的数据存储模式,它的构造也是面向主题的。ODS是企业中运行系统发布信息的地方,这些信息是实时或接近实时的,这些信息可以被企业中的其它系统使用,包括数据仓库。但ODS与数据仓库不完全一样,主要区别有四点:
1.ODS存放的数据是实时的、可动态刷新的,而数据仓库存储的数据是非实时的、静态的;
2.ODS主要保存当前运行系统的数据,而数据仓库除了保存当前数据,还需要保存大量的历史数据;
3.ODS主要保存明细数据,而数据仓库需要同时保存明细和汇总数据;
4.ODS中的数据可以用于日常分析,而数据仓库中的数据主要用于战略分析。
一般对于ODS设计有如下几个作用:
1.在业务系统和数据仓库之间形成一个隔离层。
2.转移一部分业务系统细节查询的功能。
3.完成数据仓库中不能完成的一些功能。
2 区别详解
维基百科对于ODS的定义为”An operational data store (or “ODS”) is a database designed to integrate data from multiple sources for additional operations on the data. Unlike a master data store, the data is not passed back to operational systems. It may be passed for further operations and to the data warehouse for reporting.” 翻译过来:ODS是一种数据架构或数据库设计的概念,出现原因是来自于当需要集成来自多个系统的数据,结果又要给一或多个系统使用时。”
ODS全称为Operational Data Store,按照字面意思理解为操作型数据存储, 是“面向主题的、集成的、可变的、反映当前数据值的和详细的数据的集合,用来满足企业综合的、集成的以及操作型的处理需求”(Bill.Inmon)。ODS在数据仓库中是可选择的一部分,但不是必须的。
EDW全称为Enterprise Data Warehouse,即企业级数据仓库,属于分析型数据。随着数据爆炸,数据量呈爆发式增长,机器学习与数据挖掘方法的不断改进,EDW在企业中处于越来越重要的位置。
关于数据库,ODS,EDW之间的关系,以下这张图非常好地描述了三者之间的关系。 
其中,ADB为传统的关系型数据库,A,B,C表示不同类型的数据流转。A环节表示生产环境中不同数据库之间直接交换数据,例如mysql,sqlserver,oracle等DB直接通过Informatic等工具交换数据。B表示生产环境中的应用数据通过ODS进行数据交换。C表示数据进行到EDW中。
3 以下简要说说两者的区别:
1) 使用人员的不同
ODS主要面向营业、渠道等一线生产人员和一线管理人员,为了实现准实时、跨系统的运营细节数据的查询,以获得细粒度的运营数据展现。ODS是可变数据,可以进行增删查改,是介于DB与DW的一种数据存储形态,目的是为了数据仓库的处理和决策系统要求与OLTP系统相隔离,减少决策系统对OLTP系统的性能影响。
EDW主要面向专业分析人员、辅助决策支持人员等,为了实现基于历史数据的统计分析和数据挖掘,以获得客户深层次的特征和市场发展的规律,例如专业分析人员的经营状况趋势分析由EDW提供支撑。
2)数据的规模不同
ODS支持OLTP类型的数据更新,而且一般保存近期数据,所以相对而言数据的量级不会太大;EDW保存的是全量历史数据,所以数据量要比ODS的规模大很多。
3) 数据来源不同
4) 数据获取性能与及时性
ODS支持OLTP类型的数据更新,数据更新时间短,数据可实现准实时更新,性能与及时性都高于EDW。
EDW因为存的是历史数据,而且数据量很大,一般都是通过批量的方式导入,所以数据的更新速度慢,无法实现实时更新,因此也不支持实时报表与事件监控类的需求。
5) 数据粒度
ODS提供简单的操作数据的统计,一般保存的数据粒度较小。有可能也存在部分粗粒度的汇总数据,但是一般汇总的维度少而且简单。
EDW关注对历史数据的深层次分析与挖掘.从分析与挖掘的需要出发按不同主题维度来汇总与组织数据。
EDW提供历史数据的展示和分析,主要提供多层粗粒度汇总数据.汇总的维度多且复杂。
