C# 在Azure表中重试批处理操作

C# 在Azure表中重试批处理操作,c#,azure,azure-table-storage,azure-data-factory,C#,Azure,Azure Table Storage,Azure Data Factory,我正在尝试通过Azure数据工厂将数据从Azure数据湖存储插入Azure表。Azure data Lake文件中的数据与最终Azure表接收器的数据处于相同的架构中 ADF管道包含从Azure Data Lake存储复制到Azure表的单个复制活动。但由于节流,ADF管道有时会出现故障。我负担不起重新运行整个管道,因为它需要几个小时 我只想重试失败的批处理。但我不认为这是Azure表中提供的选项 我发现和是AzureTableLink类的两个参数,但我猜(因为文档没有正确提及)这将适用于整个管

我正在尝试通过Azure数据工厂将数据从Azure数据湖存储插入Azure表。Azure data Lake文件中的数据与最终Azure表接收器的数据处于相同的架构中

ADF管道包含从Azure Data Lake存储复制到Azure表的单个复制活动。但由于节流,ADF管道有时会出现故障。我负担不起重新运行整个管道,因为它需要几个小时

我只想重试失败的批处理。但我不认为这是Azure表中提供的选项

我发现和是AzureTableLink类的两个参数,但我猜(因为文档没有正确提及)这将适用于整个管道

我有两个问题:

  • SinkRetryCount和SinkRetryWait实际上是什么意思
  • 如果批处理失败,是否有方法通过设置参数或在ADF管道中创建不同的活动图来重试该批处理
  • 您是否尝试过以下内容:

    • 如果您的流程确保第一步是干净的状态,类似于命令设计模式的撤销(但更简单),那么您的流程可以重新执行

      • 使用#1,您可以在管道活动中安全地使用“重试”,以及足够的重试间隔时间
      • 这是一种与ADFv1或v2兼容的方法
    参考:

    • 如果是ADFv2,则您有更多选项,并且可以使用更复杂的逻辑来处理错误:

      • 对于失败的活动,将其包装在一个直到成功的循环中,并确保在执行时包含一个绑定

      • 您可以在循环中添加更多活动来处理故障,并记录、通知或解决由于您无法控制的外部性而导致的已知故障情况

    • 您还可以使用异步通信来实现将来的流程执行,从而将成功保存到中央存储。随后执行“如果”I已成功,则在活动之前停止处理

      • 这对于更通用的管道来说非常强大,因为您可以选择从何处开始
    检查在ee重试在

    希望能有帮助

    Retry: Number of retries before the data processing for the slice is marked as Failure. Activity execution for a data slice is retried up to the specified retry count. The retry is done as soon as possible after the failure.