首页 > 解决方案 > 在 Azure 数据工厂副本中使用附加 blob 是否有任何解决方法?

问题描述

我不希望 ADF 管道中的复制数据活动覆盖 blob 文件,而是将新数据附加到它。但是 ADF 仅支持 Blockblob,所以有没有办法将数据附加到现有文件?

标签: azureazure-blob-storageazure-data-factory-2

解决方案


您可以使用Web Activity而不是 Copy Activity。使用Blob Service Rest API,您可以发送一个 PUT 请求,其中包含要附加到 blob 的数据。您可以选择通过此活动使用数据集和链接服务。

JSON:

{  
   "name":"AppendDataActivity",
   "type":"WebActivity",
   "typeProperties":{  
      "method":"Put",
      "url":"https://<myAccount>.blob.core.windows.net/<myContainer>/<myBlob><SASToken>&comp=appendblock",
      "headers":{  
         "Content-Type":"application/json" 
      },
      "datasets":[  
         {  
            "referenceName":"<consumedDatasetName>",
            "type":"DatasetReference",
            "parameters":{  
               ...
            }
         }
      ],
      "linkedServices":[  
         {  
            "referenceName":"<consumedLinkedServiceName>",
            "type":"LinkedServiceReference"
         }
      ]
   }
}

请注意,Body 只能支持 JSON 对象或 JSON 值,JSON 数组正在修复,但不支持非 JSON 值。对于此解决方法,您可以使用 Azure 函数作为端点,您可以在其中附加文件或任何您想要的。


推荐阅读