数据仓库与ODS的区别

我在公司的数据部门工做,天天的订单类数据处理流程大体以下:数据库

  1. 删除分析数据库的历史订单数据
  2. 全量更新订单数据到分析数据库。(因为订单核心数据不大,因此经受得起这么折腾)
  3. 将数据简单清洗,并生成数据集市层
  4. 分析处理,产出报表。固然还有其余的数据也是这么处理的(好比产品的数据、景区的数据、票种的数据、供应商的数据等等)

还有日志类的数据,这里不是重点,就不介绍了!这么干了一年,发现有以下问题:架构

  • 业务变化很快,好比业务数据表常常变化字段含义、增长各类逻辑数据等
  • 业务数据源愈来愈多,随着品类愈来愈多,新部门逐步成立,数据源也就愈来愈多样化
  • 需求愈来愈多,愈来愈复杂,之前只有大佬想咱们要战略数据,但是如今全部的产品和运营都向咱们要各类各样的用户行为数据、订单分析数据和竞对优点数据
  • 数据的实时行要求愈来愈高,这到不是说秒级别就看见结果,而是早晨提出个新业务数据需求,晚上就要!

数据毕竟是为了市场服务的,因此需求咱们要跟上它的节奏,这就对数据系统提出了很大的挑战,致使数据质量降低、生产效率降低!该怎么解决哪?在解决这个问题的过程当中,逐步发现了一点苗头:发现咱们创建的数据仓库与它的定义不太符合。下面是数据仓库的定义:spa

数据仓库(Data Warehouse:是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support).net

很明显咱们并不符合相对稳定的和反应历史变化的两个条件,由于相似订单类数据,天天全量更新(缘由是同一个订单状态随着时间会变化,好比今天买了,明天退货了)。这就明显不符合想对稳定这一律念了,更别说反应历史变化了!通过最近的思考,发现本身搭建的系统更符合ODS的定义:日志

ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操做性的、集成的全体信息的需求。blog

那么你们可能会问ods和数据仓库的区别是什么哪?答:ods是短时间的实时的数据,供产品或者运营人员平常使用,而数据仓库是供战略决策使用的数据;ods是能够更新的数据,数据仓库是基本不更新的反应历史变化的数据,还有不少,这里就不一一列举了。ci

讲到这里问题就明晰了,如何能搭建一个体系,既能支持战略决策使用的数据仓库数据,又能兼容业务快速的变化和运营产品人员平常需求的ODS数据哪?开发

数据仓库和ODS并存方案

通过调研,发现大致上有三种解法:数据分析

一、业务数据 - ODS - 数据仓库产品

优势:这样作的好处是ODS的数据与数据仓库的数据高度统一;开发成本低,至少开发一次并应用到ODS便可;可见ODS是发挥承上启下的做用,调研阿里巴巴的数据部门也是这么实现的。

缺点:数据仓库须要的全部数据都须要走ODS,那么ODS的灵活性必然受到影响,甚至不利于扩展、系统的灵活性差

二、OB - ODS

优势:结构简单。通常的初创数据分析团队都是相似的结构,好比咱们部门就应该归结到这一范畴

缺点:这样全部数据都归结到ODS,长期数据决策分析能力差,软硬件成本高,模块划分不清晰,通用性差

三、数据仓库和ODS并行

可见这个模型兼顾了上面提升的各自优势,且便于扩展,ODS和数据仓库各作各的,造成优点互补!能够解决如今互联网公司遇到的快速变化、快速开发等特色!特别是对于那些刚刚建立数据团队,数据开发人员紧缺的公司,能够尝试使用这个数据架构解决问题!

参考资料:

http://wenku.baidu.com/view/c620146c7e21af45b307a86e?fr=prin

http://blog.csdn.net/hero_hegang/article/details/8691912

相关文章
相关标签/搜索