数据仓库与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中的数据保存期限。
转载自:https://www.cnblogs.com/hbsygfz/p/4759680.html
数据仓库与ODS的更多相关文章
- 数据仓库与ODS的区别
我在公司的数据部门工作,每天的订单类数据处理流程大致如下: 删除分析数据库的历史订单数据 全量更新订单数据到分析数据库.(由于订单核心数据不大,所以经受得起这么折腾) 将数据简单清洗,并生成数据集市层 ...
- DW数据仓库与ODS的区别
这两天接触到ODS,开始很纳闷,有了DW(Data Warehouse)干嘛还要ODS(Operational Data Store),于是不查不知道,一查吓一跳,这里面还有这么多道道,这里总结一下, ...
- 数据仓库分层ODS DW DM 主题 标签
数据仓库知识之ODS/DW/DM - xingchaojun的专栏 - CSDN博客 数据仓库为什么要分层 - 晨柳溪 - 博客园 数据仓库的架构与设计 - Trigl的博客 - CSDN博客 数据仓 ...
- 数据仓库原理<3>:数据仓库与ODS
1. 引言 本篇主要讲述操作数据存储(ODS)系统产生的背景.定义.特点,以及它与数据仓库的区别. 在前两篇,笔者介绍了什么是数据仓库?为什么需要数据仓库?数据仓库系统的体系结构是什么?因此可能在读者 ...
- 【转】数据仓库ODS、DW和DM概念区分
今天看了一些专业的解释,还是对ODS.DW和DM认识不深刻,下班后花时间分别查了查它们的概念. ODS——操作性数据 DW——数据仓库 DM——数据集市 1.数据中心整体架构 数据中心整体架构 数 ...
- 浅析数据库(DB)、操作数据存储(ODS)和数据仓库(DW)的区别与联系
文章背景: 相信大部分刚接触上面三个概念的同学,都多多少少会有些迷惑,现在我就给大家简单分析下这三者的关系,希望大家对这三者的概念理解有所帮助吧. 本文主要从下面两类关系来叙述上面三者的关系: 数据库 ...
- 数据仓库DW、ODS、DM概念及其区别
整体结构 在具体分析数据仓库之前先看下一下数据中心的整体架构以及数据流向 数据中心整体架构.png DB 是现有的数据来源,可以为mysql.SQLserver.文件日志等,为数据仓库提供数据来源 ...
- 对数据仓库ODS DW DM的理解
原文链接:https://www.jianshu.com/p/72e395d8cb33 今天看了一些专业的解释,还是对ODS.DW和DM认识不深刻,下班后花时间分别查了查它们的概念. ODS——操作性 ...
- 转载:ODS简介
什么是ODS? 信息处理的多层次要求导致了一种新的数据环境——DB-DW的中间层ODS(操作型数据存储)的出现.ODS是“面向主题的.集成的.当前或接近当前的.不断变化的”数据.通过统一规划,规范框架 ...
随机推荐
- LeetCode - Boundary of Binary Tree
Given a binary tree, return the values of its boundary in anti-clockwise direction starting from roo ...
- LeetCode - Merge Two Binary Trees
Given two binary trees and imagine that when you put one of them to cover the other, some nodes of t ...
- webpack中hash、chunkhash、contenthash区别
webpack中对于输出文件名可以有三种hash值: 1. hash 2. chunkhash 3. contenthash 这三者有什么区别呢? hash 如果都使用hash的话,因为这是工程级别的 ...
- 发布自己的npm包
如何发布自己写的npm包,这里有详细解释 : https://blog.csdn.net/u010130282/article/details/82629924 本文旨在解释遇到的问题: 1:需要设置 ...
- 多线程线性 lock
有时我们lock一段代码或许要根据某个变量的值,值相同则不允许有两个或以上的方法并行运行,我在工作中就遇到了,有100个值,相同的参数值不能并行运行. 还有就是一个被lock的方法递归调用会不会死锁, ...
- linux前后台任务的切换以及执行暂停
command & 把command命令放到后台执行 ctrl+z 暂停该任务,并且放到后台 jobs 查看任务 bg n 把jobs号码为n的任务放到后台执行 fg n 把jobs号码为n的 ...
- JQuery注册页面表单检验完善
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 你不知道的JavaScript(中卷) (Kyle Simpson 著)
第一部分 类型和语法 第1章 类型 1.1 类型 1.2 内置类型 1.3 值和类型 1.3.1 undefined和undeclared 1.3.2 typeof Undeclared 1.4 小结 ...
- 合并两个sorted ranges(merge和inplace_merge)
merge //版本一:用operator <比较元素 template <class InputerIterator1,class InputerIterator2,class Outp ...
- P2P Downloader
P2P Downloader , 当然就是 P2P 下载器了 , 就是和 比特精灵 差不多的那种 . ^ ^ 不过这个项目没有代码 , 懒得写代码了 , 就文字描述一下吧 . ^ ^ P2P 下 ...