DDL&DML常用的HQL

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

Hive Data Definition Language(DDL)


1.创建数据库
  1. hive> create database hive_data2;
  2. OK
  3. Time taken: 0.226 second
 -- 删除数据库
  1. hive>drop database hive_data2 CASCADE;
  2. OK
  3. Time taken: 0.226 second
 --CASCADE参数:强制删除库和所有的表

1.1.查看 hive_data2信息
  1. hive> desc database hive_data2;
  2. OK
  3. hive_data2 hdfs://192.168.0.129:9000/user/hive/warehouse/hive_data2.db hadoop USER
  4. Time taken: 0.063 seconds, Fetched: 1 row(s)
[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表
  1. hive> create table persion(id int,name string);
  2. OK
  3. Time taken: 0.297 seconds
2.2.查看persion表所有信息

  1. hive> desc formatted persion;
  2. OK
  3. # col_name data_type comment
  4.                  
  5. id int
  6. name string
  7.                  
  8. # Detailed Table Information
  9. Database: hive_data2
  10. Owner: hadoop
  11. CreateTime: Sun Jun 03 16:48:20 EDT 2018
  12. LastAccessTime: UNKNOWN
  13. Protect Mode: None
  14. Retention: 0
  15. Location: hdfs://192.168.0.129:9000/user/hive/warehouse/hive_data2. db/persion    --HDF存放路径
  16. Table Type: MANAGED_TABLE   -- managed_table 内部表   -- external 外部表
  17. Table Parameters:
  18.         transient_lastDdlTime 1528058900
  19.                  
  20. # Storage Information
  21. SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
  22. InputFormat: org.apache.hadoop.mapred.TextInputFormat
  23. OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
  24. Compressed: No               -- 是否采用压缩
  25. Num Buckets: -1
  26. Bucket Columns: []
  27. Sort Columns: []
  28. Storage Desc Params:
  29.         serialization.format 1
  30. Time taken: 0.198 seconds, Fetched: 27 row(s)
[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作为列分隔

  1. CREATE TABLE persion_123
  2. (id int comment 'this is id', name string comment 'this id name' )
  3. comment 'this is ruozedata_person'
  4. ROW FORMAT DELIMITED      
  5. FIELDS TERMINATED BY '\t'


Hive Data Manipulation Language


3.创建测试数据
  1. [hadoop@hadoop001 ~]$ cat /home/hadoop/data/1.txt
  2. 1 aa
  3. 1 bb
  4. 1 vv
  5. 1 dd
  6. 1 ff
-- LOADl加载本数据 persion_123

  1. hive> select * from persion_123;
  2. OK
  3. Time taken: 0.458 seconds
  4. hive> LOAD DATA LOCAL INPATH '/home/hadoop/data/1.txt' OVERWRITE INTO TABLE persion_123;

  5. Loading data to table hive_data2.persion_123
  6. Table hive_data2.persion_123 stats: [numFiles=1, numRows=0, totalSize=72, rawDataSize=0]
  7. OK
  8. Time taken: 1.479 secon
  9. hive> select *from persion_123;
    OK
    1       aa
    1       bb
    1       vv
    1       dd
    1       ff

参数介绍:
  1. LOAD DATA LOCAL INPATH '/home/hadoop/data/emp.txt' OVERWRITE INTO TABLE persion_123
LOCAL : 从本地文件系统加载数据到hive表
LOCAL 从HDFS文件系统加载数据到hive表

OVERWRITE : 加载数据到表的时候数据的处理方式,覆盖
OVERWRITE :追加


4.Hive内部表与外部表




Hive创建表默认使用内部表 managed_table   内部表    
 -- external 外部表
  1. -- external创建外部表 
    create
    external table emp
  2. (empno int, ename string, job string, mgr int, hiredate string, salary double, comm double, deptno int)
  3. ROW FORMAT DELIMITED
  4. FIELDS TERMINATED BY '\t';
  5. -- 挂载数据
  6. LOAD DATA LOCAL INPATH '/home/hadoop/data/emp.txt' OVERWRITE INTO TABLE emp
  7. -- 查询数据
 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



内部表外部表区别:
    
外部表删除表 删除元数据数据,保留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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值