在对大数据的发展历程,整体架构和其中涉及到的相关组件有了一个初步的理解后。我们可以知道所谓的大数据实际上就是系统在运行过程中产生的各种日志的汇总集合,那么为了更进一步使数据能高复用,产生了数据仓库的概念,本章就是笔者结合自己的工作经历梳理数据仓库中的抽象层级,以便于加深对大数据架构的理解。
需要了解数据仓库,那么首先就要了解几个基本概念:
(1)DB(数据库):即DataBase的简称,在实际业务场景中,也称之为应用数据库,是现有的数据来源,具体的产品有mysql、oracle、sql server等一系列,为数据仓库提供数据来源。
(2)ETL:即Extract-Transform-Load的缩写,即将数据从源系统迁移到数据仓库的加工工程,包含几个步骤:
a、Extract:抽取数据,即在源系统中读取数据。
b、Transform:数据转化,把原始数据转化为需要的格式和维度,同时还可以进行数据清洗和去噪。
c、Load:数据加载,将处理后的数据加载上传到数据仓库中固化。
(3)ODS层:即Operational Data Store,即操作数据层,是作为应用数据库到应用仓库的一种过渡,也叫做贴源层。主要是多个应用数据库的汇总,基本不改变数据格式和结构,ODS层存储的数据周期较短(一般不超过一个月),且数据最终会流入到DW层里。其次,ODS给使用者提供的是当前系统的运行状态,一般来说ODS层可以作为数据仓库的入口层。ODS的数据是“实时值”,而数据仓库的数据却是“历史值”。主要特征有:
a、从业务直接抽取,与业务系统保持一致,降低了数据抽取的复杂性。
b、转移部分业务系统的细节查询功能,让部分报表直接从ODS里面取数。
c、作为数仓中明细层数据查询来源。
d、ODS数据作为过渡数据,只能增加不能修改,而且数据都是业务系统原样拷贝,所以可能存在数据冲突的可能,解决办法是添加时间戳来区分版本。
总之,ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于及时性的、操作性的、集成的全体信息的需求,常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。
那么为什么一定要有一个ODS系统呢?
原因有三点:
a、在业务系统和数据仓库之间形成一个隔离层。
b、转移一部分业务系统细节查询功能。
c、完成数仓中不能完成的一些功能。
(4)数据仓库DW(Data Warehouse),是数据的归宿,这里保持所有从ODS到来的数据,并长期保持。DW的数据实际存储在分布式文件系统中(HDFS),如果需要删除数据,只能对分布式文件系统进行操作,由于效率问题,数据仓库一般只读取数据,不直接对数据进行修改。数仓又可以分为数据服务层(DWS)、中间层(DWM)、数据明细层(DWD)
特点:
a、效率高。
b、数据质量高。
c、可扩展性强。
d、面向主题。
e、主要是提供查询服务,能及时响应查询。
f、只增不删改。
数据仓库是一个信息提供平台,从业务处理系统获得数据,并为用户提供各种手段从数据中获取信息和知识。整个数仓包含三部分:数据获取、数据存储、数据访问。
(5)数据集市(Data Mart),为了特定的应用目的,而从数仓独立出来的面向应用的部分主题数据。
特点:
a、DM结构清晰,易维护。
b、DM任务反正,每个业务单独建表。
c、DM占用存储资源大。
(6)在了解完组件后,从描述中可以看到ODS和数仓中的数据是差不多的,那么ODS和数仓主要区别是什么呢?
区别:
a、ODS是短期实时数据,供业务人员分析或短期决策使用,而数仓是完整全生命周期的数据,提供战略决策使用。
b、ODS是可以更新的数据,数仓的数据基本不改变(存入过后的数据)。
(7)在实际应用中,企业是需要能支持战略决策使用的数据仓库数据,又能兼容业务快速变化和运营人员日常需求的ODS数据,所以就有了数据仓库和ODS并存的方案。大体上有三种:
a、业务数据-ODS(贴源层)-数据仓库
优点:串行,保证数据一致性,开发成本低,但是ODS不利于扩展,系统灵活性差。
b、DB-ODS
优点:结构简单,ODS充当数仓功能,前期数据分析团队使用,长期数据决策分析能力差,通用性差。
c、数仓和ODS并行
优点:便于扩展,兼顾ODS和数仓优点,整个数据系统既可支撑短期分析报表,又可以做长期决策分析。目前大多数公司的数据模型采用并行的搭建方式。