官网:
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/