我有一个delta表,其中通过databricks的多个作业可以同时将数据合并/向上插入到delta表中。
我怎样才能防止 ConcurrentAppendException
?
我不能使用这个解决方案,因为传入的更改可以是任何分区的一部分,并且我不能过滤任何分区。
有没有办法检查增量表是否正在被追加/合并/更新/删除,并等待其完成,然后获取锁并开始第二个作业的合并?
仅供参考,这是两个试图更新一个增量表的独立azure datafactory作业。
干杯!
我有一个delta表,其中通过databricks的多个作业可以同时将数据合并/向上插入到delta表中。
我怎样才能防止 ConcurrentAppendException
?
我不能使用这个解决方案,因为传入的更改可以是任何分区的一部分,并且我不能过滤任何分区。
有没有办法检查增量表是否正在被追加/合并/更新/删除,并等待其完成,然后获取锁并开始第二个作业的合并?
仅供参考,这是两个试图更新一个增量表的独立azure datafactory作业。
干杯!
1条答案
按热度按时间gg58donl1#
您应该像处理具有乐观脱机锁定的任何其他数据存储一样处理delta的并发追加—只要发生特定异常,就向代码中添加特定于应用程序的重试逻辑。
这是一个关于三角洲内部运作的好视频。