Hive基础04、Hive建表语句详解

举报
红目香薰 发表于 2022/07/29 10:13:45 2022/07/29
【摘要】 ​ ​编辑Hive基础04、Hive建表语句详解1、HQL建表语句语法格式语法格式(hql不区分大小写,[ ]中的属性是可选属性)CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name[ (col_name data_type [COMMENT col_comment], ...) ][COMMENT table_comment][PARTITI...

 编辑

Hive基础04、Hive建表语句详解

1、HQL建表语句语法格式

语法格式(hql不区分大小写,[ ]中的属性是可选属性)

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[ (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_buckers BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]

英文关键字解析:

1、CREATE TABLE 创建一个指定名字的表,如果库中已有相同名的表,则抛出异常;
用户可以使用 IF NOT EXISTS 选项来忽略此异常。


2、EXTERNAL 关键字可以让用户创建一个外部表(默认创建内部表)。外部表在建表的同时必须指定一个指向实际数据的路径(LOCATION),Hive在创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。


3、COMMENT 是给表字段或者表内容添加注释说明的。


4、PARTITIONED BY 给表做分区,决定了表是否为分区表。


5、CLUSTERED BY 对于每一个表(table)或者分区, Hive 可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分,Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中。


6、ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’, 这里指定表存储中列的分隔符,默认是 \001,这里指定的是逗号分隔符,还可以指定其他列的分隔符。


7、STORED AS SEQUENCEFILE|TEXTFILE|RCFILE,如果文件数据是纯文本,可以使用 STORED AS TEXTFILE,如果数据需要压缩,使用 STORED AS SEQUENCEFILE。


8、LOCATION 定义 hive 表的数据在 hdfs 上的存储路径,一般管理表(内部表不不要自定义),但是如果定义的是外部表,则需要直接指定一个路径。

2、建表案例

PARTITIONED BY 给表做分区,决定了表是否为分区表。

ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’, 这里指定表存储中列的分隔符,默认是 \001,这里指定的是逗号分隔符,还可以指定其他列的分隔符。

这里用的是【\t】作为分隔符

create table users(
id int,
userName string,
sex string,
introduce string
)
row format delimited fields terminated by '\t'
stored as textfile;

从无到有: 


编辑

使用【desc】可以查看建表情况: 

编辑


注:Hive表中的数据不能通过insert语句插入,而是load data语句进行加载,其中加载的数据来源主要包括:

1、本地文件系统加载数据

2、HDFS文件系统加载数据

删除语句

truncate table table_name;


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。