我有两个数据集,一个" 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"
}
在这里,如何指定多个源类型(既有文件"one_answers" blobsource"?当我尝试通过列表时,它会引发错误。
复制活动不喜欢多个输入或输出。它只能执行1比1副本...甚至不会在输出数据集中更改您的文件名,而是介意合并文件!
这可能是故意的,因此Microsoft可以为您收取更多活动的费用。但是,让我们不要插入那个。
我建议使用1个管道将两个文件复制到某种类型的Azure存储中(每个文件1个)。然后有第二个向下流管线,该管道具有自定义活动以读取和合并/加入文件以产生单个输出。
请记住,ADF不是像SSIS这样的ETL工具。它只是在那里调用其他Azure服务。复制大约是复杂的。