hive对表进行的几种操作

1、往表中插入数据

1.1带有分区的表(包括txt表和orc表)

insert INTO table analysis.flow_predict_bata select "2020-05-23 00:00:00","12312","23423" FROM system.dual;

1.2不带有分区的表(包括txt表和orc表)

insert INTO table analysis.flow_predict_bata select "2020-05-23 00:00:00","12312","23423" FROM system.dual;

2、删除表中数据

2.1带有分区的表

2.1.1删除部分数据

delete from table analysis.flow_predict_bata where cmdate >= '2020-05-23';

2.1.2删除全部数据

truncate table analysis.flow_predict_bata;
说明:外表(external)属于non-managed表,无法执行truncate操作,需要直接去删除外表在hdfs底层中的文件。

2.2不带有分区的表

2.2.1删除部分数据

delete from table analysis.flow_predict_bata where cmdate >= '2020-05-23';

2.2.2删除全部数据

truncate table analysis.flow_predict_bata;

3、更改表中数据

3.1带有分区的表(包括txt表和orc表)

SET hive.exec.dynamic.partition=true;
INSERT OVERWRITE TABLE analysis.cmordermonth PARTITION(cmmonthtime) select "2020", "03", "100", "100", "10", "2020-03" from system.dual;
会覆盖分区字段值对应的记录,如果分区字段只有一个值则覆盖该值,若是分区字段相同值的记录不止一个,则只留一条记录,为覆盖的记录。

3.2不带有分区的表

INSERT OVERWRITE TABLE analysis.cmordermonth select "2020", "03", "100", "100", "10", "2020-03" from system.dual;
会覆盖所有数据,只留一条记录。

你可能感兴趣的:(hive对表进行的几种操作)