假设已经进入hive的环境。有一张叫做test的表
- 展示所有的数据库,show databases;
- 展示所有的表,show tables;
- 查看表结构,尤其是查看表的字段类型:desc test;
- 查看表存贮,show create table test;
- 删除表内容,保留表结构,truncate table test;
- 删除一张表,drop table test;
- 删除某个分区的内容,ALTER TABLE test1 DROP PARTITION (dt=‘2016-04-29’);
内部表&外部表
未被external修饰的是内部表(managed table),被external修饰的为外部表(external table);
区别:
内部表数据由Hive自身管理,外部表数据由HDFS管理;
内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定;
删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)
外部表使用场景
对于一些原始日志文件,同时被多个部门同时操作的时候就需要使用外部表,如果不小心将meta data删除了,HDFS上 的data还在可以恢复,增加了数据的安全性。