Azure Data Factory数据集参数设置压缩类型默认值为None的问题
ADF二进制数据集压缩类型参数化设None默认值解决方案
操作步骤
- 首先确认压缩类型参数的类型为
String,无需设置为其他复杂类型 - 参数默认值直接填字符串
None,不要传null、空字符串等特殊值,ADF底层可直接匹配该枚举字面量 - 数据集的压缩属性处填写如下动态表达式,自动适配压缩/无压缩场景:
# 管道层面参数用该版本 @if(equals(pipeline().parameters.CompressionType, 'None'), json('null'), json(concat('{"type": "', pipeline().parameters.CompressionType, '", "level": "Optimal"}'))) # 数据集层面参数用该版本 @if(equals(dataset().parameters.CompressionType, 'None'), json('null'), json(concat('{"type": "', dataset().parameters.CompressionType, '", "level": "Optimal"}')))
该表达式的逻辑为:当传入的压缩类型为None时,直接给压缩属性传null值,ADF会自动识别为不启用压缩;传入其他压缩类型值时,自动拼接生成合法的压缩配置对象,避免格式报错。如果需要调整压缩等级,可自行修改表达式中的Optimal为Fastest等合法值,也可以新增压缩等级参数做更灵活的配置
- 保存配置后可分别传入
None、GZip、ZipDeflate等值做测试,确认管道运行正常,无需额外创建不同的数据集适配不同压缩场景
相关配置参考
- 文件参数配置界面:

- 压缩类型None选项参考界面:

内容的提问来源于stack exchange,提问作者kanderson
相关产品推荐
相关产品推荐

