22

Hive 是否支持临时表?我在 apache 文档中找不到它。

4

2 回答 2

24

从 Hive 0.14.0 开始感谢 @hwrdprkns 的评论。从 Hive 0.14.0 开始,支持临时表https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-TemporaryTables
JIRA 链接:https ://issues.apache.org/吉拉/浏览/HIVE-7090

语法是CREATE TEMPORARY TABLE TABLE_NAME_HERE (key string, value string)

Pre Hive 0.14.0
我不认为 Hive 具有与 SQL Server 类似的临时表。不过,您可以使用 Hive 执行临时表之类的操作。

如果您使用临时表所需的模式创建表,然后在运行需要数据的查询之前执行填充表的查询,它将像临时表一样工作。

步骤是:

  1. 创建表
  2. 填表: INSERT OVERWRITE TABLE temptbl <select_query>
  3. 运行查询

当您运行查询时,您可以temptbl像使用任何其他表一样使用。将INSERT OVERWRITE覆盖表中的所有数据,因此它只会填充该运行的数据。数据仍然存在,因此如果您重新使用该表而不重新填充它,您将使用上次运行的数据。

如果同时需要同一张表但用于不同的数据,这肯定会遇到问题......

据我所知,这是目前 Hive 中“临时”表的唯一解决方案。

于 2011-03-22T01:28:58.423 回答
0

这是我在 hive 中创建临时表的方法:

CREATE TEMPORARY TABLE temp_tbl_name AS
SELECT ...
于 2021-07-29T16:24:16.933 回答