大数据导论(4)——OLTP与OLAP、数据库与数据仓库

公司内部的数据自下而上流动,同时完成数据到信息、知识、洞察的转化过程。

而企业内部数据,从日常OLTP流程中产生,实时存储进不同的数据库中。同时定期被提取、经格式转化、清洗和加载(ETL),以统一的格式存储进数据仓库,以供决策者进行OLAP处理,并将处理结果可视化。

OLTP & OLAP

企业的数据处理可以分成两大类:联机事务处理OLTP、联机分析处理OLAP。

OLTPOn-Line Transaction Processing,联机事务处理)——数据库的增删查改。是面向“事务”类型的操作。有几个显著的特点:要求速度快/操作涉及的数据量不大/要求精准操作。事物型数据大多都具有高度规范化。因此OLTP系统是结构化数据的主要数据源。

OLAPOn-Line Analytical Processing,联机分析处理)——支持复杂的分析、查询操作,侧重决策支持,并且提供直观易懂的查询结果。解决了涉及多维度数据的问题(传统数据库无法满足OLAP所需要的数据信息)。

 

数据库 & 数据仓库

数据库的主要应用场景为联机事务处理(OLTP),数据仓库的主要应用场景为联机分析处理(OLAP)。

数据库(Database)——用于存储电子文件,用户可以对文件中的数据运行新增、截取、更新、删除等操作。为对数据库进行管理,开发设计出数据库管理系统(Database Management System)。

数据仓库(DataWarehouse)——用于存储数据的中央、企业级系统,存储的数据多为历史数据。

  • 特点:数据仓库中的数据围绕企业主题(Subject-Oriented )、经过集成(Integrated)、定期更新(Time-Variant)、具有非易失性(Non-Volatile,不可修改,多以只读格式返回给用户);
  • 结构:暂存层、集成层、访问层
  • 与OLAP的关系:数据仓库为OLAP解决了数据来源问题,并与OLAP互相促进发展,进一步驱动了商务智能的成熟。

【补充】设计数据仓库的初衷:

是为以关系型数据库为基础的运营式系统,向决策支持系统过渡提供一种工具/整个企业范围内的数据集成环境,并尝试解决数据流相关的各种问题(包括:如何从多个不同数据库中调取所需数据、数据共享、数据库之间的集成)。这个决策支持系统,即商务智能(Business Intelligence)。

数据仓库不是可以买到的产品,而是一种面向分析的数据存储方案。

对于数据仓库的概念可以从两个层次理解:首先,数据仓库用于支持决策,面向分析型数据处理,不同于提高业务效率的操作型数据库;其次,数据仓库对分布在企业中的多个异构数据源集成,按照决策主题选择数据并以新的数据模型存储。

 

数据集市

为方便不同业务部门更高效的获取数据,可经数据仓库针对不同业务数据生成子集,形成数据集市。

数据集市面向部门、业务单元或特定应用,因而规模较小,便于快速实现,且成本较低,短期内即可获得明显效果。

数据集市的应用不仅满足了部门的数据处理需求,而且作为数据仓库的子集,有助于构建完整的企业级数据仓库。

【补充】来源:      

人们在早期开发企业级数据仓库时,一般是先建立一个全局的数据仓库,然后在此基础上建立各种应用,即“自顶向下”的方法。但在开发的过程中会出现以下问题。

(1) 如果按“自顶向下”的方法建立企业级数据仓库,建设规模较大,建设周期长,投资大。

(2) 在数据仓库建好后,随着使用数据仓库的部门增多,对数据仓库资源的竞争将成为企业面临的一个难题。

(3) 各个部门希望能定制数据仓库中的数据,但数据仓库是面向企业的。

为解决上述问题,人们提出了数据集市的概念。

数据集市可以在数据仓库的基础上进行设计,也可像数据仓库一样直接设计。数据集市中的数据具有数据仓库中数据的特点。

ETL

数据仓库并不只是数据的简单累积,而是经过一系列的抽取、转换和装载的过程,简称ETL。ETL的主要功能:

1.数据抽取

数据仓库是面向主题的,并非源数据库的所有数据都是有用的。因此在把源数据库中的相关数据导入数据仓库之前,需要先确定该数据库中哪些数据是与决策相关的,数据抽取的流程如下:

(1)确认数据源的数据、含义;

(2)抽取:确定访问源数据库中文件或表,以及其中的字段;

(3)确定抽取频率,以定期更新数据仓库;

(4)确定数据输出的格式、存储位置。

(5)当部分数据无法抽取时,进行异常处理。

2.数据转换

将来自不同源数据库中的数据进行格式转换,转换内容主要包括:不一致的数据、数据粒度。

  • 值、编码、单位等不一致的转换——包括同一数据源内部的不一致、多个数据源之间的数据不一致等类别。(例:在一个应用系统中,BJ 表示北京,SH 表示上海,GZ 表示广州。而另一个应用系统中,对应的代码分别为1、2 和3)
  • 数据粒度的转换——粒度反应了数据仓库存储的数据的细节程度(粒度越小,数据越细,查询范围就越广泛。)。业务系统一般存储细粒度的事务型数据,而数据仓库中的数据是用于查询、分析的,因此需要多种不同粒度的数据。

3.数据清洗(又称为“数据的标准化”)

为提高数据质量,需要对数据源的数据全面校验,处理数据源中的各种噪音数据,尽量减少差错。主要的数据质量问题有以下几种:

  • 缺失(Missing )数据;
  • 错误数据。包括字段的虚假值、异常取值等;
  • 数据重复;
  • 数据冲突。源数据中一些相关字段的值必须是兼容的。(例如顾客记录中省份字段使用SH(上海),而邮政编码字段使用100000(北京地区的邮政编码))。

目前一些商务智能企业提供数据质量防火墙,例如Business Objects(SAP)的Firstlogic,它能够解决数据的噪声。清洗后的数据经过业务主管确认并修正后再进行抽取。

4.数据装载

数据转换、清洗结束后需要把数据装载到数据仓库中,数据装载通常分为以下两种方式:

(1)初始装载:一次对整个数据仓库进行装载。

(2)增量装载:在数据仓库中,增量装载可以保证数据仓库与源数据变化的同期性。

 

目前市场上主流的ETL工具有:Informatica公司的Power Center、IBM 公司的Data Stage、Oracle公司的Warehouse Builder以及Microsoft 公司的SQL Server IS等。

 

商务智能

又称商业智慧或商务智能(Business Intelligence,简称:BI),指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以认识到企业绩效情况(得到KPI),并指导业务过程。

把商业智能看成一种解决方案应该比较恰当。商业智能的关键是从许多来自不同的企业运作系统的数据中提取出有用的数据并进行清理,以保证数据的正确性,然后经过ETL过程,合并到一个企业级的数据仓库里,从而得到企业数据的全局视图,在此基础上利用合适的查询和分析工具、数据挖掘工具、OLAP工具等对其进行分析和处理(这时信息变为辅助决策的知识),最后将知识呈现给管理者,为管理者的决策过程提供数据支持。

大数据商务智能,同时将数据仓库中的数据与大量企业外部半结构化、非结构化数据结合共同进行分析(触发了下一代数据仓库的发展),而且可同时处理多个业务。

BI整体解决方案主要包括:数据清洗、数据脱敏、数据挖掘、数据分析、数据展现、数据权限。

商业智能产品大致可分为:数据仓库产品、数据抽取产品、OLAP产品、展示产品、和集成以上几种产品的针对某个应用的整体解决方案等。

可视化

商务智能的输出结果可通过可视化技术显示。主要形式有即席报表和仪表板。

  • 即席报表——用于生成可暂时将不同特性(例如数据类别、期间、合并类型、公司、货币类型以及扩展维度)合并在一起的报表。在即席报表中,只能使用基于数据输入表单的报表。
  • 仪表板——是若干视图的集合,便于同时比较各种数据。

大数据分析的可视化要求聚合结构化、半结构化和非结构化数据源,实时、可交互的将海量数据的处理结果展示。(例:天猫双十一大屏)

补充:数据仓库中的元数据

数据仓库的元数据是关于数据仓库中数据的数据。它的作用类似于数据库管理系统的数据字典,保存了逻辑数据结构、文件、地址和索引等信息。

元数据是数据仓库管理系统的重要组成部分,贯穿数据仓库构建的整个过程,直接影响着数据仓库的构建、使用和维护。包括:

(1)ETL过程中,元数据即定义了源数据库到数据仓库的映射、数据转换的规则、数据仓库的逻辑结构、数据更新的规则、数据导入历史记录以及装载周期等相关内容。

(2)用户在使用数据仓库时,通过元数据访问数据,明确字段的含义以及定制报表。

(3)数据仓库的规模及其复杂性离不开正确的元数据管理,包括增加或移除外部数据源,改变数据清洗方法,控制出错的查询以及安排备份等。

元数据可分为技术元数据、业务元数据:

  • 技术元数据——为开发和管理数据仓库的IT 人员使用,它描述了与数据仓库开发、管理和维护相关的数据,包括数据源信息、数据转换描述、数据仓库模型、数据清洗与更新规则、数据映射和访问权限等。
  • 业务元数据——为管理层和业务分析人员服务,从业务角度描述数据,包括商务术语、数据仓库中有什么数据、数据的位置和数据的可用性等,帮助业务人员更好地理解数据仓库中哪些数据是可用的以及如何使用。

 

元数据有两种常见存储方式:

  • 以数据集为基础——每一个数据集有对应的元数据文件;
  • 以数据库为基础——元数据库。

猜你喜欢

转载自www.cnblogs.com/NovemberRain/p/9896064.html