Json ADFv2中的列映射问题

Json ADFv2中的列映射问题,json,azure,azure-data-factory,azure-data-factory-2,Json,Azure,Azure Data Factory,Azure Data Factory 2,我有一个包含21列的源.csv和一个包含25列的目标表 并非源中的所有列在目标表中都有一个home,也并非目标表中的所有列都来自源 我无法让CopyData任务让我选择映射的方式。到目前为止,我能让它工作的唯一方法是将源数据加载到具有1:1映射的“保持”表中,然后执行存储过程将该表中的数据插入最终目标 我尝试更改源和目标上的模式以匹配,但仍然出现错误,因为实际的源比目标有更多的列,反之亦然 这不可能是实现这一目标的最有效的方法,但我不知道如何让它发挥作用 返回的错误代码是以下内容的一些变体: "

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

并非源中的所有列在目标表中都有一个home,也并非目标表中的所有列都来自源

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

我尝试更改源和目标上的模式以匹配,但仍然出现错误,因为实际的源比目标有更多的列,反之亦然

这不可能是实现这一目标的最有效的方法,但我不知道如何让它发挥作用

返回的错误代码是以下内容的一些变体:

"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"

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

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

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

希望这有帮助


在接收器数据集中删除不希望映射的列

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

[

为了使副本顺利工作

1.源数据集的所有列应具有相同的顺序。

2.必须映射sink数据集中选择的所有列。

正如我在文章中提到的,我已经多次更新了架构。问题是,尽管更新了架构以精确匹配,但实际的源文件本身并没有完全对齐。我希望原样使用源文件,而无需任何其他映射。为什么我不能简单地选择要从源映射到目标的列?无论实际列数如何,我都无法选择要映射的列。这对我来说毫无意义。您是否尝试过“复制数据”工具?它将帮助您排除接收器数据集中的未映射列。是的,无论目前使用何种方法,我似乎无法在列与列的比例均为1:1的情况下选择性地映射列。我通过在将数据加载到临时表后使用存储过程映射来解决此问题,但这感觉像是一个不必要的额外步骤。