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路径
2.3Hive DML 数据操作语言 - 图1
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.3Hive DML 数据操作语言 - 图2

2.3.4 删除表

删除所有数据

使用truncate仅可删除内部表数据,不可删除表结构
truncate table 表名


使用shell命令删除外部表数据(hdfs dfs -rm -r 外部表路径)


删除表部分数据有partition表

  1. 删除具体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 模拟学员线上学习流程进行数据入库