Hive临时table自动删除

Hive temporary table auto deletion

在实践中,我在配置单元提示符中使用以下查询创建了 tmp table。

$create temporary table tmp (id int);

现在 table 已成功创建,如果我关闭 Hive 会话 table 将被 Hive 自动删除,根据文档,这是正确的。

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

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

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

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

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

重现步骤:

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

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

那我运行你的例子:

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

检查没有table:

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

创建不是临时的table

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

现在有持久性table:

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

尝试创建相同的临时文件table:

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

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