首页 文章

在 Hive 中插入覆盖

提问于
浏览
0

我正在尝试在 Hive 中使用插入覆盖。基本上,我想插入的不是覆盖整个分区,而是覆盖分区中的一些记录。我没有找到任何解决方案(也基于基于非分区列的过滤器在目标表中插入覆盖)。有什么办法可以实现?

2 回答

  • 0

    Hive 不是常规的 RDBMS,如果要简单地更新记录,请执行 INSERT OVERWRITE TABLE Table_Name...simple 更改一个临时表中的数据,或者使用 WITH 子句,只需使用表 partioning..it 插入 overwrite..by 是安全的。

    QUERY [1]:

    WITH TEMP_TABLE AS(SELECT * FROM SOURCE_TABLE_NAME)插入覆盖表 TARGET_TABLE_NAME SELECT * FROM TEMP_TABLE

  • 0

    Hive 不是 RDBMS。不建议您尝试使用 Hive 实现的功能。 Hive 更适合于对非常大的不可变数据集进行批处理。

    但是,根据我的推断,您正在尝试更新表中的现有记录。为此,请在需要更新的表上启用 ACID 支持,您的更新查询将开始工作。

    UPDATE <TABLE>
    SET <COL1>='Value1',
    SET <COL2>='Value2'
    WHERE <Some Condition That Only Evaluates To The Rows You Need Updated>
    

相关问题