hive建表以及常用命令总结

hive架构总结

1.用户的接口:Client

CLI(hive shell)

JDBC/ODBC(java访问hive)

WEBUI(浏览器访问hive)

工作中一般在linux中beeline或者spark-beeline打开运行sql或者DBVisualizer连接

2.元数据:Metastore

元数据包括:表的名字,表创建对应的数据库,表的结构,表的类型(外部表内部表)

3.hadoop

使用HDFS存储,使用MapReduce计算,现在一般用hive on spark(快太多了),但是需要优化语句,spark容易卡主跑不动

4.驱动器:Driver

解析器(SQL Parser)检查sql的语法,语义
编译器(Physical Plan)编译成逻辑执行计划
优化器(Query Optimizer)对逻辑执行计划进行优化
执行器(Execution)把逻辑执行计划转换成hive/spark

hive的一些命令

1.在外部运行sql命令

hive -e "show databases"

2.用sql脚本运行sql

hive -f + sql脚本

3.退出hive窗口

hive>exit;

4.查看hdfs文件系统

hive> dfs -ls /;

5.查看本地文件系统

hive> ! ls /root;

建表语句

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]

测试建表语句1

drop table if exists basic.b_test;
create table basic.b_test(
 name string   comment'名称'
,id_no varchar(18)  comment'证件号'
,query_start string comment'查询开始时间'
,query_end   string  comment'查询结束时间'
)
comment'测试表'
row format delimited fields terminated by '\017'
stored as textfile
;

测试建表语句2—压缩格式

drop table if exists basic2.b_test;
create table basic2.b_test(
 name string   comment'名称'
,id_no varchar(18)  comment'证件号'
,query_start string comment'查询开始时间'
,query_end   string  comment'查询结束时间'
)
comment'测试表2'
partitioned by (dt varchar(8))
stored as parquet
tblproperties("parquet.compression"="GZIP")
;

向表中导入数据

hive> load data [local] inpath '/opt/module/datas/student.txt' overwrite | into table student [partition (partcol1=val1,)];

(1)load data:表示加载数据
(2)local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表
(3)inpath:表示加载数据的路径
(4)overwrite:表示覆盖表中已有数据,否则表示追加
(5)into table:表示加载到哪张表
(6)student:表示具体的表
(7)partition:表示上传到指定分区

加载本地文件到hive

hive > load data local inpath '/opt/datas/output/b_test.txt' into table basic.b_test;

将表中数据导出]

hive > insert overwrite local directory '/opt/datas/output/b_test.txt' select * from basic.b_test;

清除表的数据

truncate table basic.b_test;--只能清除管理表(内部表)的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值