大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
什么是ODS
操作数据存储ODS(OperationalData Store)是数据仓库体系结构中的一个可选部分,由业务系统产生的报表、细节数据的查询自然能够从ODS中进行,从而降低业务系统的查询压力。ODS设计与DW设计在着眼点上有所不同,ODS重点考虑业务系统数据是什么样子的,关系如何,在业务流程处理的哪个环节,以及数据抽取接口等问题。
ODS是一个将面向主题的,动态增长的,非实时的,消除了原始数据库差异的,对原始库最大限度进行冗余处理后得到的数据集,通过ODS消除了数据间的关联细节,实现了对某一领域数据进行统一处理(比如查询、统计)的快捷方法。
ODS的主要目的是为了降低数据仓库系统和业务系统之间的紧耦合。
ODS作用
1、 在业务系统和数据仓库之间形成一个隔离层
ODS用于存放从业务系统直接抽取出来的数据,这些数据从数据结构、数据之间的逻辑关系上都与业务系统基本保持一致,因此在抽取过程中极大降低了数据转化的复杂性,而主要关注数据抽取的接口、数据量大小、抽取方式等方面的问题
2、 转移一部分业务系统细节查询的功能
ODS的数据从粒度、组织方式等各个方面都保持了与业务系统的一致,那么原来由业务系统产生的报表、细节数据的查询自然能够从ODS中进行,从而降低业务系统的查询压力
3、 完成数据仓库中不能完成的一些功能
一般来说,带有ODS的数据仓库体系结构中,DW层所存储的数据都是进行汇总过的数据,并不存储每笔交易产生的细节数据,但是在某些特殊的应用中,可能需要对交易细节数据进行查询,这时就需要把细节数据查询的功能转移到ODS来完成,而且ODS的数据模型按照面向主题的方式进行存储,可以方便地支持多维分析等查询功能。
在一个没有ODS层的数据仓库应用系统体系结构中,数据仓库中存储的数据粒度是根据需要而确定的,但一般来说,最为细节的业务数据也是需要保留的,实际上也就相当于ODS,但与ODS所不同的是,这时的细节数据不是“当前、不断变化的”数据,而是“历史的,不再变化的”数据。
ODS与DW(数据仓库)的区别
1、数据的当前性
ODS包括的是当前或接近当前的数据,ODS反映的是当前业务条件的状态,ODS的设计与用户或业务的需要是有关联的,而DW则是更多的反映业务条件的历史数据。
2、数据的更新或加载
ODS中的数据是可以进行修改的,而DW中的数据一般是不进行更新的。ODS的更新是根据业务的需要进行操作的,而没有必要立即更新,因此它需要一种实时或近实时的更新机制。另外,DW中的数据是按照正常的或预先指定的时间进行数据的收集和加载的。
3、数据的汇总性
ODS主要是包括一些细节数据,但是由于性能的需要,可能还包括一些汇总数据,如果包括汇总数据,可能很难保证数据的当前性和准确性。ODS中的汇总数据生命周期比较短,所以可称作为动态汇总数据,如果细节数据经过了修改,则汇总数据同样需要修改。而DW中的数据可称为静态的汇总数据。
4、数据建模
ODS是站在记录层面访问的角度而设计的,DW或DM则是站在结果集层面访问的角度而设计的。ODS支持快速的数据更新,DW作为一个整体是面向查询的。
5、查询的事务
ODS中的事务操作比较多,可能一天中会不断的执行相同的事务,而DW中事务的到达是可以预测的。
6、用途
ODS用于每一天的操作型决策,是一种短期的;DW可以获取一种长期的合作广泛的决策。ODS是策略型的,DW是战略型的。
7、用户
ODS主要用于策略型的用户,比如保险公司每天与客户交流的客服;而DW主要用于战略型的用户,比如公司的高层管理人员。
8、数据量(主要区别之一)
ODS只是包括当前数据,而DW存储的是每一个主题的历史快照
ODS架构
ODS实现
1、划分主题(业务域),结合需求,对本业务域中的表进行分析冗余形成一个或多个大表–ODS表。
2、结合需求,对ODS数据抽取的粒度进行分析,这里面也许会做多级数据抽取。
3、通过具体的实现方法,给ODS表中抽取数据,抽取过程一般在停止业务或者服务器空闲的情况下进行,比如每天晚上抽取当天数据到ODS中。
4、对数据进行管理,数据库中的数据分为当前、历史、归档。
设计ODS系统
ODS可以有两种形式:ODS 数据缓冲区和ODS统一信息视图区。
(1)ODS数据缓冲区
ODS数据缓冲区是业务数据流动过程的第一个存储区,实现了数据仓库从各个业务系统的数据源中将数据抽取出来,并且装载到ODS数据缓冲区的这一过程,从而实现统一的、全局的企业数据平台,为以后的数据抽取、清洗、转换过程打下了坚实的基础。对于数据量大的数据源可以采用增量的方式进行抽取,对于经常变化更新的数据一般采用全量的方式进行抽取。ODS数据缓冲区具有实时性的特征,ODS系统将各个孤立的业务系统的生产运营数据集成起来,组成统一的、全局的企业数据交换平台。ODS数据缓冲区与业务数据的关系如图3-31所示。
(2)ODS统一信息视图区
ODS统一信息视图区是指有选择地集成各类业务源数据,对数据进行抽取、清洗、转换操作,以数据主题域为数据集成的基础,对数据进行分类和组织,使用户能够通过统一信息视图区获得跟某个主题域相关的实时性数据。各业务系统和ODS统一信息视图区可以互相访问,可以生成具有实时性的操作性报表和查询某一主题的近期全部信息。ODS统一信息视图区与各业务系统之间的关系如图3-32所示。
(3)ODS数据缓冲区和ODS统一信息视图区的区别和共同点
ODS数据缓冲区主要为业务源数据抽取到数据仓库中提供中间数据缓冲的功能,与ODS统一信息视图区最大的区别就是数据抽取、清洗、转换、加载的转换规则和数据存储的方式不同。ODS统一信息视图区是完全按照主题的方式进行数据存储,向用户提供快速的报表展示和数据实时查询的功能。而ODS数据缓冲区的ETL规则一般只进行简单的汇总、计算,或者从操作型数据库中直接抽取而中间不进行任何转化。ODS统一信息视图区的数据一般都是从ODS数据缓冲区中抽取过来的。ODS数据缓冲区和ODS统一信息视图区如图3-33所示。
设计方法
在数据仓库设计方法和信息模型建模方法中,前人的著作对各种思路和方法都做过大量的研究和对比,重点集中在ER模型和维模型的比较和应用上。根据我们的实践经验,ER模型和维模型在数据仓库设计中并非绝对对立,尤其在ODS设计上,从宏观的角度来看数据之间的关系,以ER模型最为清晰,但从实现出来的数据结构上看,用维模型更加符合实际的需要。因此孤立地看ER模型或者维模型都缺乏科学客观的精神,需要从具体应用上去考虑如何应用不同的设计方法,但目标是一定的,就是要能够把企业的数据从宏观到微观能够清晰表达,并且能够实现出来。
设计指南
在ODS的概念定义中,已经描述了ODS的功能和特点,实际上ODS设计的目标就是以这些特点作为依据的。ODS设计与DW设计在着眼点上有所不同,ODS重点考虑业务系统数据是什么样子的,关系如何,在业务流程处理的哪个环节,以及数据抽取接口等问题。
第一步:数据调研
数据调研的内容和要求,在《调研规范》文档中做了详细定义,此处不再重复。
第二步:确定数据范围
确定数据范围实际上是对ODS进行主题划分的过程,这种划分是基于对业务系统的调研的基础上而进行的,并不十分关心整个数据仓库系统上端应用需求,但是需要把上端应用需求与ODS数据范围进行验证,以确保应用所需的数据都已经从业务系统中抽取出来,并且得到了很好的组织。一般来讲,主题的划分是以业务系统的信息模型为依据的,设计者需要综合各种业务系统的信息模型,并进行宏观的归并,得到企业范围内的高层数据视图,并加以抽象,划定几个逻辑的数据主题范围。在这个阶段,以ER模型表示数据主题关系最为恰当。第二步:根据数据范围进行数据分析和主题定义 在第一步中定义出来了企业范围内的高层数据视图,以及所收集到的各种业务系统的资料,在这一步中,需要对大的数据主题进行分解,并进行主题定义,直到每个主题能够直接对应一个主题数据模型为止。在这个阶段,将把第一步生成的每个ER图中的实体进行分解,分解的结果仍以ER表示为佳。
第三步:定义主题元素
定义维、度量、主题、粒度、存储期限
定义维的概念特性:
维名称,名称应该能够清晰表示出这个维的业务含义。
维成员,也就是这个维所代表的具体的数据,
维层次,维成员之间的隶属与包含的层次关系,每个层次需要定义名称
定义度量的概念特性:
度量名称,名称应该能够清晰表述这个度量的业务含义
定义主题的概念特性:
主题名称和含义,说明该主题主要包含哪些数据,用于什么分析;
主题所包含的维和度量;
主题的事实表,以及事实表的数据。
定义粒度:
主题中事实表的数据粒度说明,这种粒度可以通过对维的层次限制加以说明,也可以通过对事实表数据的业务细节程度进行说明。
定义存储期限:
主题中事实表中的数据存储周期。
第四步:迭代,归并维、度量的定义
在ODS中,因数据来自于多个系统,数据主题划分时虽然对数据概念进行了一定程度上的归并,但具体的业务代码所形成的各个维、以及维成员等还需要进一步进行归并,把概念统一的维定义成一个维,不允许同一个维存在不同的实体表示(象不同的业务系统中一样)。
第五步:物理实现
定义每个主题的数据抽取周期、抽取时间、抽取方式、数据接口,抽取流程和规则。
物理设计不仅仅是ODS部分的数据库物理实现,设计数据库参数、操作系统参数、数据存储设计之外,有关数据抽取接口等问题必须清晰定义。
ODS行业建设:
实施方案 | 特点 | 风险 |
数据仓库(DW) | 一般包含一个数据准备层,先进行源数据采集和清洗;有稳定成熟的模型; | 投入大、风险高 |
操作型数据存储(ODS) | 主要是快速采集源数据;一般也会采用DW的一些技术;可以部分保留较少天数的历史数据,不能满足企业的中远期决策需求;缺点是数没有稳定的数据层; | 投资小、但涉及技术较多 |
ODS+DW | 一般ODS用于报表数据源,同时为DW提供数据;DW作决策支持,提供历史数据; | 一般需要分步实施,降低风险 |
常用术语:
ETL(Extract Transform Load) 数据抽取转换加载软件 | 例如IBM Datastage、Informatic PowerCenter |
DM(Da | 数据集市也可叫做“小数据仓库”。如果说数据仓库是建立在企业级的数据模型之上的话。那么数据集市就是企业级数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题。数据集市可以在一定程度上解决访问数据仓库的瓶颈 |
Cognos | 报表开发展现工具 |
Cube | 数据立方体,Cognos基于文件的多维数据组织,用于多维分析 |
主数据 | 主要的业务数据,例如客户信息、卡、帐户 |
Metadata元数据 | 数据的数据,包括数据源元数据、ETL规则元数据、OD元数据、报表元数据、接口文件元数据、业务规则元数据等 |
ODS优缺点:
主要优点:
- 提供T+1同构表给MIS系统使用,减轻了对源交易系统的数据访问压力;
- 屏蔽了众多的、异构的数据库,例如DB2/400、sqlserver,物理上集中存放到oracle数据库,降低了MIS系统部署难度;
- 可以统一进行清洗和简单的处理,例如统一Trim;
- 提供部分整合后的主数据层供用户访问,可以降低源系统变化带来的影响;
- 对多个应用系统公用的数据指标可以统一加工,提供公共加工层表;
- 提供各源系统批处理结束标志,方便MIS日报开发;
- 对MIS系统的批处理作业可以提供统一调度;
- 提供部分表的历史数据保存,方便MIS使用;
缺点和不足:
- 改善源系统的数据质量的能力有限,例如:如果源系统没有最后修改日期字段,ODS也较难提供增量数据给后面的应用系统;
- 增大了数据错误的机率;如果通过ETL工具也可以直接访问多个源系统数据并完成数据加工,在数据准确性上保障更高;
- 因为不能掌握全部的源系统数据,例如繁多的登记薄,一段时间内还需要由需求推动同构表的分析和采集工作;
- 没有稳定的、面向主题的数据模型;
- 不能大量地保存历史数据;
- 批处理时间窗口内不能提供数据访问;
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189239.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...