Azure Data Factory V2:可选参数

时间:2018-05-24 21:07:57

标签: azure azure-data-factory azure-data-factory-2

我正在使用ADFv2,我想使用在数据集级别定义的一些可选参数。我没有发现是否可以实现。

如果我在数据集中定义一个参数(在管道级别定义一个参数并连接这两个参数,以便管道将值传递给数据集级别的参数),当我手动运行管道并且不指定我得到错误

No value provided for Parameter 'parameter'

5 个答案:

答案 0 :(得分:2)

仅适用于可能希望这样做的人。至少直到今天为止,我们还没有管道的可选参数,这是根据ADF产品团队通过Azure的支持通知告知我的。

答案 1 :(得分:0)

@fgbaezp,这是一个较晚的答案,但是您可以使用动态内容(例如@toLower('')

)为参数分配空字符串。

答案 2 :(得分:0)

我们有一个blob csv文件的数据集。数据集已参数化了文件名以及容器和目录。

enter image description here

当此数据集是一个接收器时,我们可能要指定要写入的文件,或将其保留为空白,然后让Azure为我们提供data_xxxx.csv文件名。

当此数据集为源时,我们可能要指定要打开的文件,或将其保留为空白以使用通配符选项(目录中的所有csv)。

从某种意义上讲,我们希望filename参数为可选。

但是您不能在UI中将数据集参数字段留为空白,否则管道将无法编译(验证)。

enter image description here enter image description here

在那些我们希望文件名为空的情况下,我们使用上面建议的技巧注入一个空字符串(我们使用@coalesce(pipeline().parameters.filename,''),并在触发管道时将filename参数保留为空。

enter image description here enter image description here

答案 3 :(得分:0)

我最近遇到了这个问题,这里提供的答案并没有完全满足我的需求。如果您需要手动运行或由触发器运行,我们使用 ADF 管道的方式依赖于要设置的参数为空,以便它们可以动态设置为触发器的日期/时间已激活。

在我们的管道中,我们有如下检查。

@if(empty(string(pipeline().parameters.FolderDate)),
formatDateTime(utcnow(),'yyyyMMdd'),
pipeline().parameters.FolderDate)

事实证明,如果您将参数作为小写的 null 提供,那么我的管道会按预期工作。

ADF Parameter Setting

答案 4 :(得分:0)

尝试将 @coalesce(null) 作为参数的表达式。