美文网首页
2019-12-07

2019-12-07

作者: VincentLeon | 来源:发表于2019-12-17 18:30 被阅读0次

一、 数据仓库
数据仓库,英文名称为 Data Warehouse,可简写为 DW 或 DWH。通常叫数仓。

数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。它出于分析性报告和决策支持目的而创建。

特点:
数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数 据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫 “工厂”的原因。

二. 数据仓库的主要特征
数据仓库是面向主题的(Subject-Oriented )、集成的(Integrated)、非 易失的(Non-Volatile)和时变的(Time-Variant )数据集合,用以支持管理 决策 。

数据库和数据仓库的区别

数据库与数据仓库的区别实际讲的是 OLTP 与 OLAP 的区别。
操作型处理,叫联机事务处理 OLTP(On-Line Transaction Processing,), 也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、 完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段, 主要用于操作型处理。
分析型处理,叫联机分析处理 OLAP(On-Line Analytical Processing)一 般针对某些主题的历史数据进行分析,支持管理决策。

·数据库是面向事务的,数据仓库面向主题
·数据库存储的即时业务数据,数据仓库存储的是历史数据
·数据库为了捕获数据而存在,数据仓库是为了分析数据而存在
·数据仓库并不是大型的数据库,也不是为了取代数据库而出现

数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、 为了决策需要而产生的,它决不是所谓的“大型数据库”。

数据仓库的分层架构

·源数据层(ODS):贴源层,数据来源于各种数据源的数据
·数据仓库层(DW) :将源数据层的数据进行ETL操作,得到结构清晰的干净规整的数据。
·数据应用层(DA): 报表展示,即席查询,数据挖掘

为什么要对数据仓库分层?

用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据;不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大。
通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的 黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较 容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调 整某个步骤即可。

元数据(Meta Date)

主要记录数据仓库中模型的定义、各层级间的映射关系、监控数据仓库的数据状态及 ETL 的任务运行状态。一般会通过元数据资料库 (Metadata Repository)来统一地存储和管理元数据,其主要目的是使数据仓 库的设计、部署、操作和管理能达成协同和一致。

元数据是数据仓库管理系统的重要组成部分,元数据管理是企业级数据仓库 中的关键组件,贯穿数据仓库构建的整个过程,直接影响着数据仓库的构建、使 用和维护。

  •  构建数据仓库的主要步骤之一是 ETL。这时元数据将发挥重要的作用,它定

    义了源数据系统到数据仓库的映射、数据转换的规则、数据仓库的逻辑结构、 数据更新的规则、数据导入历史记录以及装载周期等相关内容。数据抽取和 转换的专家以及数据仓库管理员正是通过元数据高效地构建数据仓库。

  •  用户在使用数据仓库时,通过元数据访问数据,明确数据项的含义以及定制 报表。

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

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

由上可见,元数据不仅定义了数据仓库中数据的模式、来源、抽取和转换规 则等,而且是整个数据仓库系统运行的基础,元数据把数据仓库系统中各个松散 的组件联系起来,组成了一个有机的整体。

三、 Apache Hive

1. Hive 简介

1.1. 什么是 Hive

Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类 SQL 查询功能。

数据:
·结构化数据:字段非常清晰,分隔符非常清晰(表)
·半结构化数据:(json , xml)
·非结构化数据:图片,音频,视频等

本质是将 SQL 转换为 MapReduce 程序。 主要用途:用来做离线数据分析,比直接用 MapReduce 开发效率更高。

1.2. 为什么使用 Hive

直接使用 Hadoop MapReduce 处理数据所面临的问题: 人员学习成本太高
MapReduce 实现复杂查询逻辑开发难度太大
使用 Hive :
操作接口采用类 SQL 语法,提供快速开发的能力 避免了去写 MapReduce,减少开发人员的学习成本 功能扩展很方便

相关文章

网友评论

      本文标题:2019-12-07

      本文链接:https://www.haomeiwen.com/subject/cxpugctx.html