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
我设置了 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