Hive临时表自动删除

时间:2016-11-24 16:29:18

标签: hive hiveql

在练习期间,我在hive提示符下使用以下查询创建了tmp表。

$create temporary table tmp (id int);

现在表已成功创建,如果我关闭hive会话表将被hive自动删除,根据文档是真的。

现在,还有其他方法可以使用以下命令运行相同的查询。

$hive -e 'create temporary table tmp (id int);'

表已成功创建,但我的怀疑是这次,为什么tmp表这次不会被自动删除。执行下一个命令后,我仍然可以看到tmp表。

$hive -e 'show tables;'
OK
customers
order
product
tmp
Time taken: 0.856 seconds, Fetch: 4 row(s)

1 个答案:

答案 0 :(得分:0)

很可能你已经有了同名但不是临时的表。

重现的步骤:

我已经检查过没有这样的表(不是临时的)已经存在。

hive -e 'use myschema; show tables "tmp";'
--no rows returned

然后我举了你的例子:

$hive -e 'use myschema; create temporary table tmp (id int);'
OK

检查没有表格:

hive -e 'use myschema; show tables "tmp";'
--no rows returned - it works correctly

创建非临时

hive -e 'use myschema; create table tmp (id int);'
--ok

现在有持久表:

hive -e 'use myschema; show tables "tmp";'
OK
tmp
Time taken: 0.081 seconds, Fetched: 1 row(s)

尝试创建相同的临时表:

hive -e 'use myschema; create temporary table tmp (id int);'
OK

持久表仍保留在架构中。临时表已成功删除,临时表在会话中被隔离,对其他会话不可见。