我有两个数据集,一个是“FileShare”DS1,另一个是“BlobSource”DS2。我定义了一个具有一个复制活动的管道,需要将文件从DS1复制到DS3(BlobSource),依赖项指定为DS2。活动如下:
{
"type": "Copy",
"typeProperties": {
"source": {
"type": "FileShare"
},
"sink": {
"type": "BlobSource"
}
},
"inputs": [
{
"name": "FoodGroupDescriptionsFileSystem"
},
{
"name": "FoodGroupDescriptionsInputBlob"
}
],
"outputs": [
{
"name": "FoodGroupDescriptionsAzureBlob"
}
],
"policy": {
"timeout": "01:00:00",
"concurrency": 1,
"executionPriorityOrder": "NewestFirst"
},
"scheduler": {
"frequency": "Minute",
"interval": 15
},
"name": "FoodGroupDescriptions",
"description": "#1 Bulk Import FoodGroupDescriptions"
}
在这里,我如何指定多种源类型(FileShare和BlobSource)?当我尝试传递列表时,它会抛出错误。
答案 0 :(得分:1)
复制活动不喜欢多个输入或输出。它只能执行1到1的复制......它甚至不会在输出数据集中更改您的文件名,更别说合并文件了!
这可能是故意的,因此Microsoft可以向您收取更多其他活动的费用。但是,请不要偏离那个。
我建议使用单独的活动(每个文件1个)将1个管道复制到某种Azure存储中。然后有一个第二个下游流管道,它有一个自定义活动来读取和合并/连接文件以产生单个输出。
请记住,ADF不是像SSIS这样的ETL工具。它就在那里调用其他Azure服务。复制是一个复杂的问题。