通过多个作业并发更新到三角洲湖泊表

时间:2020-09-15 23:49:50

标签: apache-spark azure-data-factory databricks azure-databricks delta-lake

我有一个增量表,其中通过数据砖进行的多个作业可以同时将数据合并/向上插入到增量表中。

如何防止获得ConcurrentAppendException

我不能使用此solution,因为传入的更改可以是任何分区的一部分,并且我不能筛选任何分区。

有没有一种方法可以检查Delta表是否被追加/合并/更新/删除,并等待其完成,然后我们获取锁并开始第二项作业的合并?

仅供参考,这是2个独立的Azure Datafactory作业,它们试图更新一个增量表。

干杯!

1 个答案:

答案 0 :(得分:1)

您应该像处理concurrent appends to Delta的任何其他数据存储一样处理Optimistic Offline Locking-通过在代码发生特定异常时向代码添加特定于应用程序的重试逻辑。

enter image description here

这是inner workings of Delta上的精彩视频。