Hive创建表语法

2021-04-27 11:28:19 浏览数 (1)

内部表

代码语言:sql复制
-- 创建内部表
create table user1(
id int comment '用户id',
username varchar(20) comment '账户名称',
password varchar(255) comment '账户密码',
realname varchar(20) comment '真实姓名',
age int comment '年龄',
address varchar(255) comment '住址',
create_time string comment '创建日期'
)
row format delimited 
fields terminated by 't'
lines terminated by 'n'
-- collection items terminated by '01'
-- map keys terminated by '02'
stored as avro
location '/hive/warehouse/testing.db/user1';

外部表

代码语言:sql复制
-- 创建外部表
-- 删除外部表对应hdfs源数据: hadoop fs -rm -r /hive/warehouse/testing.db/user1
create external  table user1(
id int comment '用户id',
username varchar(20) comment '账户名称',
password varchar(255) comment '账户密码',
realname varchar(20) comment '真实姓名',
age int comment '年龄',
address varchar(255) comment '住址',
create_time string comment '创建日期'
)
row format delimited 
fields terminated by 't'
lines terminated by 'n'
-- collection items terminated by '01'
-- map keys terminated by '02'
stored as avro
location '/hive/warehouse/testing.db/user1';

临时表

代码语言:sql复制
-- 创建临时表
create temporary table user1(
id int comment '用户id',
username varchar(20) comment '账户名称',
password varchar(255) comment '账户密码',
realname varchar(20) comment '真实姓名',
age int comment '年龄',
address varchar(255) comment '住址',
create_time string comment '创建日期'
)
row format delimited 
fields terminated by 't'
lines terminated by 'n'
-- collection items terminated by '01'
-- map keys terminated by '02'
stored as avro
location '/hive/warehouse/testing.db/user1';

命令行显示当前数据库(当前有效)

代码语言:javascript复制
set hive.cli.print.current.db=true;

使用场景

外部表:重要数据,高容错,数据共享(删除表不删除物理数据)

内部表:数据清洗转换的中间结果(删除表时元数据和物理数据都删除)

临时表:测试使用,当前session有效,退出自动删除(不支持分区和索引)

注意事项

Hive的存储格式有六种:AVRO、ORC、PARQUET、RCFILE、SEQUENCEFILE、TEXTFFILE

Hive创建表不指定数据格式时,默认是 TEXTFILE 格式

语法详情参考:https://cloud.tencent.com/developer/article/1818590

0 人点赞