Hive个人心得笔记之数据库和数据仓库

                Hive个人心得笔记之数据库和数据仓库

一、数据仓库和数据库对比

数据库

数据仓库

为线上系统提供实时数据

为离线分析存储历史数据

具有完整的增删改查的能力

只支持一次写入多次查询,不支持行级别的增删改

具有完整的事务能力

不强调事务的特性

尽量的避免冗余 提高存储 和处理的效率

人为的制造冗余 提高查询的效率

数据来源单一

数据来源多样

二、OLTP和OLAP对比

  1. 数据库属于OLTP系统(Online Transaction Processing)联机事务处理系统。涵盖了企业大部分的日常操作,如购物、库存、制造、银行、工资、注册、记账等。比如Mysql,oracle等关系型数据库;数据仓库属于OLAP系统。(Online Analytical Processing)联机分析处理系统。Hive,Hbase等
  2. OLTP是面向用户的、用于程序员的事务处理以及客户的查询处理;OLAP是面向市场的,用于知识工人(经理、主管和数据分析人员)的数据分析
  3. OLAP通常会集成多个异构数据源的数据,数量巨大;OLTP系统的访问由于要保证原子性,所以有事务机制和恢复机制
  4. OLAP系统一般存储的是历史数据,所以大部分都是只读操作,不需要事务;OLTP系统具有较强的事务

三.体系结构

1.用户接口主要有三个:CLI,JDBC 和 WUI

  1. CLI,最常用的模式。实际上在>hive 命令行下操作时,就是利用CLI用户接口
  2. JDBC,通过java代码操作,需要启动hiveserver,然后连接操作

2.Metastore

Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等

3.解释器(complier)、优化器(optimizer)、执行器(executor)组件

这三个组件用于:HQL语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行

4.Hadoop

Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成

四.执行流程

  1. 通过客户端提交一条Hql语句
  2. 通过complier(编译组件)对Hql进行词法分析、语法分析。在这一步,编译器要知道此hql语句到底要操作哪张表
  3. 去元数据库找表信息
  4. 得到信息
  5. complier编译器提交Hql语句分析方案
  6. 执行流程
    1. executor 执行器收到方案后,执行方案(DDL过程)。在这里注意,执行器在执行方案时,会进行判断:如果当前方案不涉及到MR组件,比如为表添加分区信息、比如字符串操作等,比如简单的查询操作等,此时就会直接和元数据库交互,然后去HDFS上去找具体数据;如果方案需要转换成MR job,则会将job 提交给Hadoop的JobTracker
    2. MR job完成,并且将运行结果写入到HDFS上
    3. 执行器和HDFS交互,获取结果文件信息
  7. 如果客户端提交Hql语句是带有查询结果性的,则会发生:7-8-9步,完成结果的查询。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值