繁体   English   中英

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

[英]Cannot copy data from azure data lake gen2 to azure sql db using data factory pipeline

故障发生在“接收器”端。 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 查询的 Output -

在此处输入图像描述

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

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

在此处输入图像描述

在此处输入图像描述

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

在此处输入图像描述

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

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

在此处输入图像描述

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

在此处输入图像描述

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM