hive(一) hive背景知识介绍-数据仓库技术简介

先看定义 :

Hive是基于Hadoop的一个数据仓库工具。

“工具”这意味着Hive并不是一个成型的数据仓库系统,它只是一个工具,来帮助我们实现数据仓库。


先来说说数据仓库:

一般大家平时 听说的使用的都是数据库,平常意义上的说的数据库都是面向事物,存储实时、在线系统的数据,是为了捕获数据而设计,例如电商类类的天猫 淘宝 京东商城使用的都是平常说的数据库 ,这样的数据要求精确绝对不能出现错误,尽量避免冗余,一般采用符合范式的规则来设计(例如三范式),还有 运营商的计费系统 客户关系管理系统也是如此。例如 运营商的终端库存系统  管理着运营商自己给合作渠道的库存 销售情况。库存状态表 销售表 都是实时更新,终端的某个属性不会在多个表出现 为了保持属性准确  不会有冗余数据,查的时候一般都是关联查询。


数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。常见的维度 时间维度 年月日  地域维度。数据仓库的数据有来自于分散的操作型数据,即数据库,将所需数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后才能进入数据仓库; 为什么要数据仓库 目的举例:

1 运营商 分析来自生产运营系统的每个用户近一年的消费行为 如话费 流量 在网时长 等综合项 来给用户评定星级

2 运营商 分析 用户的换机周期来给用户做定期的针对性终端营销活动

3 银行  某个网点每天的存取款流水 取款金额 档次分层统计数量 来辅助决定ATM机的选址设立


数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它并不是所谓的“大型数据库”。数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务。


1、数据仓库是面向主题的;操作型数据库的数据组织面向事务处理任务,而数据仓库中的数据是按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
主题举例:

移动某省经分系统 领导和市场部决策分析时关注的 几大重点方面 :4G 终端 政企 渠道 宽带等,各主题之间可能相互还有联系 ,且比如渠道这个主题 可能核和渠道管理系统 crm系统 计费系统 都想关,因为需要从这些系统取数据




2、数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后才能进入数据仓库;
数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
 
数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
 
数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到当前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
 
3、数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询;
 
4、数据仓库是随时间而变化的,传统的关系数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求。稳定的数据以只读格式保存,且不随时间改变。
 
5、汇总的。操作性数据映射成决策可用的格式。
 
6、大容量。时间序列数据集合通常都非常大。
 
7、非规范化的。Dw数据可以是而且经常是冗余的。

      跟业务生产系统严格要求的数据不能冗余的一致准确性不同  ,dw的数据经常是冗余的 不同的表可能都有某个属性信息,因为dw表的数据通常都是很大量的 或者高度聚合过的,有数据加工时延,如果想取某个属性 要通过表实时关联 这样的时间消耗是很大的 ,或者都是聚合过得表 无法通过关联取得想要的指标


终端主题 会有一张终端销售库存情况表 记录终端的唯一串号 入库时间 状态 销售时间 机型 品牌 价格 入库渠道等

渠道专题 也会有张表 渠道唯一标示  所库存终端串号 库存时间 品牌 机型 价格等


 
8、元数据。将描述数据的数据保存起来。

包括数据源的描述信息 和 自己库、表的描述信息 。像源库的ip信息 自己库的ip信息 都属于元数据信息,通常这些还挺重要 当ods涉及到数据共享的时候,还有比较重要的就是像一些字段的编码 解释 比如 是否智能机 0 1两个值 性别等。或者客户每月消费等级 1 代表1-100元 2 代表 100-150元。此类信息看着很简单 但是实际做好元数据统一管理很重要。项目组曾经出现过 有人月初误把一个是否智能机的元数据维表 的字段 0 1值改成了 Y N 。导致所有的涉及到的定时执行的存储过程 用的 case when 来统计智能机和非智能机的数量 全部出问题 。最后结果是全体加班重新跑数据。

 
9、数据源。数据来自内部的和外部的非集成操作系统

数据仓库和ods的数据源通常都是多样化 有db  文本 ws接口 消息队列等


数据仓库实现方式 

数据仓库是一个过程而不是一个项目。

数据仓库系统是一个信息提供平台,他从业务处理系统获得数据,主要以星型模型和雪花模型进行数据组织,并为用户提供各种手段从数据中获取信息和知识。

从功能结构划分,数据仓库系统至少应该包含数据获取(Data Acquisition)、数据存储(Data Storage)、数据访问(Data Access)三个关键部分。

企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础。数据仓库不是静态的概念,只有把信息及时交 给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才有意义。而把信息加以整理归纳和重组,并及时提供给相应的管理决策人员,是数据仓库的根本任务。因此,从产业界的角度看,数据仓库建设是一个工程,是一个过程。

ETL

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

实际上我们可以将ETL看做建立一个数据仓库的的三个步骤,extract就是从各个子系统或者模块的数据库中提取数据,trasfrom实际上就是对提取出来的数据进行清洗,加载就是清洗好的数据再放入数据仓库中。

实际我们可以把实现一个数据仓库的数据获取(Data Acquisition)部分看成ETL。 


为了能更好地实现ETL,笔者建议用户在实施ETL过程中应注意以下几点:

第一,如果条件允许,可利用数据中转区对运营数据进行预处理,证集成与加载的高效性;

第二,如果ETL的过程是主动“拉取”,而不是从内部“推送”,其可控性将大为增强;如果采取的是拉取的策略,只要我们的数据仓库是从去连接各个子模块的数据库获取数据即可,即只需要在数据库仓库应用中实现一个拉取模块即可,如果采取的是推送机制,那么每个子模块都要单独实现各自的推送。

第三,ETL之前应制定流程化的配置管理和标准协议;

第四,关键数据标准至关重要。ETL面临的最大挑战是当接收数据时其各源数据的异构性和低质量。以电信为例,A系统 按照统计代码管理数据,B系统按照账目数字管理,C系统按照语音ID管理。当ETL需要对这三个系统进行集成以获得对客户的全面视角时,这一过程需要复杂 的匹配规则、名称/地址正常化与标准化。而ETL在处理过程中会定义一个关键数据标准,并在此基础上,制定相应的数据接口标准。


补充:主动拉取,意味着我们要对数据仓库的技术元数据进行管理。

数据仓库的元数据分为: 技术元数据商业元数据

技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库使用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。

商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表;


Hive

Hive是基于Hadoop的一个数据仓库工具。“工具”这意味着Hive并不是一个成型的数据仓库系统,它只是一个工具,来帮助我们实现数据仓库。

从之前的分析中,我们知道实现一个数据仓库有三个关键的部分:数据获取(Data Acquisition)、数据存储(Data Storage)、数据访问(Data Access)。

Hive作为一个数据仓库工具,对于这个三个部分的实现都提供了相应的支持:

1、数据获取(Data Acquisition):我们可以像操作关系型数据库那样直接往hive中插入数据,不过大部分情况下,是使用类似于sqoop、datax这样的数据迁移工具,从其他数据库中将数据导入到hive中。

2、数据存储:hive可以帮助我们将数据存储在HDFS上

3、数据访问(Data Access) : Hive可以将结构化的数据文件映射为一张数据库表, 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。




猜你喜欢

转载自blog.csdn.net/xiaohai798/article/details/76598875
今日推荐