在 Azure 数据工厂中使用 @item().name 设置“复制数据”源文件夹
Posted
技术标签:
【中文标题】在 Azure 数据工厂中使用 @item().name 设置“复制数据”源文件夹【英文标题】:Set 'Copy Data' source folder with @item().name in Azure Data Factory 【发布时间】:2020-06-27 15:34:31 【问题描述】:我有以下管道:
Get Metadata1 主要检索子项(这是文件夹的集合,即originalFolder1
、originalFolder2
等)。
在 ForEach1 活动中,我放置了复制数据活动。
定义源数据集时,我想使用检索到的文件夹名称作为路径。所以它会是这样的:staticFolder1/staticFolder2/originalFolder1
.
我确实尝试在文件夹路径中使用staticFolder1/staticFolder2/@item().name
,但它总是抛出错误file not found
我错过了什么吗?
【问题讨论】:
你是从哪里复制过来的,是存储账户吗? @BowmanZhu source 和 sink 都来自DataLake 【参考方案1】:不幸的是,在 ADF 中你不能混合字符串和表达式,你只能有一个或另一个
你可以做的是:
@concat(variables('SourceFolderName'), '/', string(item().name) )
假设您有一个名为 SourceFolderName 的变量,如果您的源文件夹每天都不同,这将很有用;否则将其作为字符串
@concat('staticFolder1/staticFolder2/', string(item().name) )
然后您可以连接 ForEach 活动的项目以形成完整路径
【讨论】:
【参考方案2】:@sowmen 提供的 cmets 是有意义的,但没有必要将 item().name 转换为字符串格式。
还有一个有趣的概念叫做字符串插值,它让我们的生活更轻松。请参阅下面适合您的方案的代码。希望对你有帮助:)
staticFolder1/staticFolder2/@item().name
【讨论】:
以上是关于在 Azure 数据工厂中使用 @item().name 设置“复制数据”源文件夹的主要内容,如果未能解决你的问题,请参考以下文章
将日期时间参数从管道传递到数据流源存储过程 Azure 数据工厂