在蜂巢上启用酸性支持后。我可以从hive表中插入/更新/删除行(基于ORC文件的表),想知道可以做upsert吗?因为当用户提供数据时,他们没有指定它的插入或更新,如果我们需要在每行插入前删除以模拟一个upsert,它可能会非常慢但不确定该性能,我们的更新/插入率低,低于5%。对我们来说,延迟并不重要,但吞吐量肯定很重要。如果hive目前不支持upsert,有没有计划支持它呢?感谢
答案 0 :(得分:1)
工作正在进行中:https://issues.apache.org/jira/browse/HIVE-10924 可能在ACID模式下,吞吐量会受到限制。
目前,您可以使用完全连接在ACID模式下模拟upsert并执行完整分区/表重写。延迟相当大,吞吐量几乎是无限的。见这里:https://stackoverflow.com/a/37744071/2700344
答案 1 :(得分:0)
一种方法可以是使用Hive JDBC Connection在Hive表中执行删除插入或合并。然后执行完全压缩可以在Hive ORC表上执行。压缩结束后,可以通过Spark获得数据。