在Azure数据工厂副本中使用Append Blob是否有任何解决方法?

时间:2018-10-17 16:53:02

标签: azure azure-storage-blobs azure-data-factory-2

我不希望我在ADF管道中的复制数据活动覆盖blob文件,而是将新数据附加到该文件中。但是ADF仅支持Blockblob,是否可以将数据追加到现有文件中?

1 个答案:

答案 0 :(得分:0)

您可以使用Web 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"
         }
      ]
   }
}

请注意,主体只能支持JSON对象或JSON值,JSON数组是固定的,但不支持非JSON值。对于这种解决方法,您可以使用Azure函数作为终结点,可以在其中附加文件或任何所需的内容。