Hive 是否支持临时表?我在 apache 文档中找不到它。
2 回答
从 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 执行临时表之类的操作。
如果您使用临时表所需的模式创建表,然后在运行需要数据的查询之前执行填充表的查询,它将像临时表一样工作。
步骤是:
- 创建表
- 填表:
INSERT OVERWRITE TABLE temptbl <select_query>
- 运行查询
当您运行查询时,您可以temptbl
像使用任何其他表一样使用。将INSERT OVERWRITE
覆盖表中的所有数据,因此它只会填充该运行的数据。数据仍然存在,因此如果您重新使用该表而不重新填充它,您将使用上次运行的数据。
如果同时需要同一张表但用于不同的数据,这肯定会遇到问题......
据我所知,这是目前 Hive 中“临时”表的唯一解决方案。
这是我在 hive 中创建临时表的方法:
CREATE TEMPORARY TABLE temp_tbl_name AS
SELECT ...