Hive 如何使用PRESTO实现“插入忽略”

Hive 如何使用PRESTO实现“插入忽略”,hive,insert,presto,ignore,Hive,Insert,Presto,Ignore,因此,在my MYSQL中,您可以在执行插入操作时使用INSERT IGNORE语法,而不是在插入重复行时抛出错误,而只是忽略该行 如果可能的话,我想在蜂巢数据库上实现同样的效果 我知道hive不是真正的关系数据库,因为Presto上INSERT语句的文档非常基础 我只想知道是否有一个简单的解决方法,因为我所能想到的就是首先使用光标进行选择,以循环结果并插入,直到Hive 3,没有唯一约束的概念,即使在Hive 3中,约束也没有强制执行 因此,Presto配置单元连接器不会强制执行任何唯一约束,

因此,在my MYSQL中,您可以在执行插入操作时使用INSERT IGNORE语法,而不是在插入重复行时抛出错误,而只是忽略该行

如果可能的话,我想在蜂巢数据库上实现同样的效果

我知道hive不是真正的关系数据库,因为Presto上INSERT语句的文档非常基础


我只想知道是否有一个简单的解决方法,因为我所能想到的就是首先使用光标进行选择,以循环结果并插入

,直到Hive 3,没有唯一约束的概念,即使在Hive 3中,约束也没有强制执行

因此,Presto配置单元连接器不会强制执行任何唯一约束,因此在插入重复行时,插入查询永远不会失败。它们将作为数据的独立副本存储


如果希望保持唯一性,则需要在应用程序级别的外部处理。

Hmmmm。也许我误解了我当时遇到的错误:查询20191024_134009_00671_tux4k失败:无法插入带扣配置单元表year_week_of_year=2012020000的现有分区。当数据不存在时,此查询第一次运行正常,但在第一次插入数据后第二次失败round@MarkZA从Presto 318开始,Presto正确地允许插入到带扣表的现有分区中。请从下载最新版本。谢谢。但问题是,如果在执行select语句时插入相同的数据两次,是否会得到两行相同的数据?。我已经厌倦了使用OVERWRITE语句,但是PRESTO一直给我一个语法错误?我仍然在想传统关系数据库背景下的hadoop,你可能想要插入现有的分区。更多信息请参见文档任务。Piotr Findeisen你是我的英雄谢谢。现在升级到.204,因为在这里引入了insert\u-existing\u-partitions\u行为。将属性设置为overwrite,现在我的查询可以运行任意次数而不会出现错误。升级到.204时遇到了一些麻烦,每个节点的最大内存需求是多少,但一旦排序完毕,一切都很好。非常感谢。