前面我们部署好Hive组件后,我们创建一些库和表,并插入数据,然后进行分析
#创建一个数据库
hive> create database wyldb03;
OK
Time taken: 11.075 seconds
hive> use wyldb03;
OK
Time taken: 0.102 seconds
# 在当前数据库下,创建一个employ表
hive> create table employ (id int,name string, sex string, age int, department string) row format delimited fields terminated by ",";
OK
Time taken: 1.023 seconds
描述刚刚我们创建表的结构
hive> desc employ;
OK
id int
name string
sex string
age int
department string
Time taken: 0.119 seconds, Fetched: 5 row(s)
formatted
详细描述创建表的信息,包括数据的分隔符
hive> desc formatted employ;
OK
# col_name data_type comment
id int
name string
sex string
age int
department string
# Detailed Table Information
Database: wyldb03
Owner: root
CreateTime: Wed May 22 09:29:51 CST 2019
LastAccessTime: UNKNOWN
Retention: 0
Location: hdfs://wyl01:8020/user/hive/warehouse/wyldb03.db/employ
Table Type: MANAGED_TABLE
Table Parameters:
COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}
numFiles 0
numRows 0
rawDataSize 0
totalSize 0
transient_lastDdlTime 1558488591
# Storage Information
SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat: org.apache.hadoop.mapred.TextInputFormat
OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed: No
Num Buckets: -1
Bucket Columns: []
Sort Columns: []
Storage Desc Params:
field.delim ,
serialization.format ,
Time taken: 0.141 seconds, Fetched: 35 row(s)
在没有load数据进入表中,我们看到hdfs中wyldb03库下是空的
加载数据到刚刚我们创建的employ
表中
hive> load data local inpath "/opt/employ.txt" into table employ ;
Loading data to table wyldb03.employ
OK
Time taken: 1.386 seconds
hive> select * from employ;
OK
1 张三丰 男 30 IT
2 王语嫣 女 18 MA
3 杨过 男 20 CS
4 陆小凤 男 30 IT
5 小龙女 女 20 MA
6 方世玉 男 28 CS
Time taken: 0.345 seconds, Fetched: 6 row(s)
这时候看到hdfs
中wyldb03
数据库下已经有了employ
表中的数据了
刚刚我们创建wyldb2数据库和wyldb03两个数据库,还有student和employ表,我们看看这些数据库的信息存到哪了。
表存在的位置:Location: hdfs://wyl01:8020/user/hive/warehouse/wyldb03.db/employ
hive> select current_database();
OK
wyldb03
元数据存储的位置
下图是我们刚刚创建的几个数据库的名字存储在原数据库的DBS
表中
下面的2张表是部署Hive
的时候创建的student
表和我们上面创建的employ
表
下面字段就是刚刚我们创建的employ
表中的字段