我在 ADFv1 中已经有一个活动管道生成 AzureBlob 数据集 D1。现在我想创建另一个依赖活动或另一个依赖管道(一切都很好(,以便子活动将是一个复制活动 - 因此它应该只检测 D1 是否就绪,如果是,它应该执行 Blob 到 Blob 复制操作,但源数据集不会是 D1, 它将是一个完全不同的AzureBlob数据集,称之为Dx。因此,D1的状态将仅用作触发点。怎么做?如果我简单地提供 D1 作为复制活动的输入,它将尝试复制 D1 数据本身,这不是我想要的——它应该检测 D1 的状态,然后开始将 Dx 的内容复制到复制活动的目标数据集。
据我所知,ADF V1.So 中没有这样的内置功能,我只是在这里提供我的想法供您参考。
首先,我不知道D1 is Ready
的标准是什么,因为数据集在ADF中具有如此的地位。我想你肯定知道你自己对这种状态的逻辑。(文件名之类的东西与某种格式匹配?或者这是特定的时间!因此,不管它是什么,只需创建一个名为 Dx 的普通复制活动即可。
然后,您可以在 D1 上添加一些触发器。在这里,也许您有 2 个选择:
1.Azure Function Blob Trigger:https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-storage-blob-triggered-function
它是实时触发器,blob 存储中的每个输入都会触发函数方法。您可以判断Ready
状态,并在函数中调用管道运行 REST API。不利的一点是,在调用 REST API 时需要进行身份验证。积极的一点是,您可以根据需要调试代码。
2.逻辑应用 Blob 触发器:https://learn.microsoft.com/en-us/azure/connectors/connectors-create-api-azureblobstorage#add-blob-storage-trigger
据我所知,这不是实时触发,而是及时扫描。然后判断Ready
状态并直接在 ADF 连接器中运行管道。不利的一点是,在逻辑应用逻辑判断中很难进行调试。积极的一点是,您不必担心 ADF REST API 身份验证!