Azure数据工厂在活动中指定多个源类型

时间:2017-02-20 06:58:47

标签: azure pipeline azure-data-factory

我有两个数据集,一个是“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)?当我尝试传递列表时,它会抛出错误。

1 个答案:

答案 0 :(得分:1)

复制活动不喜欢多个输入或输出。它只能执行1到1的复制......它甚至不会在输出数据集中更改您的文件名,更别说合并文件了!

这可能是故意的,因此Microsoft可以向您收取更多其他活动的费用。但是,请不要偏离那个。

我建议使用单独的活动(每个文件1个)将1个管道复制到某种Azure存储中。然后有一个第二个下游流管道,它有一个自定义活动来读取和合并/连接文件以产生单个输出。

请记住,ADF不是像SSIS这样的ETL工具。它就在那里调用其他Azure服务。复制是一个复杂的问题。