触发 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 存储

如何使用 azure 数据工厂下载 blob

在 Azure Blob 容器中创建两个文件时,如何在 Azure 数据工厂中创建事件触发器?

Azure 数据工厂 - 删除活动时出错

使用 azure 数据工厂管道将 json 对象存储到 azure 表存储实体