You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADF元数据驱动复制任务添加额外列的正确语法咨询

元数据驱动ADF复制任务添加UTC日期额外列的正确语法

我们已在Azure Data Factory(ADF)中搭建元数据驱动的复制任务,元数据存储于数据库内。现需为部分表添加以当前UTC日期为值的额外列。

在常规复制任务中,以下语法可实现需求并得到预期结果:

"additionalColumns": [
            {
                "name": "_IngestionDateUtc",
                "value": {
                    "value": "@utcnow()",
                    "type": "Expression"
                }
            }
        ],

但将该配置添加至元数据表的CopySourceSettings时,运行管道出现如下错误:

ErrorCode=UserErrorInvalidValueInPayload,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Failed to convert the value in 'value' property to 'System.String' type. Please make sure the payload structure and value are correct.,Source=Microsoft.DataTransfer.DataContracts,''Type=System.InvalidCastException,Message=Object must implement IConvertible.,Source=mscorlib,'

若修改为以下语法,结果不符合预期:

"additionalColumns": [
            {
                "name": "_IngestionDateUtc",
                "value": "@utcnow()",
                "type": "Expression"
            }
        ],

正确语法及说明

在元数据驱动的场景中,additionalColumns的配置需要调整为直接将表达式字符串作为value的值,无需嵌套的结构,正确配置如下:

"additionalColumns": [
    {
        "name": "_IngestionDateUtc",
        "value": "@utcnow()"
    }
]

原因说明

  • 常规复制任务的UI/JSON配置支持嵌套的value+type结构来标记表达式类型,但元数据驱动场景下,CopySourceSettings的存储内容会被ADF直接解析,嵌套结构会触发类型转换错误(即报错中提到的无法将对象转换为System.String)。
  • 直接使用"value": "@utcnow()"时,ADF会自动识别该字符串为表达式并执行计算,最终将当前UTC日期作为额外列的值写入目标表。

如果需要添加其他表达式作为额外列,遵循同样规则:直接将表达式字符串赋值给value字段即可,无需额外的类型标记。

内容的提问来源于stack exchange,提问作者csukcl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:33:16