如何在Azure Data Factory中对源列名首位的@符号进行转义
Azure Data Factory Copy活动处理带@前缀JSON列名的解决方案
- ADF表达式层面转义
若你在管道逻辑中直接引用带@的列名,在原有@符号前额外新增一个@即可完成转义。比如原列名为@deviceId,在表达式中写为@@deviceId即可避免ADF将其识别为内置表达式前缀。 - Copy活动显式列映射调整
在Copy活动的「映射」标签页关闭自动映射,手动配置源到目标的列对应关系:- 源端直接填写完整的带@字段名(如
@timestamp) - 目标端如果不需要保留@前缀,可直接重命名为不带特殊符号的列名;如果需要在SQL库中保留@前缀,用方括号包裹列名即可,如目标列填写
[@timestamp]
- 源端直接填写完整的带@字段名(如
- 手动指定源数据集Schema
若源JSON数据集自动探测Schema时识别异常,可手动编辑数据集的Schema定义,将带@的列名用单引号包裹后声明,规避ADF的表达式解析逻辑。 - 数据流预处理列名
上述方案不满足需求时,可在Copy活动前新增数据流活动,通过派生列功能将带@的列重命名为无特殊符号的列后,再写入Azure SQL Database。
注意:如果目标SQL表保留带@的列名,后续所有操作该列的SQL语句都需要用方括号
[]包裹列名,否则Azure SQL会将@识别为变量前缀触发报错。
内容的提问来源于stack exchange,提问作者Koen
相关产品推荐
相关产品推荐

