使用 Hive 向 HDFS 插入数据

insert data in HDFS using Hive

假设我们有一个外部 Hive table 指向 hdfs 目录中的 CSV 文件。

那么使用配置单元在此 table 上插入新行时发生了什么:

  1. 插入会导致整个重写 table 吗?
  2. 或者整个重写数据所在的hdfs块?
  3. 或者只是在文件末尾追加新行?

更新操作的相同问题

提前致谢!

回答您的问题,认为您正在使用插入语句而不是对文件使用 INSERT OVERWRITE

  1. 不,插入将使用您插入的数据创建一个新文件
  2. 不,只会插入新文件
  3. 没有对现有文件进行追加

即使您使用 INSERT INTO 并插入一些文件,这些新文件也会出现并位于 HDFS 中的特定目录中,而不会影响现有文件。

如果您正在使用 INSERT OVERWRITE,则给定 table 目录中的所有文件都将被删除,新文件将放置在该目录中。