- 创建库:create database 库名
- 创建表:create table 表名
- 创建外部表:createexternal table 库名
- 创建表格式:
create 【external】 table 【if not exists】库名(字段1 类型1 【comment注释】,字段2 类型2 【comment注释】……)
【comment表注释】
【分区partitioned by(字段 类型)【注释】(表中没有的字段)】
【分桶clustered by (字段1,字段2,……)(表中实际存在的字段)】
【sorted by(对桶中的一个或多个列另外排序)】
【格式化row format】
【文件类型stored as】默认是textfile
【location 文件路径】
【tblproperties(‘属性名’=‘属性值’)】
【as select 根据查询结果建表】/【like 表名】复制表结构,但是不复制数据 - 删除库:drop database 库名 【cascade】(删除非空库)
- 删除表:drop table 表名
- 查询表的结构:desc 表名 (table必须省略)
- 查询库的结构:desc database 库名
- 查询表的详细信息:desc formatted 表名
- 查询库的详细信息:desc database extended 库名;
- 清空表内数据:truncate table 表名(只能删除管理表中的数据)
- 向表中插入数据:insert into 表名 values(字段类型)
- 修改表内数据:update 表名 set 字段=新值 where 字段=旧值
- 导入本地数据:load data local inpath ‘路径’into table 表名
- 导入HDFS上的数据:load data inpath “路径”into table 表名
- 刷新:flush privilege
- Cli客户端登录:bin/hive
- 不进入hive交互窗口执行sql语句:bin/hive -e ''select * from 库名.表名"(如果不加库名.默认查找default库)
- 不进入hive交互窗口执行sql脚本:bin/hive -f /opt/module/datas/hivef.sql (后面跟sql脚本文件)
- 在Cli命令窗口中查看hdfs文件系统:dfs -ls /;
- 在Cli命令窗口中查看本地文件系统:! ls /opt/module/datas;
- 查看在hive中输入的所有历史命令:进入当前用户的根目录/root或/home/用户名,cat .hivehistory
- 数据类型显式转换:cast(‘12’ as int) (将字符串‘12’显式转换成int)
例子:select ‘1’+2,cast(‘1’ as int)+2; (结果为3.0和3,前面隐式转换为double,后面显式转换为int - 创建库,增加存在判断:create database if not exists 库名;
- 创建库,指定在HDFS上存放的位置:create database 库名 location ‘路径’;
- 过滤显示的数据库:show database like ‘stu*’(结果:stu1、stu2……)
- 给数据库添加属性:alter database 库名 set dbproperties(‘属性名’=‘属性值’);
- 在HDFS上创建目录:dfs -mkdir 路径;
- 往HDFS上传文件: dfs -put 本地文件路径 HDFS路径
- 创建表并关联HDFS上的数据:create table 表名(字段 属性)location ‘HDFS数据目录’;
- 管理表与外部表的转换:alter table 表名 set tblproperties(‘EXTERNAL’=‘TRUE/FALSE’)(必须为大写,TRUE为外部表)
- 分区表:
创建分区表:create table 表名(字段 属性)partitioned by(字段 属性)row format……;
分区表导入数据:load data local inpath 路径 into table 表名 partition(字段=‘分区值’)(分区表导入数据必须指明分区)
查询分区表数据:select * from 表名 where 分区字段=‘值’;
多分区联合查询:
select * from 表名 where 分区字段=‘值1’
union
select * from 表名 where 分区字段=‘值2’;
增加多个分区:alter table 表名 add partition(字段=‘值1’)partition(字段=‘值2’);(增加多个分区,partition之间什么都不加)
删除多个分区:alter table 表名 drop partition(字段=‘值1’),partition(字段=‘值2’);(删除多个分区,partition之间加“,”)
查看分区:show partitions 表名;
二级分区表:
创建分区表:create table 表名(字段 属性)partitioned by(字段1 属性1,字段2 属性2)row format……;
分区表导入数据:load data local inpath 路径 into table 表名 partition(字段1=‘分区值’,字段2=‘值’)(分区表导入数据必须指明分区)
查询分区表数据:select * from 表名 where 分区字段1=‘值1’and 分区字段2=‘值2’; - 修改表名:alter table 旧表名 rename to 新表名;
- 更新列:alter table 表名 change 【column】 旧列名 新列名 列类型 【comment】【first(放在最前面)|after 列名(放在该列后)】(即使只更新字段类型,新旧字段处都要写上该字段)
- 增加和替换列:alter table 表名 add|replace columns (字段1 类型1,字段2 类型2,……);add添加字段在最后(分区字段之前)|replace替换表中所有列
Hive常用命令
最新推荐文章于 2023-10-17 10:31:35 发布