Hive表入门--Hive表概述

一. Hive表建表语法

create [external] table [if not exists] 表名(字段名 字段类型 , 字段名 字段类型 , … )
[partitioned by (分区字段名 分区字段类型)] # 分区表固定格式
[clustered by (分桶字段名) into 桶个数 buckets] # 分桶表固定格式 注意: 可以排序[sorted by (排序字段名 asc|desc)]
[row format delimited fields terminated by ‘字段分隔符’] # 自定义字段分隔符固定格式
[stored as textfile] # 默认即可
[location ‘hdfs://node1.itcast.cn:8020/user/hive/warehouse/库名.db/表名’] # 默认即可
; # 注意: 最后一定加分号结尾

注意: 关键字顺序是从上到下从左到右,否则报错

二. 数据类型

基本数据类型:
1.整数int
2.小数:float double
3.字符串:string varchar(长度)
4.日期:date timestamp

复杂数据类型:
1.array:集合
2.map:映射
3.struct:结构体
4.union:联合体

三. 表分类

Hive中可以创建的表有好几种类型,分别是:
内部表:managed_table
外部表:external_table
分桶表
分区表

这几种表之间的关系:
内部表(管理表): MANAGED_TABLE
分区表—分桶表
分桶表
外部表(非管理表): EXTERNAL_TABLE
分区表—分桶表
分桶表

内部表和外部表里面可以有分区表和分桶表,分区表中也可以有分桶表,但是分桶表中不能有分区表。
因为分区表的本质是分目录。分桶表的本质是分文件,后续还会详细对比两者。

default默认库存储路径:
—>hdfs://node1.itcast.cn:8020/user/hive/warehouse

自定义库在HDFS的默认存储路径:
—>hdfs://node1.itcast.cn:8020/user/hive/warehouse/库名.db

自定义表在HDFS的默认存储路径:
—>hdfs://node1.itcast.cn:8020/user/hive/warehouse/库名.db/表名

业务数据文件在HDFS的默认存储路径:
—>hdfs://node1.itcast.cn:8020/user/hive/warehouse/库名.db/表名/业务数据文件

[重点]内部表和外部表的区别

1.创建表关键字
未被external关键字修饰的即是内部表, 即普通表,内部表又称管理表,还可以叫托管表。
被external关键字修饰的即是外部表, 即关联表,还可以叫非管理表或非托管表。

2.对存储数据有无控制权
内部表对存储数据有绝对控制权,所以使用drop table删除表的时候存储数据会随着元数据一起被删除。
而外部表对存储数据没有控制权,所以使用drop table删除表的时候元数据被删除,存储数据会被保留。
再次建表后,可以使用location重新关联原来hdfs保留的业务数据

3.清空表操作
内部表可以使用关键字truncate清空表存储数据。
外部表则没有该操作。

4.复制表操作
内部表在复制表的时候可以使用as select语句复制表结构和表数据。
而外部表不能使用该语法,外部表只能使用like语法复制表结构。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值