Azure数据工厂 - 写入BLOB存储时发生间歇性400错误

问题描述:

我正在使用具有BLOB存储的数据工厂。Azure数据工厂 - 写入BLOB存储时发生间歇性400错误

我有时会间歇性地得到下面的错误 - 这可能发生在不同的管道/数据源。但是,无论哪个任务失败,我都会得到相同的错误 - 400指定的阻止列表无效。

Copy activity encountered a user error at Sink side: ErrorCode=UserErrorBlobUploadFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Error occurred when trying to upload blob ' https://blob.core.windows.net/ ', detailed message: The remote server returned an error: (400) Bad Request.,Source=,''Type=Microsoft.WindowsAzure.Storage.StorageException,Message=The remote server returned an error: (400) Bad Request.,Source=Microsoft.WindowsAzure.Storage,StorageExtendedMessage=The specified block list is invalid. Type=System.Net.WebException,Message=The remote server returned an error: (400) Bad Request.,Source=Microsoft.WindowsAzure.Storage

这似乎是最常见的,如果有多个任务在将数据写入存储时运行。有什么我可以做的,使这个过程更可靠?有没有可能配置错了?这会导致数据工厂中的切片失败,所以我真的很想知道我应该调查的内容。

已经从这个问题遭受了样品管道:

{ 
    "$schema": "http://datafactories.schema.management.azure.com/schemas/2015-09-01/Microsoft.DataFactory.Pipeline.json", 
    "name": "Pipeline", 
    "properties": { 
    "description": "Pipeline to copy Processed CSV from Data Lake to blob storage", 
    "activities": [ 
     { 
     "type": "Copy", 
     "typeProperties": { 
      "source": { 
      "type": "AzureDataLakeStoreSource" 
      }, 
      "sink": { 
      "type": "BlobSink", 
      "writeBatchSize": 0, 
      "writeBatchTimeout": "00:00:00" 
      } 
     }, 
     "inputs": [ { "name": "DataLake" } ], 
     "outputs": [ { "name": "Blob" } ], 
     "policy": { 
      "concurrency": 10, 
      "executionPriorityOrder": "OldestFirst", 
      "retry": 0, 
      "timeout": "01:00:00" 
     }, 
     "scheduler": { 
      "frequency": "Hour", 
      "interval": 1 
     }, 
     "name": "CopyActivity" 
     } 
    ], 
    "start": "2016-02-28", 
    "end": "2016-02-29", 
    "isPaused": false, 
    "pipelineMode": "Scheduled" 
    } 
} 

我只使用LRS标准存储,但我还是不希望它间歇抛出错误。

编辑:添加链接业务的JSON

{ 
    "$schema": "http://datafactories.schema.management.azure.com/schemas/2015-09-01/Microsoft.DataFactory.LinkedService.json", 
    "name": "Ls-Staging-Storage", 
    "properties": { 
    "type": "AzureStorage", 
    "typeProperties": { 
     "connectionString": "DefaultEndpointsProtocol=https;AccountName=;AccountKey=" 
    } 
    } 
} 
+0

你能分享你的Blob输出JSON吗? – yonisha

+0

@yonisha完成。我不确定这会有多大帮助,因为它看起来相当简单。 –

+0

将您的每个服务部署到哪个区域? –

这样的错误主要是由赛车的问题引起的。例如。多个并发活动运行写入同一个Blob文件。

您是否可以进一步检查您的管道设置是否是这种情况?如果有的话请避免这样的设置。