-1

データをDocumentDBからAzure SQLデータベースにコピーする必要があります。Azureデータファクトリを使用してjsonドキュメントをSQLデータベースにピボット解除する方法

{

"デバイスID": "D1"、

"時間": "2017-07-27T20:00:00"、

JSON文書は次のようです

"温度":25、

"Humedity":50

}

宛先SQLデータベースのテーブル構造は(DeviceID | SensorID |値|時間) データは次のようになります。

デバイスID | SensorID |値|時間

D1  | Temperature |  25  | 2017-07-27 20:00:00 
D1  | Humedity  |  50  | 2017-07-27 20:00:00 

これを実装する方法は?

私はそれが悪いデザインであってもよいし、SensorIDsと値のリストを持つようにJSON形式の文書構造を変更することが考えられますが、リストの列が私が今考えている

をサポートされていないとして、データの工場は、それを拒否しましたこのような構造化テーブル(DeviceID | Temperature | Humedity | Time)を作成し、ADFを使用してデータをコピーした後、SQLのUNPIVOT句を使用してデータを再びテーブルにコピーします。

右/最善の実装を達成するための助けがあれば何ですか?

+0

を参照してください使用して列をマップすることができます[上のFAQを「私が尋ねる質問どのような種類のを避けるべきですか?」](https://stackoverflow.com/help/dont-ask)。主観的な質問は避けてください。この質問に「正しい」答えはありません。 –

答えて

0

SQL AzureとSQL Serverのエンジン内: OPENJSONを使用して、これをリレーショナル形式に変換できます。そして、あなたが列に行のためにそれを旋回するようにSQLのPIVOT演算子を使用することができます。

https://docs.microsoft.com/en-us/sql/t-sql/functions/openjson-transact-sql https://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx

だから、あなたは、SQL内JSONを上陸し、それを変換することができます。

ADF内には他のパスもあります。

0

一目でデータファクトリのドキュメントは、それは明らかにそれが組み込ま列をマップすることができますことを確認しません。

データの工場は、JSONに設定されるデータの種類を指定すると、それはだ定義することで、JSONをネイティブでサポートしてい構造。

https://docs.microsoft.com/en-us/azure/data-factory/data-factory-supported-file-and-compression-formats#json-format

私は、データの工場がどのように動作するかであなたが慣れるために、ポータル内のコピーウィザードで遊んでお勧めします。

あなたはその後、TabularTranslator

+0

最初のURLはデータソースとしてBlopのケースをカバーしていますが、DocumentDBをデータソースとして使用しています。 「jsonPathDefinition」のようなものは役に立ちますが、DocumentDBではサポートされていません。 – user3268044

関連する問題