Azure data factory 在Azure data Factory中使用参数化数据集映射数据流

Azure data factory 在Azure data Factory中使用参数化数据集映射数据流,azure-data-factory,azure-data-factory-2,Azure Data Factory,Azure Data Factory 2,当通过数据工厂映射数据流引用时,我在使用参数化数据集时遇到问题 我正在尝试编写一个通用的ELT管道,它将从blob存储中的CSV文件中读取,并将其写入Azure SQL数据库中的表中 使用复制活动时,一切正常(请参阅管道“使用复制活动将CSV文件导入通用SQL表”) 从blob存储中读取CSV文件(作为参数传递到数据工厂管道中的文件名)。 CSV文件的结构是使用“获取元数据”活动确定的 CSV文件的结构将传递给SQL Server存储过程,该存储过程将定位与CSV文件具有相同结构的视图。如果不存

当通过数据工厂映射数据流引用时,我在使用参数化数据集时遇到问题

我正在尝试编写一个通用的ELT管道,它将从blob存储中的CSV文件中读取,并将其写入Azure SQL数据库中的表中

使用复制活动时,一切正常(请参阅管道“使用复制活动将CSV文件导入通用SQL表”)

从blob存储中读取CSV文件(作为参数传递到数据工厂管道中的文件名)。 CSV文件的结构是使用“获取元数据”活动确定的

CSV文件的结构将传递给SQL Server存储过程,该存储过程将定位与CSV文件具有相同结构的视图。如果不存在具有相同结构的视图,则会创建一个表和视图。在这两种情况下,模式名和视图名都会传递回管道。然后将CSV文件的内容读取并写入SQL Server视图

这很好,但我没有机会向每一行添加元数据。因此,我创建了一个映射数据流,它将使用派生列转换添加元数据(数据工厂名称、数据工厂管道名称、数据工厂管道运行ID)

当我尝试调试数据流时,我收到一个错误
“发生了一个错误,请查看通知以了解更多详细信息。”
我找不到任何提供错误信息的通知

当我使用文件名为硬编码的数据集时,数据流工作。当我切换到参数化数据流(传入参数,如pipeline().DataFactory等)时,就会出现错误

我已经努力编码映射数据流参数值,但仍然没有乐趣

模板通过了验证,但如果我试图通过触发管道来运行管道“使用数据流将CSV文件导入通用SQL表”,它会很快失败,并给我一条神秘的错误消息:

ErrorCode=InvalidTemplate, ErrorMessage=Unable to parse expression 'body('Copy Generic CSV Source to Generic SQL SinkComposeRuntimeVariables')?.Copy Generic CSV Source to Generic SQL Sinkd7ea532482e64afc88501b46924214b3?.ReadFromSourceCSVFileInBlobStorage.FileName'
有没有Azure数据工厂的专家愿意帮忙

所有源代码都可以在


提前谢谢

您可以使用数据流参数中的表达式将这些值直接从管道传递到数据流活动,而无需使用数据集参数


要进行调试,请打开调试开关,然后在数据流设计器中,转到转换上的数据预览选项卡。您可以在数据流参数中使用默认值进行测试,也可以在调试时使用调试设置进行设置。

哇!我在美国东部时间周五晚上9:30收到了一封来自马云的电子邮件,上面写着决议。问题是数据流的名称中有空格

问题是参数表达式不支持以下数据流: 名称中有空格。你能尝试重命名你的数据流吗 “将通用CSV源复制到通用SQL变量” 然后预览?同时,我们将在UX端添加更多验证 正确处理数据流的命名限制

我已经从数据流的名称中删除了空格,并成功地进行了测试

非常感谢您的卓越支持体验!让我记录在案,说马克·克罗默和杰克·马·洛克


Hi@Marc Jellinek,您可以将其作为答案接受(单击答案旁边的复选标记,将其从灰色变为填充。)。这可能对其他社区成员有益。谢谢。我昨天被这个问题绊倒了几个小时。这个答案救了我!非常感谢。