我正在尝试实现Azure数据工厂DATAFLOW,以便在单个事务中将CRM实体记录创建到多个实体中。如果第二个实体中发生任何错误,则应回滚第一个实体记录。请分享您的想法。我尝试与Json文件作为输入与多个层次结构,代表多个CRM实体。我使用数据流源Json数据集和3 CRM汇。但是,我无法实现单一事务时,发生错误。
xn1cxnb41#
ADF不支持回退选项。您可以在目标表中使用任何水印列或标志,以指明在当前管道运行期间插入的记录,并在出现错误时仅删除这些记录。水印列可以具有插入行时的时间戳,也可以是递增键。在运行管道之前,将记录水印列的最大值。只要管道失败,就可以删除在最大水印值之后插入的行。如果只需要删除某些实体中未复制的记录,而不是删除当前管道运行中的所有记录,那么根据关键字字段,我们可以删除行。方法如下:
图像1:实体1数据
img2:实体2数据
source1@id = source2@id
图像3:存在转换设置
delete if
true()
图像4:更改行转换设置
id
图像5:接收器设置
图像6:接收数据预览。运行具有此数据流的管道时,将删除实体1中但实体2中没有的所有行。
1条答案
按热度按时间xn1cxnb41#
ADF不支持回退选项。您可以在目标表中使用任何水印列或标志,以指明在当前管道运行期间插入的记录,并在出现错误时仅删除这些记录。
水印列可以具有插入行时的时间戳,也可以是递增键。在运行管道之前,将记录水印列的最大值。只要管道失败,就可以删除在最大水印值之后插入的行。
如果只需要删除某些实体中未复制的记录,而不是删除当前管道运行中的所有记录,那么根据关键字字段,我们可以删除行。方法如下:
图像1:实体1数据
img2:实体2数据
source1@id = source2@id
.图像3:存在转换设置
delete if
true()
。图像4:更改行转换设置
id
。图像5:接收器设置
图像6:接收数据预览。
运行具有此数据流的管道时,将删除实体1中但实体2中没有的所有行。