Hive基本操作介绍

Hive基本操作:
1.hive登录:
1).远程登录:beeline:支持嵌入模式(embedded mode)和远程模式(remote mode)。在嵌入式模式下,运行嵌入式的Hive(类似Hive CLI),而远程模式可以通过Thrift连接到独立的HiveServer2进程上,要与HiveServer2配合使用,服务端启动hiveserver2 ,客户的通过beeline两种方式连接到hive:
beeline -u jdbc:hive2://localhost:10000/default -n root
2).hive客户端登录:
在这里插入图片描述
2.hive基本操作:
查看库信息:
在这里插入图片描述
模糊查询:
在这里插入图片描述
创建数据库:
Create Database
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]//默认在仓库根目录
[WITH DBPROPERTIES (property_name=property_value, …)];

删除库信息:
Drop Database
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];//数据库中有表存在需要使用CASCADE
修改库信息:
Alter Database
ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, …); – (Note: SCHEMA added in Hive 0.14.0)
ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role; – (Note: Hive 0.13.0 and later; SCHEMA added in Hive 0.14.0)
ALTER (DATABASE|SCHEMA) database_name SET LOCATION hdfs_path; – (Note: Hive 2.2.1, 2.4.0 and later)

使用及查看库表:
在这里插入图片描述
查看表信息及数据:
在这里插入图片描述
二:Hive表基本操作信息

一、create table

1、官方字段

复制代码

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name – (Note: TEMPORARY available in Hive 0.14.0 and later)
[(col_name data_type [COMMENT col_comment], … [constraint_specification])]
[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]
[SKEWED BY (col_name, col_name, …) – (Note: Available in Hive 0.10.0 and later)]
ON ((col_value, col_value, …), (col_value, col_value, …), …)
[STORED AS DIRECTORIES]
[
[ROW FORMAT row_format]
[STORED AS file_format]
| STORED BY ‘storage.handler.class.name’ [WITH SERDEPROPERTIES (…)] – (Note: Available in Hive 0.6.0 and later)
]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, …)] – (Note: Available in Hive 0.6.0 and later)
[AS select_statement]; – (Note: Available in Hive 0.5.0 and later; not supported for external tables)

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
LIKE existing_table_or_view_name
[LOCATION hdfs_path];

data_type
primitive_type
| array_type
| map_type
| struct_type
| union_type – (Note: Available in Hive 0.7.0 and later)
primitive_type
TINYINT
| SMALLINT
| INT
| BIGINT
| BOOLEAN
| FLOAT
| DOUBLE
| DOUBLE PRECISION – (Note: Available in Hive 2.2.0 and later)
| STRING
| BINARY – (Note: Available in Hive 0.8.0 and later)
| TIMESTAMP – (Note: Available in Hive 0.8.0 and later)
| DECIMAL – (Note: Available in Hive 0.11.0 and later)
| DECIMAL(precision, scale) – (Note: Available in Hive 0.13.0 and later)
| DATE – (Note: Available in Hive 0.12.0 and later)
| VARCHAR – (Note: Available in Hive 0.12.0 and later)
| CHAR – (Note: Available in Hive 0.13.0 and later)
array_type
ARRAY < data_type >
map_type
MAP < primitive_type, data_type >
struct_type
STRUCT < col_name : data_type [COMMENT col_comment], …>
union_type
UNIONTYPE < data_type, data_type, … > – (Note: Available in Hive 0.7.0 and later)
row_format
DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
[MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
[NULL DEFINED AS char] – (Note: Available in Hive 0.13 and later)
| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, …)]
file_format:
SEQUENCEFILE
| TEXTFILE – (Default, depending on hive.default.fileformat configuration)
| RCFILE – (Note: Available in Hive 0.6.0 and later)
| ORC – (Note: Available in Hive 0.11.0 and later)
| PARQUET – (Note: Available in Hive 0.13.0 and later)
| AVRO – (Note: Available in Hive 0.14.0 and later)
| JSONFILE – (Note: Available in Hive 4.0.0 and later)
| INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname
constraint_specification:
[, PRIMARY KEY (col_name, …) DISABLE NOVALIDATE ]
[, CONSTRAINT constraint_name FOREIGN KEY (col_name, …) REFERENCES table_name(col_name, …) DISABLE NOVALIDATE
复制代码

2、建表例子

例子1、2

复制代码
##################栗子#####################


create table IF NOT EXISTS default.bf_1og_20150913 #在default库下创建一个表,不存在则创建;
(
ip string COMMENT ‘remote ip address’, #COMMENT:字段注释
user string,
req_url string COMMENT ‘user request url’
)
COMMENT ’ BeiFeng Web Access Logs’ #表注释
ROW FORMAT DELIMITED FIELDS TERMINATED BY‘ ’ #hive的数据存在hdfs上,此项指定数据文件中列之间的间隔符
STORED AS TEXTFILE #数据格式
LOCATION ‘/user/bf/hive/warehouse/bf_log_201501913’ #表的存储路径,可以自己指定


create table IF NOT EXISTS default.bf_1og_20150913_sa
AS select ip, req_url from default.bf_log_20150913; #创建一个表,此表的字段来源于查询另外一个表
复制代码

例子3

################################
create table IF NOT EXISTS default.bf_log_20150914
like default.bf_log_20150913 #根据另外一张表来创建表

二、演示

1、建表

复制代码
#创建表
hive (default)> create table IF NOT EXISTS default.bf_1og_20150913(
> ip string COMMENT ‘remote ip address’,
> user string,
> req_url string COMMENT ‘user request url’)
> COMMENT ‘BeiFeng Web Access Logs’
> ROW FORMAT DELIMITED FIELDS TERMINATED BY’ ’
> STORED AS TEXTFILE;
OK
Time taken: 0.361 seconds

hive (default)> show tables;
OK
tab_name
bf_1og_20150913
bf_log
Time taken: 0.052 seconds, Fetched: 2 row(s)
复制代码

2、导入数据

复制代码
#########
hive (default)> load data local inpath ‘/opt/datas/bf-log.txt’ into table default.bf_1og_20150913;
Copying data from file:/opt/datas/bf-log.txt
Copying file: file:/opt/datas/bf-log.txt
Loading data to table default.bf_1og_20150913
Table default.bf_1og_20150913 stats: [numFiles=1, numRows=0, totalSize=141, rawDataSize=0]
OK
Time taken: 0.36 seconds

#########
hive (default)> select * from default.bf_1og_20150913;
OK
bf_1og_20150913.ip bf_1og_20150913.user bf_1og_20150913.req_url
“27.38.5.159” “-” "31/Aug/2015:00:04:53
“27.38.5.159” “-” "31/Aug/2015:00:04:37
“27.38.5.159” “-” "31/Aug/2015:00:04:53
Time taken: 0.156 seconds, Fetched: 3 row(s)
复制代码

3、第二种建表例子

复制代码
#建表
hive (default)> create table IF NOT EXISTS default.bf_1og_20150913_sa AS select ip, req_url from default.bf_1og_20150913;

hive (default)> show tables;
OK
tab_name
bf_1og_20150913
bf_1og_20150913_sa

hive (default)> select * from default.bf_1og_20150913_sa;
OK
bf_1og_20150913_sa.ip bf_1og_20150913_sa.req_url
“27.38.5.159” "31/Aug/2015:00:04:53
“27.38.5.159” "31/Aug/2015:00:04:37
“27.38.5.159” "31/Aug/2015:00:04:53
Time taken: 0.028 seconds, Fetched: 3 row(s)
复制代码

4、第三种建表例子

复制代码

hive (default)> create table IF NOT EXISTS default.bf_log_20150914 like default.bf_1og_20150913;
OK
Time taken: 0.046 seconds

hive (default)> show tables;
OK
tab_name
bf_1og_20150913
bf_1og_20150913_sa
bf_log
bf_log_20150914
Time taken: 0.013 seconds, Fetched: 4 row(s)

#这里是指copy表结构,不copy表数据
hive (default)> select * from default.bf_log_20150914;
OK
bf_log_20150914.ip bf_log_20150914.user bf_log_20150914.req_url
Time taken: 0.029 seconds
复制代码

三、Create Database

DDL:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

DML:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML

1、Create Database

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, …)];
具体:

复制代码

创建
create database db_name;

create database if not exists db_name; #标准

#指定HDFS上的存储位置
create database if not exists db_name location ‘/user/root/hive/warehouse/db_name.db’;

查看
show databases;
show databases like ‘db_hive*’;

desc database extended db_name;

删除
drop database db_name;

drop database db_name cascade;

drop database if exists db_name;

Alter Database
ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, …); – (Note: SCHEMA added in Hive 0.14.0)

ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role; – (Note: Hive 0.13.0 and later; SCHEMA added in Hive 0.14.0)

ALTER (DATABASE|SCHEMA) database_name SET LOCATION hdfs_path; – (Note: Hive 2.2.1, 2.4.0 and later)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive是一个基于Hadoop的数据仓库工具,用于进行大规模数据分析和查询。下面是Hive的一些基本操作命令: 1. 使用命令`show databases;`可以查看当前所有的数据库。 2. 使用命令`CREATE DATABASE park;`可以创建一个名为park的数据库。实际上,创建数据库相当于在Hadoop的HDFS文件系统中创建了一个目录节点,统一存在`/usr/hive/warehouse`目录下。 3. 使用命令`USE park;`可以进入park数据库。 4. 使用命令`show tables;`可以查看当前数据库下的所有表。 5. 使用命令`CREATE TABLE stu (id INT, name STRING);`可以创建一个名为stu的表,其中包含id和name两个字段。在Hive中,使用的是STRING类型来表示字符,而不是CHAR或VARCHAR类型。所创建的表实际上也是HDFS中的一个目录节点。默认情况下,所有在default数据库下创建的表都直接存在`/usr/hive/warehouse`目录下。 6. 使用命令`INSERT INTO TABLE stu VALUES (1, 'John');`可以向stu表中插入数据。HDFS不支持数据的修改和删除,但在Hive 2.0版本后开始支持数据的追加,可以使用`INSERT INTO`语句执行追加操作。Hive支持查询和行级别的插入,但不支持行级别的删除和修改。实际上,Hive的操作是通过执行MapReduce任务来完成的。插入数据后,我们可以在HDFS的stu目录下发现多了一个文件,其中存储了插入的数据。因此,可以得出结论:Hive存储的数据是通过HDFS的文件来存储的。 7. 使用命令`SELECT id FROM stu;`可以查询stu表中的数据,并只返回id字段的值。 需要注意的是,如果想在HDFS目录下自己创建一个分区,并在该分区下上传文件,需要执行一些额外的操作。首先,手动创建的分区在Hive中是无法使用的,因为原数据库中没有记录该分区的信息。要让自己创建的分区被识别,需要执行命令`ALTER TABLE book ADD PARTITION (category = 'jp') LOCATION '/user/hive/warehouse/park.db/book/category=jp';`。这条命令的作用是在原数据表book中创建对应的分区信息。另外,还可以使用命令`ALTER TABLE book****** 'nn');`来修改分区。 希望以上信息能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值