使用Azure数据工厂将json数据从Azure cosmos db复制到Azure sql

使用Azure数据工厂将json数据从Azure cosmos db复制到Azure sql,azure,azure-sql-database,azure-cosmosdb,pipeline,azure-data-factory,Azure,Azure Sql Database,Azure Cosmosdb,Pipeline,Azure Data Factory,我正在使用Azure Data Factory V1。我们希望使用复制活动将存储为文档的json数据从Azure cosmos复制到Azure sql表 我通过指定sql表中的列来匹配json中的属性名,从而实现了数据复制。但是,我们的目标是将整个json数据复制为单个字段。我们这样做的目的是不知道json数据中的模式 我已经尝试指定一个nvarchar(max)列来存储json数据,并且对复制活动的查询是“选择c作为c中的“FullData”。但是复制活动只会生成一个空值 我认为这是因为“Fu

我正在使用Azure Data Factory V1。我们希望使用复制活动将存储为文档的json数据从Azure cosmos复制到Azure sql表

我通过指定sql表中的列来匹配json中的属性名,从而实现了数据复制。但是,我们的目标是将整个json数据复制为单个字段。我们这样做的目的是不知道json数据中的模式

我已经尝试指定一个nvarchar(max)列来存储json数据,并且对复制活动的查询是“选择c作为c中的“FullData”。但是复制活动只会生成一个空值

我认为这是因为“FullData”在文档端是json类型,在sql端是string类型。我还尝试在cosmos db查询中将json对象转换为字符串。但是我找不到任何API来这样做


我知道我们可以编写一个自定义活动来完成我想做的事情,但这是否可以通过ADF开箱即用功能实现呢?

您可以使用类似于以下内容的jsonPathDefinition: “列\u已满”:“$”


有关如何将jsonFormat与ADF结合使用的链接:

要使用ADF将JSON文档作为单个字段复制到Azure SQL数据库中,您需要确保指定的Cosmos DB查询的结果集实际上是一个包含整个对象作为字符串的“列”

我认为Cosmos DB没有内置的查询语法,但您可以在Cosmos DB中创建一个UDF(),将对象转换为字符串,例如使用JSON.stringify(),然后在ADF copy source中的select查询中调用该UDF