2

Azure 데이터 팩토리 V1을 사용하고 있습니다. 복사 작업을 사용하여 Azure cosmos의 문서로 저장된 json 데이터를 azure SQL 테이블에 복사하려고합니다.Azure 데이터 팩토리를 사용하여 Azure cosmos db에서 Azure sql로 json 데이터 복사

json의 속성 이름과 일치하도록 sql 테이블의 열을 지정하여 데이터를 복사하는 방법을 알아 냈습니다. 그러나 우리의 목표는 전체 json 데이터를 단일 필드로 복사하는 것입니다. 우리는 json 데이터 내의 스키마에 대해 불가지론적일 목적으로이 작업을 수행하고 있습니다.

json 데이터를 저장하기 위해 단일 nvarchar (max) 열을 지정하고 "c에서 FullData"로 c를 선택하도록 복사 작업에 대한 쿼리를 시도했습니다. 그러나 복사 작업은 단순히 NULL을 생성합니다.

"FullData"가 문서 끝의 json 유형이고 SQL 끝의 문자열이기 때문에 이것이라고 생각합니다. 또한 cosmos db 쿼리 내에서 json 객체를 문자열로 변환하려고 시도했습니다. 하지만 그렇게 할 API를 찾을 수 없었다.

내가 원하는 것을 달성하기 위해 사용자 정의 액티비티를 작성할 수 있지만이 기능은 ADF의 기본 기능과 관련이 있습니까? https://docs.microsoft.com/en-us/azure/data-factory/supported-file-formats-and-compression-codecs#json-format

답변

0

이 유사한로 jsonPathDefinition를 사용할 수 있습니다 "column_full"ADF에 jsonFormat를 사용하는 방법에이 링크에 ". $"

참조 JSON 문서를 Azure SQL 데이터베이스에 단일 필드로 저장하려면 지정된 Cosmos DB 쿼리로 설정된 결과가 실제로 전체 개체를 문자열로 포함하는 단일 "열"인지 확인해야합니다.

Cosmos DB에 내장 된 쿼리 구문이 없다고 생각하지만 Cosmos DB에서 UDF (user defined function)를 만들어 개체를 문자열로 변환 할 수 있습니다. JSON.stringify()를 사용하여 ADF 복사 소스의 select 쿼리에서 해당 UDF를 호출하십시오.

0

가를 복사 ADF를 사용하려면 :