云计算复习之Hive数据仓库期末复习整理

这篇具有很好参考价值的文章主要介绍了云计算复习之Hive数据仓库期末复习整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

声明: 
              1. 本文针对的是一个知识的梳理,自行整理以及方便记忆
              2. 若有错误不当之处, 请指出

一、hive的定义与理解

首先,hive是一个构建于hadoop集群之上的数据仓库应用。那么,得先了解一下什么是数据仓库?数据仓库是一个数据集合,用于支持管理决策。简单来说就是为了分析数据而设计的仓库。

那么hive就好理解了,hive是一个翻译器,不具备计算能力,存储能力,是一个构建于hadoop集群之上的系统,用于存储和处理数据。而它将得到的数据映射到一张数据表,然后存储在hafs之上。

hive提供了自己的SQL语句,即HQL,现在来看看和sql的不同之处,和SQL很多相似的地方,免去了学习一门新语言的时间,(对于我这种摆烂的还是挺好的)。

hive数据仓库期末考试,数据仓库,hive,hadoop

二、系统架构

如图所示,hive的的系统架构为这个,一般为以下几步:

1.用户建表,给入sql语句

2.Metastore(元数据)记录对应的路径。

3.映射表的关系返回给用户

4.通过接口连接hive,通过cli发布HQL

5.hive解析查询制订逻辑查询计划

6.转换成MapReduce作业

7.在Hadoop上执行MapReduce

hive数据仓库期末考试,数据仓库,hive,hadoop

运行机制

hive数据仓库期末考试,数据仓库,hive,hadoop

三、基本操作

DDL操作(数据定义语言)包括:Create、Alter、Show、Drop等。

(1)create database- 创建新数据库

hive数据仓库期末考试,数据仓库,hive,hadoop

hive数据仓库期末考试,数据仓库,hive,hadoop

查看仓库DB的信息和路径

hive数据仓库期末考试,数据仓库,hive,hadoop

(2)alter database - 修改数据库

(3)drop database - 删除数据库

hive数据仓库期末考试,数据仓库,hive,hadoop

(4)create table - 创建新表

先查看表,已存在cat这个表

hive数据仓库期末考试,数据仓库,hive,hadoop

.创建一个名为cat的内部表,有两个字段为cat_id和cat_name,字符类型为string。

create table cat(cat_id string,cat_name string);  

创建一个外部表,表名为cat2,有两个字段为cat_id和cat_name,字符类型为string

create external table if not exists cat2(cat_id string,cat_name string);  

hive数据仓库期末考试,数据仓库,hive,hadoop

(5)alter table - 变更(改变)数据库表

修改cat表的表结构。对cat表添加两个字段group_id和cat_code

alter table cat add columns(group_id string,cat_code string);

可以用desc cat查看

hive数据仓库期末考试,数据仓库,hive,hadoop

(6)drop table - 删除表

(7)create index - 创建索引(搜索键)

(8)drop index - 删除索引

(9)show table - 查看表

DML操作(数据操作语言)包括:Load 、Insert、Update、Delete、Merge。

(1)load data - 加载数据

①insert into - 插入数据

②insert overwrite - 覆盖数据(insert ... values从Hive 0.14开始可用。)

(2)update table - 更新表(update在Hive 0.14开始可用,并且只能在支持ACID的表上执行)

(3)delete from table where id = 1; - 删除表中ID等于1的数据(delete在Hive 0.14开始可用,并且只能在支持ACID的表上执行)

(4)merge - 合并(MERGE在Hive 2.2开始可用,并且只能在支持ACID的表上执行)

Hive中数据的导入导出

以下介绍四种常见的数据导入方式:

1.从本地文件系统中导入数据到Hive表。

首先,在Hive中创建一个cat_group表,包含group_id和group_name两个字段,字符类型为string,以“\t”为分隔符,并查看结果。

  1. create table cat_group(group_id string,group_name string) row format delimited fields terminated by '\t'  stored as textfile;  
  2. show tables; 

[row format delimited]关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符。

[stored as textfile]关键字,是用来设置加载数据的数据类型,默认是TEXTFILE,如果文件数据是纯文本,就是使用 [stored as textfile],然后从本地直接拷贝到HDFS上,Hive直接可以识别数据。

hive数据仓库期末考试,数据仓库,hive,hadoop

通过select语句查看cat_group表中是否成功导入数据,由于数据量大,使用limit关键字限制输出10条记录。

  1. select * from cat_group limit 10;  

    2.将HDFS上的数据导入到Hive中。

    首先,另外开启一个操作窗口,在HDFS上创建/myhive2目录。hive数据仓库期末考试,数据仓库,hive,hadoop

  2. 然后,将本地/data/hive2/下的cat_group表上传到HDFS的/myhive2上,并查看是否创建成功。
  3. 将cat_group1表中的数据导入到cat_group2表中。
  4. insert overwrite table cat_group2 select * from cat_group1;  (insert overwrite 会覆盖数据)

分区表
分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所 有的数据文件。Hive 中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多

     创建表分区,在Hive中创建一个分区表goods,包含goods_id和goods_status两个字段,字符类型为string,分区为cat_id,字符类型为string,以“\t“为分隔符。(partition by 用来定义分区 )

  1. create table goods(goods_id string,goods_status string) partitioned by (cat_id string)  row format delimited fields terminated by '\t';  

向分区表插入数据,将本地/data/hive2下的表goods中数据,插入到分区表goods中。

首先,在Hive中创建一个非分区表goods_1表,用于存储本地/data/hive2下的表goods中数据。

  1. create table goods_1(goods_id string,goods_status string,cat_id string)  row format delimited fields terminated by '\t';  
  2. 导表操作
    将本地/data/hive2下的表goods中数据导入到Hive中的goods_1表中load data local inpath '/data/hive2/goods' into table goods
  3.         同理,再将表goods_1中的数据导入到分区表goods中
           insert into table goods partition(cat_id='52052') select goods_id,goods_status from goods_1 where cat_id='52052'; 

         
  4. 查看表goods中的分区 show partitions goods; 
    hive数据仓库期末考试,数据仓库,hive,hadoop
  5. 分桶是将数据集分解成更容易管理的若干部分的另一个技术。桶为表提供了额外的结构,Hive在处理某些查询时利用这个结构,能够有效地提高查询效率。 

    分区针对的是数据的存储路径;分桶针对的是数据文件

  6. 创建桶

    创建一个名为goods_t的表,包含两个字段goods_id和goods_status,字符类型都为string,按cat_id string做分区,按goods_status列聚类和goods_id列排序,划分成两个桶,clustered by用来指定划分通分桶用的列和要划分桶的个数create table goods_t(goods_id string,goods_status string) partitioned by (cat_id string)  clustered by(goods_status) sorted by (goods_id) into 2 buckets;  

  7. 用insert子句将其他表中的数据加载到分桶表
    insert overwite table good1 select * from goods_t;
    (每个桶对于MapReduce的输出文件分区,一个作业产生)

    1. 导入数据的语法
      (1)load data [local] inpath 'filepath' [overwrite] into table tablename [partition(partcol=val1,partcol2=cal2...)]
      local的意思是导入linux的本地的数据,若是从hdfs上导入就不用加
      filepath指的是数据的路径
      overwrite指定覆盖表之前的数据
      partition分区表的意思
      (2)单表查询导入数据
               insert [overwrite|into] table 表1
               [partition (part1=val1,part2=val2) ] select字段1,字段2,字段3 from 表2;

    2. hive数据仓库期末考试,数据仓库,hive,hadoop文章来源地址https://www.toymoban.com/news/detail-760802.html

到了这里,关于云计算复习之Hive数据仓库期末复习整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【期末考试】计算机组成原理突击复习

    本文共 6个应用题, 8个计算题, 12个简答题 , 均是根据我们学校往年考试重点挑出来的, 看的快的话大概1个小时就能看完, 计算机组成原理突击复习的话看课程和课本已经不现实了, 知识点太多太杂, 看不过来的, 最好就是直接做题, 因为着重的考点就那几种题目, 记住怎么做 就行

    2024年02月02日
    浏览(72)
  • 云计算与大数据之间的羁绊(期末不挂科版):云计算 | 大数据 | Hadoop | HDFS | MapReduce | Hive | Spark

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 大数据是需求,云计算是手段。没有大数据,就不需要云计算;没有云计算,就无法处理大数据。 所有的计算能力、存储能力、和各种各样功能的应用都通过网络

    2024年02月04日
    浏览(63)
  • 云计算复习之Spark(Scala版)期末复习整理

    声明:                1. 本文针对的是一个知识的梳理,自行整理以及方便记忆               2. 若有错误不当之处, 请指出 Scala是一种针对JVM 将面向函数和面向对象技术组合在一起的编程语言。Scala编程语言近来抓住了很多开发者的眼球。它看起来像是一种纯粹

    2024年02月03日
    浏览(35)
  • 【分布式与云计算期末复习】比斯兔考试版

    仅自己的期末复习笔记,有些零散,但大部分包括了往年例题的考点,来自于书本和其他博客。觉得我写的乱的也可以根据这些考点自己去百度和csdn其他大佬的博客自己填充~ 目录 故障 故障检测 故障屏蔽 故障解决方法  心跳检测 Lease租约机制 数据分布方式 副本 数据副本

    2024年02月05日
    浏览(44)
  • 计算机网络重点概念整理-第一章 计算机网络概述【期末复习|考研复习】

    计算机网络复习系列文章传送门: 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称缩写 给大家整理了一下计算机网络中的重点概念,以供大家期末复习和考研复习的时候使用。 参

    2024年02月07日
    浏览(62)
  • 计算机网络重点概念整理-第五章 传输层【期末复习|考研复习】

    计算机网络复习系列文章传送门: 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称缩写 给大家整理了一下计算机网络中的重点概念,以供大家期末复习和考研复习的时候使用。 参

    2024年02月08日
    浏览(55)
  • 计算机网络重点概念整理-第四章 网络层【期末复习|考研复习】

    计算机网络复习系列文章传送门: 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称缩写 给大家整理了一下计算机网络中的重点概念,以供大家期末复习和考研复习的时候使用。 参

    2024年02月08日
    浏览(40)
  • 计算机网络重点概念整理-第七章 网络安全【期末复习|考研复习】

    计算机网络复习系列文章传送门: 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称缩写 给大家整理了一下计算机网络中的重点概念,以供大家期末复习和考研复习的时候使用。 参

    2024年02月07日
    浏览(53)
  • 计算机网络重点概念整理-第二章 物理层【期末复习|考研复习】

    计算机网络复习系列文章传送门: 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称缩写 给大家整理了一下计算机网络中的重点概念,以供大家期末复习和考研复习的时候使用。 参

    2024年02月08日
    浏览(43)
  • 云计算-HIVE部分代码复习(自用)

    一、数据仓库的操作 1.在Hive中创建一个数据仓库,名为DB create database DB; 以上创建了一个BD库,但是这一条sql可以进一步优化,我们可以加上if not exists create database if not exists DB; 2.查看数据仓库BD的信息及路径 describe database DB; 3.删除名为DB的数据仓库 drop database if exist DB; 二、Hive数

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包