Hive 是否将新记录添加到配置单元表(ORC格式)中,并附加到最后一个条带或全新条带中?

Hive 是否将新记录添加到配置单元表(ORC格式)中,并附加到最后一个条带或全新条带中?,hive,orc,Hive,Orc,假设我创建了一个ORC格式的配置单元表,并在表中插入了1M条记录,从而创建了一个带有17条条纹的文件。最后一条条纹不是满的 然后我在这个表中插入了另外100条记录,是将新的100条记录追加到最后一个条带中,还是将创建一个新条带 我尝试在HDFS集群上测试它,似乎每次我们插入新记录时,都会创建一个新文件(当然,也会创建新条带)。想知道为什么吗?原因可能是HDFS不支持编辑文件 因此,当我们在配置单元表中插入数据时,所有新文件都将被创建 如果您想删除这些文件,可以使用 altertable连接;

假设我创建了一个ORC格式的配置单元表,并在表中插入了1M条记录,从而创建了一个带有17条条纹的文件。最后一条条纹不是满的

然后我在这个表中插入了另外100条记录,是将新的100条记录追加到最后一个条带中,还是将创建一个新条带


我尝试在HDFS集群上测试它,似乎每次我们插入新记录时,都会创建一个新文件(当然,也会创建新条带)。想知道为什么吗?

原因可能是HDFS不支持编辑文件

因此,当我们在配置单元表中插入数据时,所有新文件都将被创建

如果您想删除这些文件,可以使用

altertable连接;
(或)

您可以插入或覆盖从中选择的同一个表,以将所有小文件合并到大文件中

insert overwrite <db_table>.<table1> select * from <db_table>.<table1>
插入覆盖。从中选择*。

您还可以使用来控制在HDFS目录中创建的文件数量。

谢谢@Shu,这非常清楚,对我帮助很大。
insert overwrite <db_table>.<table1> select * from <db_table>.<table1>