通过多个作业并发更新delta-lake表

mcdcgff0  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(392)

我有一个delta表,其中通过databricks的多个作业可以同时将数据合并/向上插入到delta表中。
我怎样才能防止 ConcurrentAppendException ?
我不能使用这个解决方案,因为传入的更改可以是任何分区的一部分,并且我不能过滤任何分区。
有没有办法检查增量表是否正在被追加/合并/更新/删除,并等待其完成,然后获取锁并开始第二个作业的合并?
仅供参考,这是两个试图更新一个增量表的独立azure datafactory作业。
干杯!

gg58donl

gg58donl1#

您应该像处理具有乐观脱机锁定的任何其他数据存储一样处理delta的并发追加—只要发生特定异常,就向代码中添加特定于应用程序的重试逻辑。

这是一个关于三角洲内部运作的好视频。

相关问题