gpt4 book ai didi

HIVE - INSERT OVERWRITE vs DROP TABLE + CREATE TABLE + INSERT INTO

转载 作者:行者123 更新时间:2023-12-04 03:19:38 38 4
gpt4 key购买 nike

我正在 hive 中做一些自动脚本的一些查询,我们发现我们需要不时地从表中清除数据并插入新的数据。我们正在思考什么可以更快?

INSERT OVERWRITE TABLE SOME_TABLE
SELECT * FROM OTHER_TABLE;

或者这样做更快:
DROP TABLE SOME_TABLE;
CREATE TABLE SOME_TABLE (STUFFS);
INSERT INTO TABLE
SELECT * FROM OTHER_TABLE;

运行查询的开销不是问题。由于我们也有创建脚本。问题是, INSERT OVERWRITE十亿行比 DROP + CREATE + INSERT INTO 快?

最佳答案

为了获得最大速度,我建议 1) 问题 hadoop fs -rm -r -skipTrash table_dir/*首先快速删除旧数据而不将文件放入垃圾箱,因为 INSERT OVERWRITE 会将所有文件放入垃圾箱,对于非常大的表,这将花费很多时间。然后 2) 做 INSERT OVERWRITE命令。这也会更快,因为您不需要删除/创建表。

更新:

从 Hive 2.3.0 (HIVE-15880) 开始,如果表有 TBLPROPERTIES ("auto.purge"="true") INSERT OVERWRITE时,表的先前数据不会移至垃圾箱查询是针对表运行的。此功能仅适用于托管表。因此,具有自动清除功能的 INSERT OVERWRITE 将比 rm -skipTrash 工作得更快+ INSERT OVERWRITEDROP + CREATE + INSERT因为它将是一个 Hive-only 命令。

关于HIVE - INSERT OVERWRITE vs DROP TABLE + CREATE TABLE + INSERT INTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39618624/

38 4 0