ODS浅谈
ODS和DW
根据Bill.Inmon的定义,“数据仓库是面向主题的、集成的、稳定的、随时间变化的,主要用于决策支持的数据库系统” ;
ODS (Operational Data Store)操作型数据存储,ODS具备数据仓库的部分特征和OLTP系统的部分特征,它是“集成的、当前或接近当前的、不断变化的”数据,一般不保留数据的变动轨迹,是数据仓库体系结构中的一个可选部分;
|
ODS |
DW |
|
主要是和源系统表结构相同,表结构随着源系统变化 |
面向主题的表模型,模型相对稳定 |
|
一般只保留最新数据或较短时间段的数据 |
历史数据,记录轨迹 |
|
追求时间窗口短,满足报表数据的实效性 |
批处理时间窗口较长 |
|
Update、Insert、Merge操作 |
主要是Insert操作 |
ODS行业建设:
|
实施方案 |
特点 |
风险 |
|
数据仓库(DW) |
一般包含一个数据准备层,先进行源数据采集和清洗;有稳定成熟的模型; |
投入大、风险高 |
|
操作型数据存储(ODS) |
主要是快速采集源数据;一般也会采用DW的一些技术;可以部分保留较少天数的历史数据,不能满足企业的中远期决策需求;缺点是数没有稳定的数据层; |
投资小、但涉及技术较多 |
|
ODS+DW |
一般ODS用于报表数据源,同时为DW提供数据;DW作决策支持,提供历史数据; |
一般需要分步实施,降低风险 |
常用术语:
|
ETL(Extract Transform Load) 数据抽取转换加载软件 |
例如IBM Datastage、Informatic PowerCenter |
|
DM(Data Mart)数据集市 |
数据集市也可叫做“小数据仓库”。如果说数据仓库是建立在企业级的数据模型之上的话。那么数据集市就是企业级数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题。数据集市可以在一定程度上解决访问数据仓库的瓶颈 |
|
Cognos |
报表开发展现工具 |
|
Cube |
数据立方体,Cognos基于文件的多维数据组织,用于多维分析 |
|
主数据 |
主要的业务数据,例如客户信息、卡、帐户 |
|
Metadata元数据 |
数据的数据,包括数据源元数据、ETL规则元数据、OD元数据、报表元数据、接口文件元数据、业务规则元数据等 |
ODS优缺点:
主要优点:
- 提供T+1同构表给MIS系统使用,减轻了对源交易系统的数据访问压力;
- 屏蔽了众多的、异构的数据库,例如DB2/400、sqlserver,物理上集中存放到oracle数据库,降低了MIS系统部署难度;
- 可以统一进行清洗和简单的处理,例如统一Trim;
- 提供部分整合后的主数据层供用户访问,可以降低源系统变化带来的影响;
- 对多个应用系统公用的数据指标可以统一加工,提供公共加工层表;
- 提供各源系统批处理结束标志,方便MIS日报开发;
- 对MIS系统的批处理作业可以提供统一调度;
- 提供部分表的历史数据保存,方便MIS使用;
缺点和不足:
- 改善源系统的数据质量的能力有限,例如:如果源系统没有最后修改日期字段,ODS也较难提供增量数据给后面的应用系统;
- 增大了数据错误的机率;如果通过ETL工具也可以直接访问多个源系统数据并完成数据加工,在数据准确性上保障更高;
- 因为不能掌握全部的源系统数据,例如繁多的登记薄,一段时间内还需要由需求推动同构表的分析和采集工作;
- 没有稳定的、面向主题的数据模型;
- 不能大量地保存历史数据;
- 批处理时间窗口内不能提供数据访问;
ODS浅谈的更多相关文章
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
- 浅谈 LayoutInflater
浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...
- 浅谈Java的throw与throws
转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...
- 浅谈SQL注入风险 - 一个Login拿下Server
前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...
- 浅谈WebService的版本兼容性设计
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...
- 浅谈angular2+ionic2
浅谈angular2+ionic2 前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别. 1. 项目所用:angular2+ionic2 ...
- iOS开发之浅谈MVVM的架构设计与团队协作
今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...
- Linux特殊符号浅谈
Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...
- 浅谈Angular的 $q, defer, promise
浅谈Angular的 $q, defer, promise 时间 2016-01-13 00:28:00 博客园-原创精华区 原文 http://www.cnblogs.com/big-snow/ ...
随机推荐
- 2016 ACM/ICPC Asia Regional Qingdao Online HDU5889
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5889 解法:http://blog.csdn.net/u013532224/article/details ...
- shell中cut用法
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的.一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的. (1)其语法格式为:cut [-bn] [file] 或 cut ...
- ios项目中引用其他项目复习
ios项目中引用其他开源项目,今天再次复习了,记个备注. 1. 将开源项目的.xcodeproj拖入项目frameworks 2. Build Phases下 Links Binary With Li ...
- SqlSever基础 group by之后,加having 对分组之后的数据在进行处理
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- CANopen笔记1
CAN现场总线只定义了OSI网络模型的第一层(物理层) 和第二层(数据链路层) ,而这两层一般已被CAN硬件完全实现了.由于没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29 ...
- Bug2算法的实现(RobotBASIC环境中仿真)
移动机器人智能的一个重要标志就是自主导航,而实现机器人自主导航有个基本要求--避障.之前简单介绍过Bug避障算法,但仅仅了解大致理论而不亲自动手实现一遍很难有深刻的印象,只能说似懂非懂.我不是天才,不 ...
- 在服务器端如何提取checkbox提交的数据?
HttpServeletRequest 单个字符串,getParameters() 多个字符串,getParametersValues(),返回一个数组,需要提前定义一个数组
- tomcat源码导入eclipse步骤
1. 获取源代码 方式一:从官网http://tomcat.apache.org/download-70.cgi 直接下载,官网提供了Binary 和 Source Code两种下载方式,要研究tom ...
- ServiceStack.OrmLite 笔记4 删
删除 db.DeleteAll(); //各种姿势 db.Delete(p => p.Age == 27);// db.Delete(q => q.Where(p => p.Age ...
- HDU 5831 Rikka with Parenthesis II(六花与括号II)
31 Rikka with Parenthesis II (六花与括号II) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536 ...