数据仓库与元数据

数据仓库

  • 数据仓库的定义
  • 数据仓库的特点
  • 数据仓库和数据库的对比
  • OLAP和OLTP的区别
  • 什么是ETL
  • 主流数据仓库
  • 数据仓库与Hadoop生态

数据仓库的定义

数据仓库,英文名称Data Warehouse,简写为DW。数据仓库顾名思义,是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建,对多样的业务数据进行筛选与整合。它为企业提供一定的BI(商业智能)能力,指导业务流程改进、监视时间、成本、质量以及控制。

数据仓库的输入方是各种各样的数据源,最终的输出用于企业的数据分析、数据挖掘、数据报表等方向。

 

数据仓库的特点

主题性

不同于传统数据库对应于某一个或多个项目,数据仓库根据使用者实际需求,将不同数据源的数据在一个较高的抽象层次上做整合,所有数据都围绕某一主题来组织。

这里的主题怎么来理解呢?比如对于滴滴出行,“司机行为分析”就是一个主题,对于链家网,“成交分析”就是一个主题。

集成性

数据仓库中存储的数据是来源于多个数据源的集成,原始数据来自不同的数据源,存储方式各不相同。要整合成为最终的数据集合,需要从数据源经过一系列抽取、清洗、转换(ETL)的过程。

稳定性

数据仓库中保存的数据是一系列历史快照,不允许被修改。用户只能通过分析工具进行查询和分析。

时变性

数据仓库会定期接收新的集成数据,反应出最新的数据变化。这和稳定性特点并不矛盾。

 

数据仓库和数据库的对比

 

数据库

数据仓库

面向

面向事务

面向主题设计

存储数据

存储在线交易数据

存储历史数据

规则设计

尽量避免冗余,一般采用符合范式的规则来设计

有意引入冗余,采用反范式的方式来设计

数据设计

捕获数据

分析数据

 

OLAP和OLTP的区别

面向业务的数据库常称作OLTP,面向分析的数据仓库亦称为OLAP

数据处理大致可以分成两大类:

  • 联机事务处理OLTP(on-line transaction processing)、
  • 联机分析处理OLAP(On-Line Analytical Processing)。

OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 

OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。 

OLTP,也叫联机事务处理(Online Transaction Processing)

表示事务性非常高的系统,一般都是高可用的在线系统,以小的事务以及小的查询为主,评估其系统的时候,一般看其每秒执行的Transaction以及Execute SQL的数量。在这样的系统中,单个数据库每秒处理的Transaction往往超过几百个,或者是几千个,Select 语句的执行量每秒几千甚至几万个。典型的OLTP系统有电子商务系统、银行、证券等,如美国eBay的业务数据库,就是很典型的OLTP数据库。

OLAP,也叫联机分析处理(Online Analytical Processing)系统,

有的时候也叫DSS决策支持系统,就是我们说的数据仓库。在这样的系统中,语句的执行量不是考核标准,因为一条语句的执行时间可能会非常长,读取的数据也非常多。所以,在这样的系统中,考核的标准往往是磁盘子系统的吞吐量(带宽),如能达到多少MB/s的流量。

DML,数据操纵语言(Data Manipulation Language, DML)

数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令,因此有很多开发人员都把加上SQL的SELECT语句的四大指令以“CRUD”来称呼。

DML 的主要功能即是访问数据,因此其语法都是以读取与写入数据库为主,除了INSERT以外,其他指令都可能需搭配WHERE指令来过滤数据范围,或是不加WHERE指令来访问全部的数据。

数据分析体系与其他业务类系统有着显著的不同。

业务类系统主要供基层人员使用,进行一线业务操作,通常被称为OLTP(On-Line Transaction Processing,联机事务处理);

数据分析的目标则是探索并挖掘数据价值,作为企业高层进行决策的参考,通常被称为OLAP(On-Line Analytical Processing,联机分析处理);

从功能角度来理解,OLTP负责基本业务的正常运转,而业务数据积累时所产生的价值信息则被OLAP不断呈现,企业高层通过参考这些信息会不断调整经营方针,也会促进基础业务的不断优化,这是OLTP与OLAP最根本的区别。

 

什么是ETL?

  • Extract,数据抽取,将数据从各种原始的业务系统中读取出来,这是所有工作的前提。
  • Transform,数据转换,按照预先设计好的规则将抽取得数据进行转换,使本来异构的数据格式能统一起来。如果用在数据仓库的场景下,Transform也包含数据清洗,清洗掉噪音数据。
  • Load  数据加载,将转换完的数据按计划增量或全部导入到数据仓库中。

ETL是BI/DW(商务智能/数据仓库)的核心和灵魂,按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。

Hadoop生态体系中的Sqoop就是一款ETL工具。

Sqoop 是 Apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。核心的功能有两个:

  • 导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统;
  • 导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 ,例如mysql 等;

Sqoop 的工作机制:将导入或导出命令翻译成 MapReduce 程序来实现 ,在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制

 

主流数据仓库

Hive

Hive是基于Hadoop的数据仓库工具,可以对存储在HDFS上的文件数据集进行查询和分析处理。Hive对外提供了类似于SQL语言的查询语言 HiveQL,在做查询时将HQL语句转换成MapReduce任务,在Hadoop层进行执行。

  • HDFS:Hadoop的分布式文件系统,在这里作为数据仓库的存储层。图中的Data Node就是HDFS的众多工作节点。
  • MapReduce:一种针对海量数据的并行计算模型,可以简单理解为对多个数据分片的数据转换和合并。

 

Teradata

Teradata 的确是一款很强大的商业数据仓库。Teradata数据仓库配备性能最高、最可靠的大规模并行处理 (MPP) 平台,能够高速处理海量数据,其性能远远高于Hive。

 

数据仓库与和Hadoop生态


元数据的定义

元数据(Metadata)是关于数据的数据。

在数据仓库系统中,元数据是描述数据仓库内数据的结构和建立方法的数据,可将其按用途的不同分为两类:

  • 技术元数据(Technical Metadata)
  • 业务元数据(Business Metadata)。

上图是数据仓库系统的一般体系结构

技术元数据

技术元数据是存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库使用的数据,它主要包括以下信息:

  • 数据仓库结构的描述,包括仓库模式、视图、维、层次结构和导出数据的定义,以及数据集市的位置和内容;
  • 业务系统、数据仓库和数据集市的体系结构和模式
  • 汇总用的算法,包括度量和维定义算法,数据粒度、主题领域、聚集、汇总、预定义的查询与报告;
  • 由操作环境到数据仓库环境的映射,包括源数据和它们的内容、数据分割、数据提取、清理、转换规则和数据刷新规则、安全(用户授权和存取控制)。

业务元数据

业务元数据从业务角度描述了数据仓库中的数据,它提供了介于使用者和实际系统之间的语义层,使得不懂计算机技术的业务人员也能够“读懂”数据仓库中的数据。业务元数据主要包括以下信息:使用者的业务术语所表达的数据模型、对象名和属性名;访问数据的原则和数据的来源;系统所提供的分析方法以及公式和报表的信息;具体包括以下信息:

  • 企业概念模型:这是业务元数据所应提供的重要的信息,它表示企业数据模型的高层信息、整个企业的业务概念和相互关系。以这个企业模型为基础,不懂数据库技术和SQL语句的业务人员对数据仓库中的数据也能做到心中有数。
  • 多维数据模型:这是企业概念模型的重要组成部分,它告诉业务分析人员在数据集市当中有哪些维、维的类别、数据立方体以及数据集市中的聚合规则。这里的数据立方体表示某主题领域业务事实表和维表的多维组织形式。
  • 业务概念模型和物理数据之间的依赖:以上提到的业务元数据只是表示出了数据的业务视图,这些业务视图与实际的数据仓库或数据库、多维数据库中的表、字段、维、层次等之间的对应关系也应该在元数据知识库中有所体现。

 


参考文献

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章