hive 静态分区插入表,不管是否查到数据, 都会建立分区吗
时间: 2024-01-09 20:05:59 浏览: 78
oracle表中已经有数据还能创建分区吗
5星 · 资源好评率100%
在 Hive 中,静态分区插入表时,如果分区目录已经存在,则不会重新创建分区目录,否则会创建新的分区目录。如果插入数据时没有查到对应的分区,则不会创建分区目录。
例如,假设有一个表 `test`,分区键为 `date`,分区目录路径为 `/user/hive/warehouse/test/date=2022-01-01/`,执行如下语句:
```
INSERT INTO test(date, value) VALUES ('2022-01-02', 10);
```
如果 `/user/hive/warehouse/test/date=2022-01-02/` 目录不存在,则会创建该目录。如果 `/user/hive/warehouse/test/date=2022-01-01/` 目录已经存在,那么不会重新创建该目录。
如果执行如下语句:
```
INSERT INTO test(date, value) VALUES ('2022-01-03', 20);
```
由于 `/user/hive/warehouse/test/date=2022-01-03/` 目录不存在,因此会创建该目录。
如果执行如下语句:
```
INSERT INTO test(date, value) VALUES ('2022-01-01', 30);
```
由于 `/user/hive/warehouse/test/date=2022-01-01/` 目录已经存在,因此不会重新创建该目录。
阅读全文