大数据时代之数据仓库
Posted 易协智库
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据时代之数据仓库相关的知识,希望对你有一定的参考价值。
人类对数据的管理经历人工管理、文件系统管理、数据库系统管理三个阶段,数据库管理实现了对数据的永久存储、有序组织和共享。
计算机系统中存在着两种不同的数据处理模型:
操作型数据处理(联机事务处理 Online Transaction Process,OLTP),是指对数据库联机的日常操作,主要完成数据的收集、整理、存储以及增删查改等操作,主要由一般工作人员和基层管理人员完成。
分析型数据处理(联机分析处理 Online Analysis Process,OLAP),是指对数据的再加工,通常是对海量的历史数据查询和分析,从中获取信息,主要由分析人员和中高级管理人员完成。
多维数据模型是数据分析时用户的数据视图,是面向分析的数据模型,用于给分析人员提供多种观察的视角和面向分析的操作。
常见的多维数据模型有星型模型、雪花模型、事实群模型。
常用的多维分析操作:聚集函数、切片(slice)、切块(dice)、旋转(rotate)、下钻(drill down)、上卷(roll up)。
数据仓库是一个面向主题的(主题是自己定的,可以是一个对象或者一个业务)、集成的、不可更新的、随时间不断变化的用来更好地支持企业或组织决策分析的数据集合。
数据仓库是一种数据存储,将不同来源的异构数据进行清洗、转换、加工,集成并存储起来,支持分析查询需求,从而为企业决策提供支持。
数据从操作型数据库、文件、网络等数据源,通过ETL集成工具进行数据抽取、清洗、转换、加载等工作,进入到数据仓库和数据集市中,进而通过OLAP服务器支持前台的多维分析、查询报表、数据挖掘等操作。
数据仓库系统是由数据源、集成工具、数据仓库与数据仓库服务器、OLAP服务器、元数据与元数据管理工具、数据集市和前台分析工具等组成。
数据源就是提供初始数据的地方,是数据仓库系统的基础。通常包括企业内部数据和外部数据。内部数据包括各种操作型数据库中的数据以及文档数据,外部数据包括各类法律法规、市场信息、竞争对手信息以及各种统计数据和文档。
集成工具即ETL工具。ETL是Extract-Transform-Load的缩写,包括数据抽取(Extracting)、数据清洗(Cleaning)、数据转换(Transforming)、数据加载(Loading)等工作。
数据仓库服务器负责管理数据仓库中的数据,为整个企业的数据分析提供一个完整的、统一的视图。
OLAP服务器对分析需要的数据按照多维数据模型进行再次重组,以支持用户多角度、多层级的数据分析。
数据集市是一个小型的数据仓库,通常具有较少的主题域,是部门级的数据仓库,面向部门级的应用。从属型数据集市就是从中央数据仓库中获取数据,这类数据集市之间是互连的。独立型数据集市就是直接从操作型数据库等数据源中获取数据,这类数据集市之间没有联系,是相互独立的。
前台分析工具:包括各种数据分析工具,如报表工具、OLAP分析工具、数据挖掘工具。各种分析工具既可以从数据仓库中获取数据,还可以从数据集市中获取数据。
元数据就是关于数据的数据,就是整个数据仓库的所有描述性信息。ETL负责建立元数据。关系型数据库中的“数据字典”就是元数据的一种。
操作型数据处理一般放在传统的数据库(Database,DB)中进行,分析型数据处理则需要在数据仓库(Data Warehouse,DW)中进行。但是并不是所有的数据处理都可以这样划分,换句话说,人们对数据的处理需求并不只有这两类,比如,有些操作型处理并不适合放在传统的数据库上完成,也有些分析型处理不适合在数据仓库中进行。这时候就需要第三种数据存储体系,操作数据存储(Operational Data Store,ODS)系统就因此产生。
ODS(Operational Data Store)是数据仓库体系结构中的一个可选部分,ODS具备数据仓库的部分特征和OLTP系统的部分特征,它是“面向主题的、集成的、当前或接近当前的、 不断变化的”数据。
其实大多时候,ODS只是充当了一个数据临时存储,数据缓冲的角色。一般来说,数据由源数据加载到ODS之后,会保留一段时间,当后面的数据处理逻辑有问题,需要重新计算的时候,可以直接从ODS这一步获取,而不用再从源数据再抽取一次,减少对源系统的压力。另外,ODS还会直接给DM或者前端报表提供数据,比如一些维表或者不需要经过计算和处理的数据;还有,ODS会完成一些其他事情,比如,存储一些明细数据以备不时之需等等。
ODS与DW的区别
存放的数据内容不同:ODS中主要存放当前或接近当前的数据、细节数据,可以进行联机更新。DW中主要存放细节数据和历史数据,以及各种程度的综合数据,不能进行联机更新。ODS中也可以存放综合数据,但只在需要的时候生成。
数据规模不同:由于存放的数据内容不同,因此DW的数据规模远远超过ODS。
技术支持不同:ODS需要支持面向记录的联机更新,并随时保证其数据与数据源中的数据一致。DW则需要支持ETL技术和数据快速存取技术等。
面向的需求不同:ODS主要面向两个需求:一是用于满足企业进行全局应用的需要,即企业级的OLTP和即时的OLAP;二是向数据仓库提供一致的数据环境用于数据抽取。DW主要用于高层战略决策,供挖掘分析使用。
使用者不同:ODS主要使用者是企业中层管理人员,他们使用ODS进行企业日常管理和控制。DW主要使用者是企业高层和数据分析人员。
ETL用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。
在BI项目中ETL会花掉整个项目至少1/3的时间,Transform工作量是整个ETL的2/3。
ETL的实现一种是借助ETL工具,一种是SQL方式实现,另外一种是ETL工具和SQL相结合(推荐采用)。
数据的抽取(Extract)
这一部分需要在调研阶段做大量的工作,各个业务系统的数据库服务器运行什么DBMS,是否存在手工数据,手工数据量有多大,是否存在非结构化的数据等等,当收集完这些信息之后才可以进行数据抽取的设计。
对于数据量大的系统,必须考虑增量抽取。一般考虑时间戳实现。
数据的清洗转换(Cleaning、Transform)
一般情况下,数据仓库分为ODS、DW两部分。通常的做法是从业务系统到ODS做清洗,将脏数据和不完整数据过滤掉,在从ODS到DW的过程中转换,进行一些业务规则的计算和聚合。
数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。
数据转换的任务主要进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算。
数据的加载(load)
这是ETL的最后一步。主要负责将数据加载到目标表中,这些目标表可能是事实表,也可能是维度表。
ETL日志
执行过程日志,这一部分日志是在ETL执行过程中每执行一步的记录,记录每次运行每一步骤的起始时间,影响了多少行数据,流水账形式。
错误日志,当某个模块出错的时候写错误日志,记录每次出错的时间、出错的模块以及出错的信息等。
总体日志,只记录ETL开始时间、结束时间是否成功信息。如果使用ETL工具,ETL工具会自动产生一些日志,这一类日志也可以作为ETL日志的一部分。
记录日志的目的是随时可以知道ETL运行情况,如果出错了,可以知道哪里出错。
警告
如果ETL出错了,不仅要形成ETL出错日志,而且要向系统管理员发送警告。
特点
数据同步,它不是一次性倒完数据,它是经常性的活动,按照固定周期运行或者实时运行。
数据量一般都是巨大的,值得你将数据流动的过程拆分成E、T和L。
ETL流程
从源数据抽取到ODS数据缓冲区,ODS数据缓冲区是指数据临时存储区域,它基本上与源系统的数据结构保持一致。
从ODS数据缓冲区到ODS统一信息视图区,一般来说是定时抽取的,除了第一次做全量抽取外,其余时间都是做增量抽取,可以按照某种更新策略进行抽取。
从ODS统一信息视图区抽取到数据仓库,数据仓库是根据业务需求,对企业受进行整合,同时又是存储历史数据的地方
从数据仓库抽取到数据集市,数据集市是针对某个主题域、部门或者是特定用户的数据集合。
责任声明
以上是关于大数据时代之数据仓库的主要内容,如果未能解决你的问题,请参考以下文章