数据仓库原理<3>:数据仓库与ODS
1. 引言
本篇主要讲述操作数据存储(ODS)系统产生的背景、定义、特点,以及它与数据仓库的区别。
在前两篇,笔者介绍了什么是数据仓库?为什么需要数据仓库?数据仓库系统的体系结构是什么?因此可能在读者心里已经形成了企业数据存储的DB~DW两层体
系结构的概念,但在实际应用中,并不总是这样,有时候我们可能需要ODS这一系统来搭建DB~ODS~DW三层数据体系,那么什么是ODS?为什么需要
ODS?ODS与DW的区别又是什么?下面将在第2-6节介绍ODS的理论知识,在第7节以电信运营商为例介绍ODS的实际应用。由于是学习心得,如有错
误或者不严谨的地方,希望读者批评指正。
2. ODS产生的背景
人们对数据的处理行为可以划分为操作型数据处理和分析型数据处理,操作型数据处理一般放在传统的数据库(Database,DB
)中进行,分析型数据处理则需要在数据仓库(Data Warehouse,DW
)中进行。但是并不是所有的数据处理都可以这样划分,换句话说,人们对数据的处理需求并不只有这两类,比如,有些操作型处理并不适合放在传统的数据库上完成,也有些分析型处理不适合在数据仓库中进行。这时候就需要第三种数据存储体系,操作数据存储(Operational Data Store,ODS
)系统就因此产生。它的出现,也将DB~DW
两层数据架构转变成DB~ODS~DW
三层数据架构。
那么,什么是ODS?
ODS是用于支持企业日常的、全局应用的数据集合。
(PS:这样定义,可能还是不清楚,看完下面3、4节应该就能明白~)
3. ODS数据的基本特征
ODS中的数据具有以下4个基本特征:
① 面向主题的:进入ODS的数据是来源于各个操作型数据库以及其他外部数据源,数据进入ODS前必须经过 ETL
过程(抽取、清洗、转换、加载等)。
② 集成的:ODS的数据来源于各个操作型数据库,同时也会在数据清理加工后进行一定程度的综合。
③ 可更新的:可以联机修改。这一点区别于数据仓库。
④ 当前或接近当前的:“当前”是指数据在存取时刻是最新的,“接近当前”是指存取的数据是最近一段时间得到的。
4. ODS的功能
(1)实现企业级的OLTP操作:
传统的操作型数据库往往只存放企业某一类业务或者某一个部门的数据,因此无法面向企业全局数据的OLTP,而ODS可以实现。因为ODS的数据是面向整个企业进行集成汇总的,克服了原来面向应用的操作型数据库数据分散的缺陷。
(2)实现即时的OLAP操作:
在数据仓库上进行OALP,往往由于数据量十分庞大而需要较长的时间。而在企业实际应用中,对于一些较低层次的决策,往往并不需要太多的历史数据,可能只需要参考当前的或者接近当前的数据就可以完成,并且要求具有较快的响应时间,因此数据仓库显然无法满足这样的要求,但是ODS可以实现。ODS中不仅有面
向企业全局的细节数据和汇总数据,而且规模比数据仓库小,具有较强的实时响应能力。
小结:通过3、4节的介绍,可以这样解释ODS的概念:
ODS是这样一种数据存储系统,它将来自不同数据源的数据(各种操作型数据库、外部数据源等)通过ETL过程汇聚整合成面向主题的、集成的、企业全局的、
一致的数据集合(主要是最新的或者最近的细节数据以及可能需要的汇总数据),用于满足企业准实时的OLAP操作和企业全局的OLTP操作,并为数据仓库提
供集成后的数据,将数据仓库系统中的ETL过程下沉到ODS中完成以减轻数据仓库的压力。
5. DB~ODS~DW三层体系结构
ODS和DW面向不同的用户,为不同的需求产生,因此都有不可替代的作用,两者相互结合、相互补充。
ODS在三层体系结构中扮演着承上启下的作用。
一方面,ODS在原来独立的各个DB的基础上建立了一个一致的、企业全局的、面向主题的数据环境,使原有的DB系统得到改造。
另一方面,ODS使DW卸去了数据集成、结构转换等一系列负担,对DW的数据追加通过ODS完成,大大简化的DW的数据传输接口和DW管理数据的复杂度。
ODS系统的建设,弥补了DB~DW两层体系结构的不足,但是ODS并不是必需的,当企业并不需要操作型集成信息时,基于DB~DW两层体系结构是较优的,如果需要,那么DB~ODS~DW三层体系结构则是较优的。
6. ODS与DW的区别
ODS在DB~ODS~DW三层体系结构中起到一个承上启下的作用。
ODS中的数据虽然具有DW中的数据的面向主题的、集成的特点,但是也有很多区别。
(1)存放的数据内容不同:
ODS中主要存放当前或接近当前的数据、细节数据,可以进行联机更新。
DW中主要存放细节数据和历史数据,以及各种程度的综合数据,不能进行联机更新。
ODS中也可以存放综合数据,但只在需要的时候生成。
(2)数据规模不同:
由于存放的数据内容不同,因此DW的数据规模远远超过ODS。
(3)技术支持不同:
ODS需要支持面向记录的联机更新,并随时保证其数据与数据源中的数据一致。
DW则需要支持ETL技术和数据快速存取技术等。
(4)面向的需求不同:
ODS主要面向两个需求:一是用于满足企业进行全局应用的需要,即企业级的OLTP和即时的OLAP;二是向数据仓库提供一致的数据环境用于数据抽取。
DW主要用于高层战略决策,供挖掘分析使用。
(5)使用者不同:
ODS主要使用者是企业中层管理人员,他们使用ODS进行企业日常管理和控制。
DW主要使用者是企业高层和数据分析人员。
7. ODS在电信行业的具体应用
(1)运营商为什么要建ODS?
随着市场的不断变化,电信运营商需要以“产品”为中心向以“客户”为中心转型,而这种转型需要建立客户统一视图信息,并实现信息在各渠道、前后端的共享,
但是目前这些数据分布在各个生产系统中,并存在各种数据不一致的现象。因此,提出了以ODS系统来解决这一问题。具体地说,希望通过ODS系统来满足以下
三种需求:
① 建立企业全局的客户统一视图信息,指导客户品牌经营和精确管理;
② 建立统一的数据共享平台,快速支撑跨系统应用,促进企业数据模型的落地,形成企业标准数据;
③ 提升企业数据质量,解决生产系统之间数据不一致、数据质量差的问题。
(2)ODS的系统定位:
ODS系统是一个跨系统的数据共享平台,承接操作环境和分析环境。
企业数据架构建立在统一的数据模型的基础上,由生产系统自有数据库、操作数据存储(ODS)、企业数据仓库(EDW)三个层面组成。其中,ODS存储按主
题分类的面向运营的准实时数据,提供统一的企业数据视图;生产系统自有数据库存储该生产系统内部实时交易数据;EDW存储面向经营决策分析的历史数据和综
合数据。
ODS对生产系统产生的数据进行清洗、过滤、转换、整合,是提供给EDW高质量数据的重要来源之一,同时为各个生产系统提供准实时的运营报表等跨系统共享
数据服务。另外,在企业运营层,对于需要同时利用跨系统的操作型数据和相关分析结果数据的协作性应用需求,ODS也起到关键支撑作用。
(3)ODS的业务目标:
① 统一准实时的数据共享
② 生产经营数据质量检查
③ 统一客户视图的提供与展示
④ 生产经营报表统一的提供与展示
⑤ 关键生产经营绩效指标与经营风险的监控
⑥ 跨系统的批量计算
(4)ODS与生产系统的比较:
相同点:
① 均包含当前的细粒度运营数据;
② 使用者都是一线的生产和管理人员;
③ 都是数据质量管理闭环流程中的一个环节(ODS对所存储的数据进行一致性、完整性、正确性的校验,形成数据校验结果并返回给源系统进行修正);
不同点:
① ODS不产生运营数据,运营数据由各个生产系统产生;
② 在数据质量管理闭环流程中,ODS负责发现数据质量问题,生产系统负责解决数据质量问题;
③ ODS为其他系统提供准实时的数据共享服务,生产系统提供实时的数据共享服务;
④ ODS提供基于跨系统数据的查询应用,生产系统通过与ODS合作提供跨系统的准实时查询应用;
⑤ ODS系统提供基于跨系统数据的固定或者动态报表,生产系统提供基于单系统的、实时性要求高的固定或动态报表;
⑥ ODS负责批量数据的计算,生产系统负责事务驱动的数据计算。
(5)ODS与EDW的比较:
相同点:
① ODS和EDW都不是运营数据的产生系统,都是通过ETL等过程从各种数据源中加载数据;
② ODS和EDW的数据都是分层存储,既有细节数据,又有根据不同维度汇总的综合数据;
③ ODS和EDW都可以提供基于跨系统整合后数据的报表类应用。
不同点:
① ODS中的细节数据时效性高,并提供给其他系统共享,而EDW中的细节数据时效性低,不提供给其他系统共享,只供自身挖掘分析使用;
② ODS中的数据汇总维度较少,EDW中数据汇总维度多。
③ ODS提供的报表内容主要是面向生产运营过程中数据的统计与监控,不做进一步分析和挖掘,而EDW中的报表内容主要是针对跨系统的数据进行深度分析和挖掘,着重趋势分析并提供评估和决策功能;
④ ODS面向一线生产的管理人员,EDW面向专业分析人员和企业中高层管理人员;
⑤ ODS中的运用数据来源是生产系统,EDW运营数据主要从ODS中获取,ODS中没有的才从生产系统中获取;
⑥ ODS中的数据保存期限短于EDW中的数据保存期限。
8. 参考文献
[1] 数据仓库(原书第4版),William H.Inmon著,王志海等译,机械工业出版社,2006.8
[2] 数据仓库与数据分析教程,王珊等编著,高等教育出版社,2012.8
[3] 百度文库:电信ODS规范
[4] 百度文库:中国电信ODS规范培训
数据仓库原理<3>:数据仓库与ODS的更多相关文章
- 数据仓库原理<1>:数据库与数据仓库
updated 2015.8.27 updated 2015.8.26 updated 2015.8.23 0. 说明 <数据仓库原理>系列博文,是笔者在学习数据仓库与商业智能时的读书笔记 ...
- 数据仓库原理<2>:数据仓库系统的体系结构
1. 引言 本篇主要讲述数据仓库系统的体系结构与组成要素.数据集市与数据仓库之间的关系.元数据的定义与作用. 在上一篇,笔者介绍了数据仓库的定义: "数据仓库是一个面向主题的.集成的.不可更 ...
- 数据仓库基础(四)ODS、元数据
本文转载自:http://www.cnblogs.com/evencao/archive/2013/06/14/3135691.html ODS的概念:是一个面向主题的.集成的.可变的.反应当前细节的 ...
- 数据仓库原理<4>:联机分析处理(OLAP)
本文转载自:http://www.cnblogs.com/hbsygfz/p/4762085.html 1. 引言 本篇主要介绍数据仓库中的一项重要分析技术——联系分析处理(OLAP). 在第一篇笔者 ...
- hive数据仓库入门到实战及面试
第一章.hive入门 一.hive入门手册 1.什么是数据仓库 1.1数据仓库概念 对历史数据变化的统计,从而支撑企业的决策.比如:某个商品最近一个月的销量,预判下个月应该销售多少,从而补充多少货源. ...
- OLAP与数据仓库------《Designing Data-Intensive Applications》读书笔记4
由于第三章的内容比较多,这里我们拆分成两篇读书笔记来记录.上一章我们聊了聊如何数据库是如何实现存储和检索的,今天这篇我们继续来看看OLTP与OLAP存储引擎的区别与联系. 1.OLTP与OLAP 联机 ...
- 数据仓库中的Inmon与Kimball架构
对于数据仓库体系结构的最佳问题,始终存在许多不同的看法,甚至有人把Inmon和Kimball之争称之为数据仓库界的“宗教战争”,那么本文就通过对两位提倡的数据仓库体系和市场流行的另一种体系做简单描述和 ...
- 使用ETL构建数据仓库的思考
使用ETL构建数据仓库的思考 背景:公司的数据仓库建设项目启动在即,所谓万事开头难,如何在我们数仓建设规划的前期做好业务数据准备和系统建设规划是我们需要思考的问题,这里根据之前的自己参与过的公司ODS ...
- 大数据开发实战:Hadoop数据仓库开发实战
1.Hadoop数据仓库架构设计 如上图. ODS(Operation Data Store)层:ODS层通常也被称为准备区(Staging area),它们是后续数据仓库层(即基于Kimball维度 ...
随机推荐
- Unity3D笔记 愤怒的小鸟<二> 实现Play界面
创建Play界面.能个把各个图片组合成一个场景,场景组成后背景能够不停的滚动,当鼠标单击时显示图片手型鼠标 一.GUI Texture 1.创建背景.地面.树木.草 ,这里注意Z轴的排序,一层一层则第 ...
- Spark2 ML包之决策树分类Decision tree classifier详细解说
所用数据源,请参考本人博客http://www.cnblogs.com/wwxbi/p/6063613.html 1.导入包 import org.apache.spark.sql.SparkSess ...
- iOS SwiftMonkey 随机暴力测试
参考源文章 https://github.com/zalando/SwiftMonkey https://kemchenj.github.io/2017/03/16/2017-03-16/ 简介 这个 ...
- Saltstack生产案例之Haproxy安装
cd /srv/salt/prod/ mkdir haproxymkdir keepalivedmkdir nginxmkdir phpmkdir memcachedmkdir pkg cd pkg ...
- POJ-1088 滑雪 (记忆化搜索,dp)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 86318 Accepted: 32289 Description Mich ...
- 基础知识系列☞C#中→委托
有些.NET中的高级特性,比如:委托! 有一种怎么也搞不懂的赶脚... 博客读了好几篇,代码也动手写了,书中的一些介绍也看了, 各种搜索关于委托的,至今还处于"会用"的阶段. 该怎 ...
- model方法取值总结
转自:https://www.cnblogs.com/ajianbeyourself/p/3604332.html
- C语言概述
打印摄氏度 /* 1.1 使用int类型进行计算 */ #include <stdio.h> /* print Fahrenheit-Celsius table for fahr = 0, ...
- LightOj 1265 - Island of Survival(概率)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1265 题目大意:有一个生存游戏,里面t只老虎,d只鹿,还有一个人,每天都要有两个生物碰 ...
- find a way to escape--hdu1593
题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1593 找到二者角速度相等时水中人的R,在此之前二者保持在一条直线上,之后水中的人沿直线到岸边S点匀 ...