• 大数据技术基础实验十:Hive实验——新建Hive表


    大数据技术基础实验十:Hive实验——新建Hive表

    一、前言

    在前面一期博客中我们完成了Hive的部署任务,本期博客我们将学习有关在Hive中创建表等一些基本操作。

    二、实验目的

    1. 学会创建Hive的表
    2. 显示Hive中的所有表
    3. 显示Hive中表的列项
    4. 修改Hive中的表并能够删除Hive中的表

    三、实验要求

    要求实验结束时每位学生均能够完成Hive的DDL操作,能够在Hive中新建,显示,修改和删除表等功能。

    四、实验原理

    Hive没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive中的表,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据。

    Hive中所有的数据都存储在HDFS中,Hive中包含以下数据模型:表(Table),外部表(External Table),分区(Partition),桶(Bucket)。

    Hive中Table和数据库中 Table在概念上是类似的,每一个Table在Hive中都有一个相应的目录存储数据。例如,一个表 pvs,它在 HDFS 中的路径为:/wh/pvs,其中,wh 是在hive-site.xml中由${hive.metastore.warehouse.dir}指定的数据仓库的目录,所有的 Table 数据(不包括 External Table)都保存在这个目录中。

    五、实验步骤

    1、启动Hive

    我们在master虚拟机上首先进入hive的bin目录下,然后执行hive命令即可启动:

    cd /usr/cstor/hive/bin/
    hive
    
    • 1
    • 2

    在这里插入图片描述

    可以看见我们的Hive启动成功了,可以开始基本操作学习了。

    2、创建表

    默认情况下,新建表的存储格式均为Text类型,字段间默认分隔符为键盘上的Tab键。

    创建一个有两个字段的pokes表,其中第一列名为foo,数据类型为INT,第二列名为bar,类型为STRING:

    CREATE TABLE pokes (foo INT, bar STRING) ;
    
    • 1

    在这里插入图片描述

    创建一个有两个实体列和一个(虚拟)分区字段的invites表:

    CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING) ;
    
    • 1

    在这里插入图片描述

    注意:分区字段并不属于invites,当向invites导入数据时,ds字段会用来过滤导入的数据。

    3、显示表

    显示所有的表:

    SHOW TABLES ;
    
    • 1

    在这里插入图片描述

    显示表(正则查询),同MySQL中操作一样,Hive也支持正则查询,比如显示以.s结尾的表:

    SHOW TABLES '.*s';
    
    • 1

    在这里插入图片描述

    4、显示表列

    DESCRIBE invites;
    
    • 1

    在这里插入图片描述

    5、更改表

    修改表events名为3koobecaf (自行创建任意类型events表):

    CREATE TABLE events (foo INT, bar STRING) ;
    ALTER TABLE events RENAME TO 3koobecaf;
    
    • 1
    • 2

    在这里插入图片描述

    将pokes表新增一列(列名为new_col,类型为INT):

    ALTER TABLE pokes ADD COLUMNS (new_col INT);
    
    • 1

    在这里插入图片描述

    将invites表新增一列(列名为new_col2,类型为INT),同时增加注释“a comment”:

    ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment');
    
    • 1

    在这里插入图片描述

    替换invites表所有列名(数据不动):

    ALTER TABLE invites REPLACE COLUMNS (foo INT, bar STRING, baz INT COMMENT 'baz replaces new_col2');
    
    • 1

    在这里插入图片描述

    6、删除表或者列

    删除invites表bar 和 baz 两列:

    ALTER TABLE invites REPLACE COLUMNS (foo INT COMMENT 'only keep the first column');
    
    • 1

    在这里插入图片描述

    删除pokes表:

    DROP TABLE pokes;
    
    • 1

    在这里插入图片描述

    六、最后我想说

    本期实验的内容也比较的简单,都是一些基础的操作,跟MySQL操作类似,所以应该很容易就能理解和上手。

    好啦本期实验就到这里结束了,我们下期实验见!

  • 相关阅读:
    学python,怎么能不学习scrapy呢!
    [报错解决]源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。
    云安全之HTTP协议介绍
    行情分析——加密货币市场大盘走势(11.17)
    Python---变量的作用域
    服务器正文22:linux内核网络模块笔记:收包、发包、各种内核参数上限、网络内核优化和容器网络虚拟化(8/2)
    如何制作资产编号标签
    C语言:大小端字节序存储
    Java笔试题
    【ML】李宏毅三:梯度下降&分类(高斯分布)
  • 原文地址:https://blog.csdn.net/qq_52417436/article/details/127703409