azure - 无论创建了多少个 blob,如何只执行一次管道? (Azure 数据工厂)

标签 azure azure-blob-storage azure-data-factory azure-triggers

我创建了一个管道,每次创建 blob 时都会由触发器执行,问题是进程需要同时上传多个文件的情况,当发生这种情况时,管道会执行多次作为 blob 的数量,这会导致数据错误。我尝试在主管道中配置一个复制数据事件,以便复制创建的每个 blob,但由于该管道位于第一个管道内,因此它也会执行多次。

最佳答案

您可以做的是根据属性按上次修改时间过滤来过滤复制事件源,您可以在其中指定 UTC 格式的开始时间和结束时间。

你可以试试这个Incrementally copy new and changed files based on LastModifiedDate by using the Copy Data tool

或者...

这里根据您的情况,只需提及开始时间。

  1. 此开始时间只不过是上次执行触发的管道运行的时间!您可以使用 REST API 调用 Trigger Runs - Query By Factory 获取触发的管道运行详细信息.
  2. 现在,您可以选择查询最近 x 小时内执行的运行,或者根据您在存储中创建文件的频率选择最近一天的安全运行。
  3. 接下来,从此结果中仅收集 triggerRunTimestamp 并附加到数组变量。
  4. 使用函数查找最大或上次运行时间。将此时间设置为复制事件源过滤器的 UTC 时间开始时间,如开头所述。

如果这是可行的,我可以旋转一个示例管道。

关于azure - 无论创建了多少个 blob,如何只执行一次管道? (Azure 数据工厂),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70602473/

相关文章:

日期的 Azure 数据工厂案例条件

c# - 如何从具有当前纬度和经度的 cosmos db 查找最近的优惠券

azure - 如何监控 Azure 中应用程序的事件?

azure - 在 Azure Blob 存储中存储文件组

azure - 如何通过 Azure Data Lake Store gen1 中的新文件触发 Azure Data Factory v2 或 Azure Databricks Notebook 中的管道

azure - Synapse Pipeline - 如何指定 Pipeline Run 的身份? (SP/UAMI 等)

azure - Service Fabric,我在哪里使用哪个证书?

azure - 使用 @azure/identity 访问 Key Vault 并收到错误 'Request is missing a Bearer or PoP token Error 401'

azure - 使用 azure 函数将文件上传到 blob 存储

azure - 使用 Spark 删除 Azure blob 中的文件的更快方法是什么?