这可能是由于临时表的键列名称与源表的键列名称不同导致的。需要在ADF数据流活动中更改临时表的列名称,以使其与源表的键列名称匹配。例如,如果源表中的键列名为“ID”,但临时表中的键列名为“key”,那么可以添加一个派生列,将“key”列重命名为“ID”,然后将其作为键列传递给ADF的Upsert活动。代码示例:
在ADF数据流活动中添加派生列。
在派生列中使用“select”语句将“key”列重命名为“ID”。
在Upsert活动中选择新的“ID”列作为键列。
下面是代码示例:
DerivedColumn1: Microsoft.DataFactory/factories/{factoryName}/pipelines/{pipelineName}/transformations/{transformationName}/DerivedColumn1
"Select": { "Inputs": [ { "ReferenceName": "temp_table", "Type": "DatasetReference" } ], "Outputs": [ { "ReferenceName": "temp_table", "Type": "DatasetReference" } ], "SqlReaderQuery": "SELECT key AS ID FROM temp_table" },
"Sink": { "Inputs": [ { "ReferenceName": "source_table", "Type": "DatasetReference" } ], "WriteBatchSize": 0, "WriteBatchTimeout": "00:00:00", "IgnoreNullValues": false, "AllowSinkSchemaDrift": true, "EnableUpsert": true, "Mapping": { "IgnoreUnmappedColumns": false, "Items": [ { "SinkColumnName": "ID", "Source": {