使用 Azure ADF,目前我的设置如下:
基于文件上传时的输入 BLOB 触发的事件。文件上传会触发复制事件以输出 BLOB,此操作后会对输入 BLOB 进行删除操作。输入 BLOB 可以一次获取 1 个或多个文件(不确定扫描文件的频率/事件触发管道的速度)。阅读删除功能文档,它说:
Make sure you are not deleting files that are being written at the same time.
我当前的设置会删除正在写入的文件吗?
文件上传时基于事件的触发器>>从输入Blob写入输出Blob>>删除输入Blob
我制定了一个替代解决方案,它根据管道开头的事件执行获取元数据事件,然后执行一个 for 循环,在最后删除文件,但不确定这是否有必要。如果我每 15 秒左右接收一次文件(不太可能发生),我原来的解决方案是否足够?
此外,在获取元数据事件中,如何获取文件的实际路径,而不仅仅是文件名?
感谢您的帮助。
最佳答案
- 确保您没有删除正在写入的文件 同一时间。
您的设置是:
- 文件上传时基于事件的触发器 >> 从输入 Blob 写入输出 Blob >> 删除输入 Blob
只有在事件的从输入Blob写入到输出Blob
完成后(删除文件没有被写入),删除输入Blob
才能工作。
您的问题:我当前的设置会删除正在写入的文件吗?
那么您测试了这些步骤吗?你必须亲自测试一下,你就会得到答案。
请注意:
删除事件不支持删除通配符描述的文件夹列表。
任何其他建议:
在从输入 Blob 写入到输出 Blob
完成后,您不需要使用删除事件来删除输入 Blob。
可以向Data flow学习,它的源设置支持在复制事件完成后删除源文件(输入blob)。
希望这有帮助。
关于Azure ADF 如何确保复制的相同文件也被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59736316/