truncate命令(hive vs sql)

2admgd59  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(412)

我期望在sql和hive中有相同的truncate行为。但它是不同的。我想确认一下我是不是看错了
1) 在sql中,以下命令将删除表并重新创建。如果存在,则删除所有分区

mysql> truncate table t1;

2) 在hive中,下面的命令只是从表中删除数据。它不会删除现有分区。我们需要手动放下它。

hive> truncate table t1;

我发现了另一个问题,如果我们在分区表中添加列并对其进行修改。那么在向表中插入覆盖数据时就会出现问题。找到的解决方法是删除表上的所有现有分区。
这是hive(版本0.13)中的问题吗?对配置单元和sql使用truncate还有什么区别?

agxfikkp

agxfikkp1#

在Hive里 truncate table 将从表或分区中删除所有行。
分区无法删除。我们必须手动删除这些分区。
当前目标表应为本机/托管表,否则将引发异常。

相关问题