Apache Spark SQL通常使用DELETE和INSERT或MERGE更快吗?

bf1o4zei  于 2023-10-23  发布在  Apache
关注(0)|答案(2)|浏览(169)

如果只想插入新行,而不想更新现有行:Apache Spark SQL通常是使用DROP TABLE和SQL,还是使用MERGE & SQL更快?还是第三种选择。
有很多关于传统SQL的文章,但我没有看到太多关于Spark SQL的文章。
如果取决于...取决于什么
(我在Azure Synapse中工作,写入Delta表,如果这有任何不同的话。

wpcxdonn

wpcxdonn1#

由于Delta Lake的MERGE和REDUCTION涉及到JOIN操作(内部连接和外部连接),因此DROP TABLE和REDUCTION相对较快,这使得MERGE较慢且成本较高

fruv7luv

fruv7luv2#

你可以只附加和使用一个接收到的时间戳或加载id文字(应该在前32列),你仍然保留历史记录(如果cdc被启用)。前32列的最大值保存在事务日志中,除非你想减少数据使用,否则不会丢弃任何东西。
删除数据可能是正确的,但您应该询问是否需要以前的数据,例如,数据源的一部分丢失,您将昨天向前滚动。

相关问题