目录
2、DML 操作
2.1、Load 装载数据
说明:
1、 LOAD 操作只是单纯的复制或者移动操作,将数据文件移动到 Hive 表对应的位置。
2、 LOCAL 关键字 如果指定了 LOCAL, LOAD 命令会去查找本地文件系统中的 filepath。 如果没有指定 LOCAL 关键字,则根据 inpath 中的 uri 查找文件 注意:uri 是指 hdfs 上的路径,分简单模式和完整模式两种,例如: 简单模式:/user/hive/project/data1 完整模式:hdfs://namenode_host:9000/user/hive/project/data1
3、 filepath: 相对路径,例如:project/data1 绝对路径,例如:/user/home/project/data1 包含模式的完整 URI,列如:hdfs://namenode_host:9000/user/home/project/data1 注意:inpath 子句中的文件路径下,不能再有文件夹。
4、 overwrite 关键字 如果使用了 OVERWRITE 关键字,则目标表(或者分区)中的内容会被删除,然后再将 filepath 指向的文件/目录中的内容添加到表/分区中。 如果目标表(分区)已经有一个文件,并且文件名和 filepath 中的文件名冲突,那么现 有的文件会被新文件所替代。
具体实例:
1、 加载本地相对路径数据
2、 加载绝对路径数据
3、 加载包含模式数据
4、 overwrite 关键字使用
2.2、Insert 插入数据
语法结构:
1、插入一条数据:
INSERT INTO TABLE table_name VALUES(XX,YY,ZZ);
2、利用查询语句将结果导入新表:
INSERT OVERWRITE [INTO] TABLE table_name [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement
3、多重插入
FROM from_statement
INSERT OVERWRITE TABLE table_name1 [PARTITION (partcol1=val1, partcol2=val2 ...)]
select_statement1
INSERT OVERWRITE TABLE table_name2 [PARTITION (partcol1=val1, partcol2=val2 ...)]
select_statement2] ...
4、分区插入
分区插入有两种,一种是静态分区,另一种是动态分区。如果混合使用静态分区和动态分区, 则静态分区必须出现在动态分区之前。现分别介绍这两种分区插入。
静态分区: A)、创建静态分区表 B)、从查询结果中导入数据 C)、查看插入结果
动态分区: 静态分区需要创建非常多的分区,那么用户就需要写非常多的 SQL!Hive 提供了一个动态分 区