ADFv2中的列映射问题

时间:2018-12-12 23:51:13

标签: json azure azure-data-factory azure-data-factory-2

我有一个21列的源.csv和一个25列的目标表。

不是源中的所有列都在目标表中都有主目录,并且目标表中的并非所有列都来自源。

我无法获取CopyData任务让我选择要映射的方式。到目前为止,使它正常工作的唯一方法是将源数据加载到具有1:1映射的“持有”表中,然后执行存储过程以将来自该表的数据插入到最终目标中。

我尝试更改源和目​​标上的模式以匹配,但是仍然出错,因为ACTUAL源中的列多于目标,反之亦然。

这可能不是实现此目的的最有效方法,但我对如何使其工作一无所知。

返回的错误代码在以下方面有所不同:

"errorCode": "2200",
    "message": "ErrorCode=UserErrorInvalidColumnMappingColumnCountMismatch,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Invalid column mapping provided to copy activity: '{LONG LIST OF COLUMN MAPPING HERE}', Detailed message: Different column count between target structure and column mapping. Target column count:25, Column mapping count:16. Check column mapping in table definition.,Source=Microsoft.DataTransfer.Common,'",
    "failureType": "UserError",
    "target": "LoadPrimaryOwner"

3 个答案:

答案 0 :(得分:0)

您是否尝试过在图形编辑器中映射列?只需单击复制活动,然后进行映射,然后单击蓝色按钮“导入模式”。这将导入两个模式,并让您从源映射中选择哪一列与从接收器中选择哪一列。

希望这对您有帮助!

Added image to clarify

答案 1 :(得分:0)

在接收器数据集中,删除您不想映射的列。

通过选择,然后单击删除按钮来删除接收器中不需要的列

[delete the columns that are not required in the sink by selecting and then click delete button[1]

为了使复印顺利进行。

1。源数据集应具有相同顺序的所有列。
2.必须映射接收器数据集中所有选定的列。

答案 2 :(得分:-1)

似乎您正在尝试将16列从源表提取到目标表。如果目标是Sql Server或Azure Sql DB,则可以尝试以下设置:

  • 在csv文件中将源结构设置为21列。
  • 设置16个列映射作为所需数据的列映射。
  • 将目标结构设置为16列,在列映射定义中具有相同的名称和顺序。