官网:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
1.1.查看 hive_data2信息
[hadoop@hadoop001 ~]$ hadoop fs -ls /user/hive/warehouse/
drwxr-xr-x - hadoop supergroup 0 2018-06-03 16:33 /user/hive/warehouse/hive_data2.db
-- 默认会在HDFS的/user/hive/warehouse创建顶层文件夹
2、创建persion表
2.2.查看persion表所有信息
[hadoop@hadoop001 ~]$ hadoop fs -ls /user/hive/warehouse/hive_data2.db/
drwxr-xr-x - hadoop supergroup 0 2018-06-03 16:48 /user/hive/warehouse/hive_data2.db/persion
2.3创建persion_123表,以/t作为列分隔
3.创建测试数据
-- LOADl加载本数据到persion_123表
参数介绍:
LOCAL: 从本地文件系统加载数据到hive表
非LOCAL:从HDFS文件系统加载数据到hive表
OVERWRITE: 加载数据到表的时候数据的处理方式,覆盖
非OVERWRITE:追加
4.Hive内部表与外部表

Hive创建表默认使用内部表managed_table 内部表
-- external 外部表
内部表外部表区别:
外部表删除表 删除元数据数据,保留DFS文件;
内部表 删除元数据数据,也会删除DFS文件;
5.Hive其它常用HQL
-- 查看表属性
hive> desc formatted emp;
-- 复制表结构及数据
hive> create table emp_bak as select * from emp
-- 创建复制表的表结构
hive> create table emp_bak1 like emp;
-- 修改表名
hive> alter table emp_bak1 rename to emp_bak2;
-- 清除表
hive> truncate table emp_bak2;
-- 删除表
hive> drop table emp_bak2;
-- 查看表结构
hive> show create table emp;
-- insert select注意字段先后顺序
hive> insert into emp select *,*,from table
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
Hive Data Definition Language(DDL)
1.创建数据库
-
hive> create database hive_data2;
-
OK
- Time taken: 0.226 second
-- 删除数据库
-
hive>drop database hive_data2 CASCADE;
-
OK
- Time taken: 0.226 second
--CASCADE参数:强制删除库和所有的表
-
hive> desc database hive_data2;
-
OK
-
hive_data2 hdfs://192.168.0.129:9000/user/hive/warehouse/hive_data2.db hadoop USER
- Time taken: 0.063 seconds, Fetched: 1 row(s)
drwxr-xr-x - hadoop supergroup 0 2018-06-03 16:33 /user/hive/warehouse/hive_data2.db
-- 默认会在HDFS的/user/hive/warehouse创建顶层文件夹
2、创建persion表
-
hive> create table persion(id int,name string);
-
OK
- Time taken: 0.297 seconds
-
hive> desc formatted persion;
-
OK
-
# col_name data_type comment
-
-
id int
-
name string
-
-
# Detailed Table Information
-
Database: hive_data2
-
Owner: hadoop
-
CreateTime: Sun Jun 03 16:48:20 EDT 2018
-
LastAccessTime: UNKNOWN
-
Protect Mode: None
-
Retention: 0
-
Location: hdfs://192.168.0.129:9000/user/hive/warehouse/hive_data2. db/persion --HDF存放路径
-
Table Type: MANAGED_TABLE -- managed_table 内部表 -- external 外部表
-
Table Parameters:
-
transient_lastDdlTime 1528058900
-
-
# 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:
-
serialization.format 1
- Time taken: 0.198 seconds, Fetched: 27 row(s)
drwxr-xr-x - hadoop supergroup 0 2018-06-03 16:48 /user/hive/warehouse/hive_data2.db/persion
2.3创建persion_123表,以/t作为列分隔
-
CREATE TABLE persion_123
-
(id int comment 'this is id', name string comment 'this id name' )
-
comment 'this is ruozedata_person'
-
ROW FORMAT DELIMITED
- FIELDS TERMINATED BY '\t'
Hive Data Manipulation Language
-
[hadoop@hadoop001 ~]$ cat /home/hadoop/data/1.txt
-
1 aa
-
1 bb
-
1 vv
-
1 dd
- 1 ff
-
hive> select * from persion_123;
-
OK
- Time taken: 0.458 seconds
-
hive> LOAD DATA LOCAL INPATH '/home/hadoop/data/1.txt' OVERWRITE INTO TABLE persion_123;
-
-
Loading data to table hive_data2.persion_123
-
Table hive_data2.persion_123 stats: [numFiles=1, numRows=0, totalSize=72, rawDataSize=0]
-
OK
- Time taken: 1.479 secon
-
hive> select *from persion_123;
OK
1 aa
1 bb
1 vv
1 dd
1 ff
参数介绍:
- LOAD DATA LOCAL INPATH '/home/hadoop/data/emp.txt' OVERWRITE INTO TABLE persion_123
非LOCAL:从HDFS文件系统加载数据到hive表
OVERWRITE: 加载数据到表的时候数据的处理方式,覆盖
非OVERWRITE:追加
4.Hive内部表与外部表

Hive创建表默认使用内部表managed_table 内部表
-- external 外部表
-
-- external创建外部表
create external table emp -
(empno int, ename string, job string, mgr int, hiredate string, salary double, comm double, deptno int)
-
ROW FORMAT DELIMITED
-
FIELDS TERMINATED BY '\t';
- -- 挂载数据
- LOAD DATA LOCAL INPATH '/home/hadoop/data/emp.txt' OVERWRITE INTO TABLE emp
- -- 查询数据
hive> select * from emp;
OK
7369 SMITH CLERK 7902 1980-12-17 800.0 NULL 20
7499 ALLEN SALESMAN 7698 1981-2-20 1600.0 300.0 30
-- DROP表结构和数据
hive> drop table emp;
OK
-- 查看HDFS文件是否存在
[hadoop@hadoop001 data]$ hadoop fs -ls hdfs://192.168.0.129:9000/user/hive/warehouse/hive_data2.db
18/06/06 11:39:23 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 3 items
drwxr-xr-x - hadoop supergroup 0 2018-06-06 11:32 hdfs://192.168.0.129:9000/user/hive/warehouse/hive_data2.db/emp
OK
7369 SMITH CLERK 7902 1980-12-17 800.0 NULL 20
7499 ALLEN SALESMAN 7698 1981-2-20 1600.0 300.0 30
-- DROP表结构和数据
hive> drop table emp;
OK
-- 查看HDFS文件是否存在
[hadoop@hadoop001 data]$ hadoop fs -ls hdfs://192.168.0.129:9000/user/hive/warehouse/hive_data2.db
18/06/06 11:39:23 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 3 items
drwxr-xr-x - hadoop supergroup 0 2018-06-06 11:32 hdfs://192.168.0.129:9000/user/hive/warehouse/hive_data2.db/emp
外部表删除表 删除元数据数据,保留DFS文件;
内部表 删除元数据数据,也会删除DFS文件;
5.Hive其它常用HQL
-- 查看表属性
hive> desc formatted emp;
-- 复制表结构及数据
hive> create table emp_bak as select * from emp
-- 创建复制表的表结构
hive> create table emp_bak1 like emp;
-- 修改表名
hive> alter table emp_bak1 rename to emp_bak2;
-- 清除表
hive> truncate table emp_bak2;
-- 删除表
hive> drop table emp_bak2;
-- 查看表结构
hive> show create table emp;
-- insert select注意字段先后顺序
hive> insert into emp select *,*,from table
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31441024/viewspace-2155723/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31441024/viewspace-2155723/
本文介绍了Hive中的数据定义语言(DDL)和数据操作语言(HQL)的使用方法,包括创建数据库、表、加载数据等操作,并对比了内部表与外部表的区别。
1042

被折叠的 条评论
为什么被折叠?



