hive表ddl导出_Hive DDL操作(数据库,表的创,删...操作,不涉及表的内容)

创建数据库数据库的创建

# 直接创建 数据库默认在 HDFS的 /user/hive/warehouse 里面

create database hive_db;

# 指定数据存放的位置 路径会在 HDFS 上

# 注意路径最后要加上库名,不然HDFS上无法查看到创建的库文件

create database hive_db location '/hive/hive_db.db'

# if not exists 判断是否存在,为了避免报错

create database if not exists hive;

数据库的查询显示数据库

show databases;

模糊查询

show databases like 'hiv*';

查询数据库的信息

hive> desc database hive_db;

OK

hive_db hdfs://192.168.176.65:9000/hive/hive.db root USER

Time taken: 0.019 seconds, Fetched: 1 row(s)

# 可加一个参数 extended ,查看详细信息

# hive> desc database extended hive_db;

数据库的修改说是修改,其实只能增加数据库的额外属性,只要数据库创建好,使用 desc 查询出来的都不能改

# dbproperties() 里的额外属性可以自己定义

hive> alter database hive_db set dbproperties('Ctime'='2020.6.16');

OK

Time taken: 0.132 seconds

# 创建的额外属性

必须加 extended 才能查询出来

hive> desc database extended hive_db;

OK

hive_db hdfs://192.168.176.65:9000/hive/hive.db root USER {Ctime=2020.6.16}

Time taken: 0.016 seconds, Fetched: 1 row(s)

数据库删除删除空的数据库

drop database 数据库名;

删除不为空的数据库(联动删除)(强制删除)

drop database 数据库名 cascade;

表的操作

创建表完整的创表语法格式

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_buckets BUCKETS]

[ROW FORMAT row_format]

[STORED AS file_format]

[LOCATION hdfs_path]

精简入门格式

# 指定 创表 表名

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name

# 创字段

[(col_name data_type [COMMENT col_comment], ...)]

# 分隔符

[ROW FORMAT row_format]

字段说明

CREATE TABLE :创建一个指定名字的表,如果名相同,这会抛出一个异常

[EXTERNAL] :可以创建一个外部表,在建表的同时指定一个实际的路径(LOCATION),Hive在创建内部表时,会将数据 移动 到Hive指定的路径,若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除数据的时候,内部表的元数据和数据会一起删除,而外部表只删除元数据,不删除数据。

[COMMENT] :为表的字段添加注释

[ROW FORMAT] :指定分隔符。比如 row format delimited fields terminated by "\t";

修改表修改表名

# 格式

alter table 旧表名 rename to 新表名;

hive> alter table hive_db rename to test_db;

OK

Time taken: 0.237 seconds

表的列操作修改列名 只能一列一列的修改

alter table 表名 change column 旧列名 新列名 新列类型;

hive> alter table test_db change column id db_id int;

OK

Time taken: 0.239 seconds

添加、替换列名 可以几列同时操作

# 添加列名

alter table 表名 add columns (列名 类型, 列名 类型);

hive> alter table test_db add columns (addr string, age int);

OK

Time taken: 0.211 seconds

# 替换列名 替换列名 是把表原来的所有列都替换了 留下替换语句指定的列名

alter table 表名 replace columns (列名 类型, 列名 类型)

hive> alter table test_db replace columns (id int, year int);

OK

Time taken: 0.267 seconds

## 查看表的结构 只留下了替换语句的字段

hive> desc test_db;

OK

id int

year int

mouth string # 分区字段

# Partition Information

# col_name data_type comment

mouth string

Time taken: 0.048 seconds, Fetched: 8 row(s)

增加、删除 表的分区

# 增加表的分区

alter table 表名 add partition(指定分区字段)

hive> alter table test_db add partition(mouth="04");

OK

Time taken: 0.225 seconds

# 删除表的分区

alter table 表名 drop partition(指定分区字段)

hive> alter table test_db drop partition(mouth="04");

Dropped the partition mouth=04

OK

Time taken: 0.312 seconds

删除表语法:drop table 表名

hive> drop table test_db;

OK

Time taken: 0.439 seconds

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值