无法使用数据工厂管道将数据从 azure data Lake gen2 复制到 azure sql db

use*_*r22 3 azure azure-data-factory azure-sql-database azure-data-lake

失败发生在“Sink”一侧。ErrorCode=UserErrorInvalidColumnName,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=在目标端找不到列 Prop_0,Source=Microsoft.DataTransfer.ClientLibrary。

ADLS GEN2 中的所有零件文件都有 8 列,接收器表也有 8 列,并且零件文件中没有名为 Prop_0 的此类列。

输入是保存在 ADLS GEN2 中的零件文件 - 在此输入图像描述

零件文件之一的内容 - 在此输入图像描述

在 ADF 上映射 -

在此输入图像描述

在 Azure 查询编辑器上执行的 sql 查询的输出 -

在此输入图像描述

Sai*_*ham 5

当您的源文件没有\xe2\x80\x99t 有标题(或者当您有源文件标题时将第一行视为标题)并且您尚未启用列映射选项时,您会收到此错误。Prop_0Prop_1,当源文件没有标题(或未启用)时将充当列名称。

\n

在这种情况下,当您禁用列映射选项(清除或跳过)时,复制活动将尝试使用名称从源插入列,仅当它们与您的接收器(表)匹配时。在下图中,我尚未导入架构(已跳过),并且在运行管道时它会引发相同的错误。

\n

在此输入图像描述

\n

在此输入图像描述

\n

由于您的目标没有Prop_0列,因此会引发以下错误:

\n

在此输入图像描述

\n

请按照下面指定的步骤纠正此错误:

\n
    \n
  • 首先确定您的源零件文件是否有标头。然后通过选中/取消选中第一行作为标题选项来编辑源数据集。在管道的源选项卡中发布并预览此数据。
  • \n
\n

在此输入图像描述

\n
    \n
  • 移至映射部分并单击import schemas(如果需要,请清除并再次导入)。如有必要,请根据您的要求更改映射。
  • \n
\n

在此输入图像描述

\n

在此输入图像描述

\n
    \n
  • 由于源列和目标列不匹配,因此必须对此映射进行更改。从您提供的零件文件示例中,适当的映射如下所示:
  • \n
\n

在此输入图像描述

\n
    \n
  • 现在运行管道。管道将成功运行,并且 sql 表将反映插入的行。
  • \n
\n

在此输入图像描述

\n