Azure data factory 在数据工厂或实时数据处理中预复制脚本

Azure data factory 在数据工厂或实时数据处理中预复制脚本,azure-data-factory,azure-data-factory-2,Azure Data Factory,Azure Data Factory 2,我正在从源API复制数据,并将其复制到Azure SQL DB中。但在其中一个专栏中,我得到了Json对象 我可以在管道中使用动态参数(通过Pre-copy脚本或其他方式)从这些json对象中只获取特定标记的值,这样我就可以在列中只包含该值。唯一的限制是我不能换水槽。它必须是Azure SQL DB 我得到的Json对象: [{“self”:“”“value”:“Yes”,“id”:“11903”}] 我只需要“value”标记响应,而不是完整的json。预复制脚本是在复制新数据之前针对数据库运

我正在从源API复制数据,并将其复制到Azure SQL DB中。但在其中一个专栏中,我得到了Json对象

我可以在管道中使用动态参数(通过Pre-copy脚本或其他方式)从这些json对象中只获取特定标记的值,这样我就可以在列中只包含该值。唯一的限制是我不能换水槽。它必须是Azure SQL DB

我得到的Json对象: [{“self”:“”“value”:“Yes”,“id”:“11903”}]


我只需要“value”标记响应,而不是完整的json。

预复制脚本是在复制新数据之前针对数据库运行的脚本,而不是修改正在摄取的数据

如果不能更改接收器,可以使用json的varchar字段将数据存储在不同的表中。然后在管道中添加另一个活动,从中获取此数据并将其存储在实际表中。在第二个活动中,可以使用t-sql语句修改复制活动的sqlQuery,以从中提取所需的值

这在设计查询时非常有用:

希望这有帮助!:)

PS:在第二个活动中,使用此项获取“值”


但我不能使用预复制脚本吗?数据工厂不存储数据,它只是在不同的存储间移动数据,并安排数据流。它也不会转换它,这就是为什么我建议您在sql中使用一个中间表来修改它。谢谢。这样做了,成功了。我只是想不在数据库中创建一个单独的表如果要使其看起来不使用表,可以创建一个表,将其用作中间表,然后将其删除。。所有这些都与数据工厂协调。虽然我不推荐这样做,但也许你想保持数据库的干净。@MartinEstebanZurita有人能帮你做这个吗?
select JSON_VALUE(fieldWhereYouStoredTheJson, '$[0].value') as jsonValue from temporaryTable