このConnected Learning Pathでは、ネストしたオブジェクトを含むJSONデータセットをCSVに変換する方法を説明するChainを作成します。また、この入れ子構造を平坦にするために、デカルト結合をどのように使うかを検討する。
主な学習目標 | ネストされたJSONオブジェクトのJSONコネクター機能 |
副次的学習目標 | 表形式変換アドバンス・クエリ・コマンド |
前提条件 | JSON コネクタ接続の構成 HTTP コネクタ接続の構成 |
テンプレート | CLP|JSONネスト・オブジェクトへのアクセス |
ステップ1:チェーンを作る
- 新しいチェーンを追加する
- チェーンに名前を付けるCLP|JSONネスト・オブジェクトへのアクセス
- チェーン変数の作成
- セーブ・ザ・チェーン
ステップ2:JSONデータの取得
HTTPコネクタを使用して、WebロケーションからJSON形式でヘッドカウント関連データを取得します。
- HTTPコネクタ からGET コマンドをStartノードに追加する。
- コマンドを以下のように設定する:
名称 GET - JSONデータ ユーザー名 <空欄のまま パスワード <空欄のまま CA証明書 <空欄のまま 証明書 <空欄のまま 証明書の秘密鍵 <空欄のまま 応答を表示 チェック済み URL cv-JSON-Donut チェーン変数 クエリー文字列 <空欄のまま コンテンツタイプ application/json 応答
<空欄のまま
- コマンドを保存する
ステップ3:入れ子になっていないJSONデータを取得する
JSON コネクタの Object to CSV コマンドを使用して、JSON オブジェクトからネストされていない名前と型のキーを抽出します。
JSONデータセットのスキーマを理解することが重要で ある。File Utilities Connector のList File Content Command を利用してスキーマを視覚化することができる。参考までに、以下はドーナツJSONのスキーマである:
スキーマ:
{"id":"0001","type":"donut","name":"Cake","ppu":0.55,"batters":{"batter":[{"id":"1001","type":"Regular"},{"id":"1002","type":"Chocolate"},{"id":"1003","type":"Blueberry"},{"id":"1004","type":"Devil's Food"}]},"topping":[{"id":"5001","type":"None"},{"id":"5002","type":"Glazed"},{"id":"5005","type":"Sugar"},{"id":"5007","type":"Powdered Sugar"},{"id":"5006","type":"Chocolate with Sprinkles"},{"id":"5003","type":"Chocolate"},{"id":"5004","type":"Maple"}]}
- Object to CSV Command をJSON Connector から Chain に追加します。
- Start Node (GET - JSON Data) をObject to CSV Command に接続する。
- コマンドに名前を付ける:Object to CSV - Name & Type.
-
JSON Data パラメータで、GET - JSON Data CommandからのResponse Outputを選択する。
- Input Text とPath to root パラメータは空白のままにする。
- Multi-value Delimiter パラメータはカンマ(,)のままにしておく。
- プレビュー結果 オプションをチェックする。
- Delimiter パラメータにPipeを選択する。
- Columnsセクションは、JSONオブジェクトからどの要素をカラム型(CSV)データセットに抽出するかを指定するために使用します。2つの列を追加するには、Add ボタンを1回クリックします。
- 最初のカラムに、name を入力し、Column Name と.name をJSONPathパラメーターに入力する。
- 2つ目のカラムには、タイプ を入力し、カラムタイプ と.タイプ をJSONPathパラメーターに入力する。
- コマンドを保存する
ステップ4:トッピングのリストを入手する
ネストされた JSON 配列内のトッピングのリストを取得するには、JSON コネクタの Array to CSV コマンドを使用します。
- JSON コネクタから Array to CSV コマンドをチェーンに追加します。
- GET - JSON DataコマンドをArray to CSVコマンドに接続する。
- コマンドの編集
- コマンドに名前を付ける:Array to CSV - Toppings.
-
JSON Data パラメータで、 GET - JSON Data CommandからのResponse Outputを選択する。
- Input Text パラメータは空白のままにする。
- Path to root パラメーターに、topping (小文字)と入力し、エンターキーを押す。トッピング 、グレーの泡が表示されるはずだ。
- Filter パラメータは空白のままにする。
- Multi-value Delimiter パラメータのデフォルト値、カンマ(,) のままにする。
- プレビュー結果 オプションをチェックする。
- Columnsセクションで、結果のCSVのカラムに値を抽出するJSON配列のキーを指定します。
- Column name パラメーターに、ToppingID と入力し、JSONPath パラメーターに、.id.
- Column name パラメーターに、ToppingType と入力し、JSONPath パラメーターに、.type と入力する。
- Delimiter パラメーターで、Pipe を選択する。
- コマンドを保存する。
ステップ5:打者リストの入手
JSON コネクタの Array to CSV コマンドを使用して、ネストされた JSON 配列内の打者のリストを取得します。
各配列の入れ子が異なるため、バッターとトッピングを抽出するために2つのArray to CSVコマンドを使用する。ネストされたJSONPaths(例えば、.topping[*].type )を持つObject to CSV Commandを使用すると、CSVデータセットで使用するのがより困難なマルチパートの値が作成されました。
- Array to CSV Command fromJSON Connector をチェーンに追加します。
- GET - JSON Data Command をArray to CSV Command に接続する。
- コマンド名を指定します:Array to CSV - Batters.
-
JSON Data パラメータで、Response Output fromGET - JSON Data Command を選択する。
- Input Text パラメータは空白のままにする。
-
Path to root パラメータに、batters (小文字)と入力し、Enterキーを押す。次にbatter(小文字)と入力し、エンターキーを押す。打者 、打者 この順番で2つのグレーのバブルに表示されるはずである。
- Filter パラメータは空白のままにする。
- Multi-value Delimiter パラメータのデフォルト値、カンマ(,) のままにする。
- プレビュー結果 オプションをチェックする。
- Columnsセクションで、結果のCSVのカラムに値を抽出するJSON配列のキーを指定します。
- Column name パラメーターには、BatterID と入力し、JSONPath パラメーターには、.id と入力する。
- Column name パラメーターに、BatterType と入力し、JSONPath パラメーターに、.type と入力する。
-
Delimiter パラメーターで、Pipe を選択する。
- コマンドを保存する。
ステップ6:データをフラットにする
データセットをフラットにするには、Tabular Transformation Connector の Advanced Query Command でデカルト結合を使用します。カルテシアン結合は、Object to CSVコマンドとArray to CSVコマンドを使用して抽出した要素のすべての可能な組み合わせを作成します。
- Tabular Transformation Connector からAdvanced Query Command をチェーンに追加します。
- Object to CSV - Name & Type,Array to CSV - Batters, andArray to CSV - Topings Commands toAdvanced Query Commandのそれぞれを接続する。
- コマンドの名前を指定します:Advanced Query - Flatten JSON Object.
- Tables セクションで、Add ボタンを2回クリックし、利用可能なテーブルが3つになるようにする。以下の表セクションを完成させる:
ファイル | テーブル名 |
変換されたファイルを選択オブジェクトから CSV に出力 - 名前とタイプ コマンド | 名称 |
変換後のファイルを選択Array から CSV に出力 - Batters Command | バッター |
変換ファイルの選択Array から CSV への出力 - Toppping Command | トッピング |
- Queryパラメータに以下のクエリを入力する:
Select Type as dessert_type、Name as variety、BatterType、ToppingType
名前、バッター、トッピングから
- 入力デリミター と出力デリミター パラメーターにはパイプを指定する。
- 結果をプレビューするオプションをチェックしてください。
- コマンドを保存する。
ステップ7:チェーンのテストと結果の確認
- the Chainを出版。
- Execute をクリックし、Run Chain を選択する。
- チェインが完了したら
-
Advanced Query - Flatten JSON Object ノードをクリックし、Outputs タブを選択します。
-
レコードカウントの確認 は28
-
レコードカウントの確認 は28
-
Logs タブを選択する。
- データのプレビューが以下のスクリーンショットと一致することを確認します。
- データのプレビューが以下のスクリーンショットと一致することを確認します。
-
Advanced Query - Flatten JSON Object ノードをクリックし、Outputs タブを選択します。
チェーンを使ったデータ変換の詳細については、Connected Learning Paths - Transformation Introduction をご覧ください!