浅谈ODS与DW的区别-数据项目实战总结

浅谈ODS与DW的区别-数据项目实战总结

 

ODS 全称operation data store 或者 operational data store,中文意思是操作型数据存储(数据被操作产生的,例如电商交易数据 (客户买东西订单)  行业订单 工单数据(客户投诉数据) ),或者有的地方也叫运营数据仓储

1、在业务系统和数据仓库之间形成一个隔离层
 
一般的数据仓库应用系统都具有非常复杂的数据来源,这些数据存放在不同的地理位置、不同的数据库、不同的应用之中,从这些业务系统对数据进行抽取并不是一件容易的事。因此,ODS用于存放从业务系统直接抽取出来的数据,这些数据从数据结构、数据之间的逻辑关系上都与业务系统基本保持一致,因此在抽取过程中极大降低了数据转化的复杂性,而主要关注数据抽取的接口、数据量大小、抽取方式等方面的问题。
 
2、转移一部分业务系统细节查询的功能
 
在数据仓库建立之前,大量的报表、分析是由业务系统直接支持的(比如 市场部门要看昨天的经营分析情况 如果没有数据仓库系统 就只能直接对业务生产系统库进行临时各种需求的分析查询),在一些比较复杂的报表生成过程中,对业务系统的运行产生相当大的压力。ODS的数据从粒度、组织方式等各个方面都保持了与业务系统的一致,那么原来由业务系统产生的报表、细节数据的查询自然能够从ODS中进行,从而降低业务系统的查询压力。

粒度 注:

对于一条操作型数据来说 有很多个属性 以电信行业投诉工单为例 ,有投诉时间 号码归属地省 号码归属地市 投诉号码  用户唯一标示 投诉类型 投诉内容等等。

最细粒度 意思就是 到用户唯一id 的统计数据,即详单数据

粗一点的粒度 即是不到用户这么细的统计数据 比如 到地市的统计数据 如 xx市 投诉用户总数


3、完成数据仓库中不能完成的一些功能
 
一般来说,带有ODS的数据仓库体系结构中,DW层所存储的数据都是进行汇总过的数据,并不存储每笔交易产生的细节数据,但是在某些特殊的应用中,可能需要对交易细节数据进行查询,这时就需要把细节数据查询的功能转移到ODS来完成,而且ODS的数据模型按照面向主题的方式进行存储,可以方便地支持多维分析(指可以根据多个维度汇总生成统计数据)等查询功能。

多维分析举例:还是以电信行业投诉工单为例,时间 号码归属地省市 投诉类型 这些都是常见的维度 ,可以统计一个月 某个省有多少工单数 或者 一天某个市 投诉宽带慢(投诉类型)的工单有多少个,类似这些 就叫多维分析


在一个没有ODS层的数据仓库应用系统体系结构中,数据仓库中存储的数据粒度是根据需要而确定的,但一般来说,最为细节的业务数据也是需要保留的,实际上也就相当于ODS,但与ODS所不同的是,这时的细节数据不是“当前、不断变化的”数据,而是“历史的,不再变化的”数据。

 

数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制

 

 

1、数据仓库是面向主题的;操作型数据库的数据组织面向事务处理任务,而数据仓库中的数据是按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
主题举例:

移动某省经分系统 领导和市场部决策分析时关注的 几大重点方面 :4G 终端 政企 渠道 宽带等,各主题之间可能相互还有联系 ,且比如渠道这个主题 可能核和渠道管理系统 crm系统 计费系统 都想关,因为需要从这些系统取数据


2、数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出
 数据仓库的核心工具
来,进行加工与集成,统一与综合之后才能进入数据仓库;
数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
 
数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
 
数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到当前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
 
3、数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询;
 
4、数据仓库是随时间而变化的,传统的关系数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求。稳定的数据以只读格式保存,且不随时间改变。
 
5、汇总的。操作性数据映射成决策可用的格式。
 
6、大容量。时间序列数据集合通常都非常大。
 
7、非规范化的。Dw数据可以是而且经常是冗余的。

      跟业务生产系统严格要求的数据不能冗余的一致准确性不同  ,dw的数据经常是冗余的 不同的表可能都有某个属性信息,因为dw表的数据通常都是很大量的 或者高度聚合过的,如果想取某个属性 要通过表关联 这样的时间消耗是很大的 ,或者都是聚合过得表 无法通过关联取得想要的指标
 
8、元数据。将描述数据的数据保存起来。

包括数据源的描述信息 和 自己库、表的描述信息 。像源库的ip信息 自己库的ip信息 都属于元数据信息,通常这些还挺重要 当ods涉及到数据共享的时候,还有比较重要的就是像一些字段的编码 解释 比如 是否智能机 0 1两个值 性别等。或者客户每月消费等级 1 代表1-100元 2 代表 100-150元。此类信息看着很简单 但是实际做好元数据统一管理很重要。项目组曾经出现过 有人月初误把一个是否智能机的元数据维表 的字段 0 1值改成了 Y N 。导致所有的涉及到的定时执行的存储过程 用的 case when 来统计智能机和非智能机的数量 全部出问题 。最后结果是全体加班重新跑数据。

 
9、数据源。数据来自内部的和外部的非集成操作系统。

数据仓库和ods的数据源通常都是多样化 有db  文本 ws接口 消息队列等

 
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它并不是所谓的“大型数据库”。数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务,数据仓库往往有如下几点特点:
 
1.效率足够高。数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1-3日才能给出数据,显然不行的。

2.数据质量。数据仓库所提供的各种信息,肯定要准确的数据,但由于数据仓库流程通常分为多个步骤,包括数据清洗,装载,查询,展现等等,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。
 
3.扩展性。之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,未来不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。
 
数据仓库和ods的区别 还有一点是 ods基本只做数据层面的基础分析,而数据仓库会有涉及到业务模型的 需要依靠数据挖掘,比如某省移动之前在经分系统做的4g潜在用户模型、快递员模型 等。通过数据挖掘技术和业务分析 从全省用户找出 特定的用户群 以便做精准和针对性的营销。

 

 

你可能感兴趣的:(架构,数据,dw,数据仓库,bi)