Case-insensitive 列名称打破了数据工厂数据流中的数据预览模式

Case-insensitive column names breaks the Data Preview mode in Data Flow of Data Factory

我的 ADLS 中有一个 csv 文件:

a,A,b
1,1,1
2,2,2
3,3,3

当我将此数据加载到 ADF 中第一行为 header 的带分隔符的文本数据集中时,数据预览似乎是正确的(见下图)。该模式的列名称为 a、A 和 b。

但是,现在我想在映射数据流中使用这个数据集,这里会中断数据预览模式。第二列名称 (A) 被视为重复,无法加载预览。

Data Flow 中的所有其他功能都可以正常工作,只有“数据预览”选项卡出现错误。所有后续转换节点也在数据预览中给出此错误。

此外,如果数据包含两个 "exact" 相同的列名称(例如 a, a, b),则数据集会将这些列识别为重复列,并在每个名称后添加“1”和“2” .只有当它们 case-sensitive 不相等且 case-insensitive 相等时,数据集不会出错,而数据流会出错。

这是已知错误吗?是否可以在加载到数据流之前更改数据集中的特定列名称?还是我缺少什么?

我测试它并在源数据预览中得到错误:

我向 Azure 支持寻求帮助,他们现在正在测试。请等待我的更新。

更新:

我向 Azure 支持发送了 test.csv 文件。他们测试并回复了我。如果硬要用“first row as header”,Data Factory无法解决这个错误。解决办法是re-editcsv文件。即使在 Azure SQL 数据库中,它也不支持我们创建具有相同列名的 table。列名是 case-insensitive.

例如,不支持此代码:

这是完整的电子邮件:

嗨莱昂,

早上好!感谢您的信息。

我已经测试了您与我共享的示例文件并重现了该问题。当我连接到您的示例文件时,默认情况下数据预览是好的。 但我注意到当我们进行故障排除时 session – a、A、b 是列名,因此您已将第一行检查为 header 您的源连接。请确认没问题,你要使用a,A,b作为列headers。如果是这样,它应该是一个错误,因为模式中没有“A”的文本转换。 希望您能理解列名不会影响数据转换,可以更改它以确保没有错误阻塞数据流。 有两个提示可以让您删除块,一个是直接更改源 csv 中的列名,或者您可以单击架构选项卡中的导入架构按钮(在吹屏截图中),您可以选择用于重新定义模式的示例文件,它还允许您更改列名。

希望这对您有所帮助。