hive sql ddl

数据库

数据库,仅仅是表的一个目录、命名空间,如果没有指定则默认使用default数据库。

create database xx;
create database if not exists xx;
show databases;
show databases like 'h.*';  # 正则
use database;
select current_database();
drop databse xxx;
drop database if exists finacials cascade;

对于hivecli可以设置显示当前数据库名称:

set hive.cli.print.current.db=true;

hive会为每个数据库创建一个目录,是以数据库名称加.db命名的。但是default是没有的,直接在hive目录下。

可以使用location来指定存储路径(除了hdfs还可以使用mapr s3 本地路径等),建议使用comment来加注释

数据表

create table pokes(foo int, bar string);
show tables;
show tables in mydb;
show tables 'empl.*';
describe finacials;
describe formatted finacials;

以上创建的表是内部表,即hive本身是可以管理这些表的。

外部表

create external table xx 
location ''

在删除外部表时数据不会被删掉。此外还可以通过内部表生成外部表,这样可以解决一些权限问题?

分区表

通过在创建表时带partitioned by来对数据进行分区,会改变数据存储的组织方式

表的存储格式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容