Hadoop生态系统-Hive

文章介绍了Hive中的数据类型,包括基本数据类型如INT、BIGINT和STRING,以及集合数据类型如STRUCT和MAP。此外,详细阐述了Hive的DDL操作,包括创建、查看、修改和删除数据库及表的命令,特别提到了外部表的概念和使用场景。
摘要由CSDN通过智能技术生成

数据类型

基本数据类型

  • 常用的就INT BIGINT DOUBLE STRING可以不区分大小写在这里插入图片描述

集合数据类型

  • 建表(insert数据不常用,所以建表的时候加入数据解析的格式),会在hdfs下建立一个目录,load或put数据后分析这个目录下的数据(hive的表与hdfs的目录关联,使hive的表和数据之间建立映射关系在这里插入图片描述
    在这里插入图片描述
    struct类似java中的对象
    row format delimited fields terminated by ‘,’ 列分隔符
    collection items terminated by ‘_’ MAP STRUCT 和 ARRAY 的分隔符(数据分割符号)
    map keys terminated by ‘:’ MAP中的key与value的分隔符
    lines terminated by ‘\n’; 行分隔符
  • 插入数据:两种方式load(hive)或put(hadoop)在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 查询在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    此处再次体现了struct类似java中的对象,通过对象点属性名访问

类型转换

-在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DDL

1.创建库

  • 建库语法
CREATE DATABASE [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];
[]里的都是可选语句,comment是描述信息,location是库所在的目录,with dbproperties:
  • 创建库的过程就好比去mysql中建立元数据在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.查看库

  • show databases; desc database extended 库名 ;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.修改库

  • alter database mydb set dbproperties(“createtime”=“2022-05-03”,“author”=“ljh”);在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

4.删除库

  • 删除空库drop database mydb1; 删除有表的库drop database mydb cascade ;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    创建数据库时,在mysql中成功创建会自动在hdfs创建相关联的目录文件,单方面删除hdfs目录文件mysql中的元数据库信息是不会自动删除的。而单方面删除mysql中元数据库信息hdfs中的关联目录会自动删除

5.创建表

  • 建表语法
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name   -- EXTERANL: 外部表
[(col_name data_type [COMMENT col_comment], ...)]  -- 列名 列类型 列描述信息  ....
[COMMENT table_comment] -- 表描述信息
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] -- 创建分区表指定分区字段  分区列名  列类型
[CLUSTERED BY (col_name, col_name, ...) -- 创建分桶表指定分桶字段   分桶列名
[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]  -- 指定分桶数
[ROW FORMAT delimited fields terminated by ... ] -- 指定一条数据字段与字段的分割符
[collection items terminated by  ... ] -- 指定集合元素与元素的分割符
[map keys terminated by ... ] -- 指定map的kv的分割符
[STORED AS file_format] -- 指定文件存储格式,默认为 textfile
[LOCATION hdfs_path] -- 指定表在hdfs中对应的路径
[TBLPROPERTIES (property_name=property_value, ...)] -- 指定表的属性
[AS select_statement] -- 基于某个查询建表
  • 指定路径建表与不指定路径(当前在那个数据库中就在那个数据库建表)建表在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 内部表:管理表,默认创建的表就是管理表在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 外部表在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 内部表和外部表的变换在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 内部表和外部表的区别:内部表删表删数据,而外部表删表不删数据。外部表的应用更多
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

6.查看表

  • 各种信息在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 表在mysql中元数据信息在这里插入图片描述
    在这里插入图片描述
  • 三种方式表中插入数据并查看
    1. 由hive上传本地数据到指定表中在这里插入图片描述在这里插入图片描述
      在这里插入图片描述

    2. 由本地上传数据到指定路径下的表中在这里插入图片描述在这里插入图片描述
      在这里插入图片描述

    3. hdfs中已经有数据,建表时之间指定路径,直接映射到指定的数据 在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

7.修改表

  • 准备在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 表名列名的更改,增加列替换列

    1. 改表名在这里插入图片描述
      在这里插入图片描述

    2. 改列名在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    3. 增加列。当创建表时,数据多于列,那么就不匹配。当列多于数据时,就匹配null。在这里插入图片描述
      在这里插入图片描述

    4. 替换列:整体替换在这里插入图片描述
      在这里插入图片描述

8.删除表

  • drop table 表名;
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值