我正在使用ADFv2,我想使用在数据集级别定义的一些可选参数。我没有发现是否可以实现。
如果我在数据集中定义一个参数(在管道级别定义一个参数并连接这两个参数,以便管道将值传递给数据集级别的参数),当我手动运行管道并且不指定我得到错误
No value provided for Parameter 'parameter'
答案 0 :(得分:2)
仅适用于可能希望这样做的人。至少直到今天为止,我们还没有管道的可选参数,这是根据ADF产品团队通过Azure的支持通知告知我的。
答案 1 :(得分:0)
@fgbaezp,这是一个较晚的答案,但是您可以使用动态内容(例如@toLower('')
)为参数分配空字符串。答案 2 :(得分:0)
我们有一个blob csv文件的数据集。数据集已参数化了文件名以及容器和目录。
当此数据集是一个接收器时,我们可能要指定要写入的文件,或将其保留为空白,然后让Azure为我们提供data_xxxx.csv文件名。
当此数据集为源时,我们可能要指定要打开的文件,或将其保留为空白以使用通配符选项(目录中的所有csv)。
从某种意义上讲,我们希望filename参数为可选。
但是您不能在UI中将数据集参数字段留为空白,否则管道将无法编译(验证)。
在那些我们希望文件名为空的情况下,我们使用上面建议的技巧注入一个空字符串(我们使用@coalesce(pipeline().parameters.filename,''
),并在触发管道时将filename参数保留为空。
答案 3 :(得分:0)
我最近遇到了这个问题,这里提供的答案并没有完全满足我的需求。如果您需要手动运行或由触发器运行,我们使用 ADF 管道的方式依赖于要设置的参数为空,以便它们可以动态设置为触发器的日期/时间已激活。
在我们的管道中,我们有如下检查。
@if(empty(string(pipeline().parameters.FolderDate)),
formatDateTime(utcnow(),'yyyyMMdd'),
pipeline().parameters.FolderDate)
事实证明,如果您将参数作为小写的 null 提供,那么我的管道会按预期工作。
答案 4 :(得分:0)
尝试将 @coalesce(null)
作为参数的表达式。