Hive 基本教程

Hive SQL

Hive 笔记

hive insert overwrite 的用法详解


在 Hive 中,INSERT OVERWRITEINSERT INTO 是用于将数据加载到表中的两种常见方式。它们的主要区别在于对目标表数据的处理方式。

  1. INSERT INTO
  2. 用途: INSERT INTO 用于将数据追加到目标表的末尾,保留原有数据,并在末尾添加新数据。
  3. 注意事项:目标表必须存在且与源数据的模式匹配。
  4. 示例代码:
-- 创建目标表
CREATE TABLE my_table (
  id INT,
  name STRING
);

-- 向目标表中插入数据
INSERT INTO my_table VALUES
  (1, 'Alice'),
  (2, 'Bob');

  1. INSERT OVERWRITE
  2. 用途: INSERT OVERWRITE 用于将新数据覆盖目标表中的旧数据,常用于全量替换表中的数据。
  3. 注意事项:目标表必须存在且与源数据的模式匹配,且数据类型需要兼容。
  4. 示例代码:
-- 创建目标表
CREATE TABLE my_table (
  id INT,
  name STRING
);

-- 向目标表中插入初始数据
INSERT INTO my_table VALUES
  (1, 'Alice'),
  (2, 'Bob');

-- 使用 INSERT OVERWRITE 将新数据覆盖旧数据
INSERT OVERWRITE TABLE my_table VALUES
  (3, 'Charlie'),
  (4, 'David');

需要注意的是,INSERT OVERWRITE 的操作会导致目标表中的数据完全被新的数据替换,因此在使用这个命令时需要格外小心,以免意外删除数据。

如果目标表的分区列已经指定,那么在执行 INSERT INTOINSERT OVERWRITE 时,也需要确保新插入的数据分区信息与目标表一致。

综上所述,INSERT INTO 用于追加数据到现有表的末尾,而 INSERT OVERWRITE 用于覆盖表中的数据。两者在处理方式上有明显的差异,需要根据具体场景来选择适当的方法。如果需要增量添加数据,可以使用 INSERT INTO,如果需要全量替换数据,可以使用 INSERT OVERWRITE

mysql 中,插入数据的 sql 有很多种形式,除了标准 sql 支持的 INSERT INTO table_name (col1, co ...
Hive SQL 聚合统计函数 COUNT 类似于标准 SQL 的 COUNT 函数,用来计算符合条件的行数。 ...
MySQL 插入数据操作使用 INSERT INTO 语句,它属于 DML(数据操作语言)范畴,该语句插入方式支持从简单的添加操作到唯一键( ...
这里收集了 Hive 开发中常见的问题与解答。 ...
Apache Hive 查询中 UNION 关键字用来将两个或多个表合并后进行查询,需要保证 SELECT 中字段须一致,每个 SELECT ...