你的问题 是不是能描述的详细一点? 我只能猜测一下,你是不是想集成hive的元数据库,可以实现多用户,一般在这种情况下 建议集成mysql作为hive的元数据库,如果你需要具体的步骤,可以留下邮箱,我之前写过一份关于这方面的材料可以打给你,另外你在集成mysql作为元数据仓库的时候应该注意 hive配置文件里面的 *** 作用户配置 在mysql应该存在,另外在mysql里注意要去的匿名用户,否则会报 权限不足异常
创建库
create databases if not exists 库名;
删除库
drop databases 库名 restrict; restrict 默认关键字(可不写)只能删除空库,里边没有表的;
drop databases if exists 库名
drop databases 库名 cascade; cascade强制删除
查看库的列表信息
show databases;
使用库
use databases;
查看正在使用的库
select current_databases();
查看库信息
desc databases 库名;
可使用模糊查询 show databases 库名 like 'my%'
修改库
基本不用
创建表示例(hive sql)
create [external] table [if not exists] table_name (clo_name type comment "字段描述") comment '表描述'
[partitioned by (col_name type [comment '描述'])]
[clustered by (col_name,col_name,)]
[sorted by (col_name [asc|desc],)into num_buckets buskets]
[row format row_format]
[stored as file_format]
[location hdfs_path]
关键字讲解如下:
1)external 关键字:是否创建外部表,不加时是创建内部表,加上external关键字创建的是外部表
2)partitioned by (col_name type [comment '描述']):指定分区字段
分区表存的是不同的目录
分区表在添加数据之前先添加分区
alter table table_name add if not exists partition(col_name ='一个分区')
3)clustered by (col_name,col_name,)指定分桶字段clustered by
sorted by (col_name [asc|desc],) into num_buckets buskets 指定排序字段
排序规则指定的是在同一个分桶内的排序规则
into num_buckets buskets;指定分桶个数num_buckets
判断依据:根据建表语句模板字段后边是否跟type类型,因为一个字段在建表语句中不会建两次
4)[row format row_format] 指定分隔符
delimited fields terminated by '' 指定列分隔符
lines terminated by '' 指定行分隔符
5)[stored as file_format] 指定最终表数据的存储格式
textfile 文本格式 默认的格式
rcfile 行列结合的格式
parquet 压缩格式
6)[location hdfs_path] 指定hive 上表的hdfs上的存储路径
不指定的话,存储在配置的路径下
没指定没配置,默认在 /user /hive /warehouse
复制表,复制表结构不复制数据
create table t1 like t2;
查看表
show tables;
show tables in 库名;
show tables like 's%';
查看表信息
desc 表名:显示表字段
desc extended 表名:显示表的详细信息(由左至右,连续在一起)
desc formatted 表名:格式化显示表的详细信息(规整的,一行一行的)
删除表
drop table if exists 表名;
清空表
truncate table 表名;清空表中的数据,保留表结构
修改表 alter
修改表名称
alter table 表名 rename to 新表名;
修改表字段信息
1)添加字段
alter table 表名 add columns (col_name type,col_name type);
所有新的字段一定要指定类型
2)修改字段,修改字段类型
alter table 表名 chage 原始字段 新字段 新字段类型;
string 类型相当于数值类型属于大类型
hive122中没有限制,各种类型之间都可以进行修改
3)替换列
alter table table_name replacr columns (in int,name string);由原始表全部字段替换成两个
修改表分区信息
1)添加分区
alter table table_name add if not exists partition(city='beijing')
添加分区的过程中,还可以指定分区的存储路径
alter table table_name add if not exists partition(city='beijing') location '/user/beijing'
2)修改分区 修改分区的存储路径
alter table table_name set partition(city='shenzhen') location '/user/shenzhen'
3)删除分区
alter table table_name drop if exists partition(city='beijing')
查看分区信息,针对分区表
show partitions table_name;
show partitions table_name partiton(city='beijing')
DDL和DML *** 作如下
>
以上就是关于hive多用户建表默认数据库全部的内容,包括:hive多用户建表默认数据库、数据库DDL *** 作、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)