![](/img/trans.png)
[英]Azure Data factory copy activity failed mapping strings (from csv) to Azure SQL table sink uniqueidentifier field
[英]Data Consistency check in ADF Copy activity with Source as Query on Teradata Table and Sink as CSV in Azure Blob
来源:对 Teradata 表的查询
接收器:Azure Blob 存储中的 Csv 文件
目标:如果源查询中的计数和复制的行不匹配,我希望复制活动失败。
查看支持的数据存储和场景的文档,如果源到目标行数不匹配并且我没有在容错中设置任何内容,例如跳过不兼容的行(图片以供参考)
在启用数据一致性验证的单副本活动中复制表时,如果从源读取的行数不同于复制到目标的行数加上跳过的不兼容行数,则复制活动将失败。
但是,我无法确定这一点,因为我无法在源头更改数据以进行测试。 因此,我的查询:-
不同的来源会采取不同的行动(例如二进制副本、csv 副本等),但我主要关注作为源的 Teradata 查询和作为接收器的 Azure Blob 中的 csv。
我试图重现上述但未成功启用一致性选项。
目标:如果源查询中的计数和复制的行不匹配,我希望复制活动失败
相反,您可以尝试这个用户定义的解决方法(在这种情况下)。
首先将您的源复制到临时表,然后在 If 活动中检查读取和复制的行是否相同。
在 if 活动表达式中,给出以下条件。
@equals(activity('Copy data1').output.rowsRead,activity('Copy data1').output.rowsCopied)
在 if 的 True 活动中,提供从源到目标的复制活动。
在 if 的 Failed 活动中,给出一个失败的活动。
在这种方法中,如果从源到目标类型的临时表的行不相等,则管道将失败并阻止复制到原始目标表。
我已经使用来自源的查询检查了上述方法,它也适用于此。
如果结果为真,则可以将来自同一源的相同数量的行复制到您的目标表中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.