Insert into和insert overwrite
时间: 2023-09-02 16:11:40 浏览: 157
insert into
`INSERT INTO` 和 `INSERT OVERWRITE` 都是 Hive 中用于向表中插入数据的语句,但它们的行为略有不同。
`INSERT INTO` 语句会向表中追加新的行数据,而不会清除原有数据。如果目标表不存在,则会自动创建该表。如果目标表已经存在,则会将新的行数据插入到已有数据的末尾。
举个例子,假设我们有一个名为 `mytable` 的表,其中已有一些数据。我们可以使用以下语句向其中添加新的行数据:
```
INSERT INTO mytable
VALUES (1, 'John'), (2, 'Mary');
```
执行上述语句后,`mytable` 表中将会包含原有数据以及新插入的两行数据。
相反,`INSERT OVERWRITE` 语句会先清空目标表中的所有数据,然后再向其中插入新的行数据。如果目标表不存在,则会自动创建该表。因此,这个语句常用于覆盖目标表中的所有数据,以便进行全量数据的更新或替换。
举个例子,假设我们要将一个名为 `newdata` 的表中的所有数据覆盖到 `mytable` 表中。我们可以使用以下语句:
```
INSERT OVERWRITE mytable
SELECT * FROM newdata;
```
执行上述语句后,`mytable` 表中将包含 `newdata` 表中的所有数据,并且原有数据将被完全替换。
阅读全文