Azure 数据工厂管道 - 在 DocumentDB 或 Azure 中复制 blob 和存储文件名 SQL

Azure data factory pipeline - copy blob and store filename in a DocumentDB or in Azure SQL

我设置了 2 个名为 "input" 和 "output" 的 blob 存储文件夹。当新文件到达 "input" 并将该文件复制到 "output" 文件夹时,我的管道会被触发。此外,我确实有一个获取元数据 activity,我在其中接收复制的文件名。

现在我想将复制数据的文件名存储到 DocumentDB 中。 我尝试将 ForEach activity 与它一起使用,但我被卡住了。

基本上我尝试使用这个答案的部分内容:

但我不知道在 CopyData activity 中分配什么作为源,因为我的源是 ForEach activity 中的文件名 - 或者我错了吗?

您可以尝试使用自定义 activity 将文件名插入文档数据库。

您可以将文件名作为参数传递给自定义 activity,并编写您自己的代码以将数据插入文档数据库。

https://docs.microsoft.com/en-us/azure/data-factory/transform-data-using-dotnet-custom-activity

根据您的需求,我建议您使用Blob Trigger Azure Functions结合您当前的Azure数据工厂业务。

第1步:仍然使用adf中的事件触发器在输入和输出之间进行传输。

步骤 2:将 Blob Trigger Azure Functions 分配给输出文件夹。

第3步:在it.Then中创建新文件时会触发该函数获取文件名并使用Document DB SDK将其存储到文档db中。

.net 文档数据库 SDK: https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-sdk-dotnet

Blob触发器绑定,请参考这里:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob