触发 Azure 数据工厂管道 - Blob 上传 ADLS Gen2(以编程方式)
Posted
技术标签:
【中文标题】触发 Azure 数据工厂管道 - Blob 上传 ADLS Gen2(以编程方式)【英文标题】:Trigger Azure data factory pipeline - Blob upload ADLS Gen2 (programmatically) 【发布时间】:2020-10-17 20:53:48 【问题描述】:我们正在使用 Azure SDK for java 将文件上传到 Azure 数据湖存储。上传文件后,需要触发 Azure 数据工厂。 BLOB CREATED 触发器被添加到管道中。 主要问题是每次文件上传后都会触发两次。
要将文件上传到 ADLS gen2,Azure 提供了与传统 Blobstorage 不同的 SDK。
SDK 使用包 - azure-storage-file-datalake
。
DataLakeFileSystemClient
- 获取容器
DataLakeDirectoryClient.createFile
- 创建文件。 //此调用可能引发 blob 创建事件
DataLakeFileClient.uploadFromFile
- 上传文件 //此调用也可能引发 blob 创建事件
我认为 ADF 触发器没有升级为从 ADLSGen2 适当地捕获 Blob 创建的事件。
有什么办法可以做到这一点吗?我的组织有限制不能使用Azure函数,否则可以根据存储队列消息或服务总线消息触发Azure函数,并且可以使用数据工厂REST API启动ADF管道。
【问题讨论】:
您好,如果我的回答对您有帮助,您可以接受(标记)为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。 【参考方案1】:您可以尝试使用带有 blob 触发器和数据工厂操作的 Azure Logic Apps:
触发器:When a blob is added or modified (properties only):
当添加一个或多个 blob 或 在容器中修改。此触发器只会获取文件 元数据。要获取文件内容,可以使用“获取文件内容” 手术。如果文件被添加/更新到 子文件夹。如果需要在子文件夹上触发,多个 应该创建触发器。操作:Get a pipeline run
获取特定管道运行执行希望这会有所帮助。
【讨论】:
以上是关于触发 Azure 数据工厂管道 - Blob 上传 ADLS Gen2(以编程方式)的主要内容,如果未能解决你的问题,请参考以下文章
Azure ADF 管道复制数据日志文件未触发第二个管道的“已创建 Blob”触发器
将 Azure 数据工厂上的数据管道从 SQL Server 复制到 Blob 存储