2.3Hive DML: 数据操作语言
2.3.1 装载数据
从本地装载数据
普通表:load data local inpath ‘数据文件路径’ [overwrite] into table 表名 ; overwrite 关键字表示覆盖原有数据,没有此关键字表示添加数据
分区表:load data local inpath ‘数据文件路径’ [overwrite] into table 表名 partition (分区字段=值);
分桶表:load data local inpath ‘数据文件路径’ [overwrite] into table 表名;
分别验证文件字段与hive 表字段不匹配的情况
从HDFS装载数据
1 . liunx 本地文件上传到HDFS文件系统
hdfs dfs -put 本地文件路径 hdfs路径

HDFS 文件系统查看
2 .文件数据装载到hive表中
load data inpath ‘hdfs数据文件路径’ into table 表名;
同理分区表要指定分区,分桶表与普通表加载数据一样( 本地数据加载去掉 Local)
2.3.2 插入数据(values,select)
1) 普通表 insert into 表名 values(值)
insert overwrite|into 【table】 表名 values(值)
注意 insert overwrite 时 table 关键字不可省略
2) 分区表 insert into 表名 partition (分区字段=字段值) values()
3) 分桶表 insert into 分桶表表名 select * from 中间表
2.3.3 导出数据
导出到本地文件系统
INSERT OVERWRITE LOCAL DIRECTORY ‘文件夹路径’ ROW FORMAT DELIMITED FIELDS
TERMINATED by ‘字段分隔符’ 查询语句;
注意: OVERWRITE 把指定的文件夹重写了 (一定要小心覆盖掉有用的文件) 默认分隔符是用系统指定的,和本身建表语句指定的没有关系
有新建文件夹功能,
导出的文件都名都为000000_0
导出到HDFS
INSERT OVERWRITE DIRECTORY ‘文件夹路径’ 查询语句;
2.3.4 删除表
删除所有数据
使用truncate仅可删除内部表数据,不可删除表结构
truncate table 表名
使用shell命令删除外部表数据(hdfs dfs -rm -r 外部表路径)
删除表部分数据有partition表
删除具体partition
alter table table_name drop partition(partiton_name=’value’))
2. 删除partition内的部分信息(INSERT OVERWRITE TABLE)
重新把对应的partition信息写一遍,通过WHERE 来限定需要留下的信息,没有留下的信息就被删除了。
无partiton表
INSERT OVERWRITE TABLE 表名 SELECT * FROM 表名 WHERE 条件;
删除整个表
使用 drop 可删除整个表 (drop table 表名)
2.3.5 模拟电商下单流程进行数据入库
2.3.6 模拟学员线上学习流程进行数据入库

