2

私はAzure Data Factory V1を使用しています。コピーアクティビティを使用して、Azureコスモスからドキュメントとして保存されたjsonデータを空白のSQLテーブルにコピーします。Azureデータファクトリを使用してAzure cosmos dbからAzure sqlにjsonデータをコピーします。

私は、sqlテーブルの列をjsonのプロパティ名と一致するように指定してデータをコピーすることを考え出しました。しかし私たちの目標は、jsonデータ全体を単一のフィールドとしてコピーすることです。私たちは、jsonデータ内のスキーマにとらわれないようにするためにこれを行っています。

私は、JSONデータを格納するための単一のnvarchar(max)の列、および「Cから 『FullData』としてCを選択」にコピーアクティビティにクエリを指定して試してみました。しかし、コピーアクティビティは単純にNULLを生成します。

これは、 "FullData"がドキュメントの最後にjsonタイプであり、SQLの終わりに文字列があるためです。また、jsonオブジェクトをcosmos dbクエリ内の文字列に変換しようとしました。しかし、私はそうするAPIを見つけることができませんでした。

私たちは、私が何をしたい達成するためにカスタムアクティビティを書くことができ知っているが、これは、ボックス機能のうち、ADFを行うことが可能ですか?

答えて

0

をADFでjsonFormatを使用する方法については、このリンクを参照してください。 AzureのSQLデータベースへの単一のフィールドとしてJSON文書は、あなたが指定したコスモスDBクエリによって設定された結果は、実際に文字列としてオブジェクト全体を含む単一の「列」であることを確認する必要があります。

Cosmos DBにはこのためのクエリ構文が組み込まれているとは思いませんが、オブジェクトを文字列に変換するためにCosmos DBにUDF(user defined function)を作成することができます。 JSON.stringify()を使用して、ADFコピー元の選択クエリでそのUDFを呼び出します。

関連する問題