このConnected Learning Pathでは、単純なJSONデータセットをCSVに変換する方法を説明するChainを作成します。また、JSONデータセットをループし、データ内の値に基づいてフィルタリングする方法を探ります。
主な学習目標 | JSONコネクタ機能 |
副次的学習目標 |
表形式変換アドバンスクエリーコマンド グループ反復 |
前提条件 | JSONコネクタ接続の設定 |
テンプレート | CLP|JSONデータへのアクセス |
ステップ1:チェーンを作る
- 新しいチェーンを追加する
- チェーンCLPの名前|JSONデータへのアクセス
- チェーン変数を作成する:
- Chain Variablesの下にあるプラス記号をクリックします。
- セーブ・ザ・チェーン
ステップ2:JSONデータの取得
HTTPコネクタを使用して、WebロケーションからJSON形式でヘッドカウント関連データを取得します。
- HTTPコネクタからStartノードへのGETコマンドの追加
- コマンドを以下のように設定する:
名称 | GET - 全従業員 |
ユーザー名 | <空白のまま |
パスワード | <空白のまま |
CA証明書 | <空白のまま |
証明書 | <空白のまま |
証明書の秘密鍵 | <空白のまま |
応答を表示 | チェック済み |
URL | cv-JSON-Employee チェーン変数 |
クエリー文字列 | <空白のまま |
コンテンツタイプ | application/json |
応答 | <空白のまま |
- コマンドを保存する
ステップ3:JSONをCSVに変換する
JSONコネクタを使用して、JSONデータセットをCSV形式に変換します。このステップでは、JSON配列から従業員IDと国フィールドのみを選択する。
JSONデータセットのスキーマを理解することが重要である。File Utilities Connector の List File Content Command を使用すると、スキーマを視覚化できます。簡単に参照できるように、GetコマンドのResponseフィールドにスキーマを追加することもできる。以下は、従業員JSONのスキーマである:
スキーマ:
[
{
"emp_id": "26-4992011",
"user_name": "apostle0",
"first_name":"Audi",
"last_name": "Postle",
"job_title": "Chief Design Engineer",
"department":"Marketing",
"city": "Cheyenne",
"country": "United States",
"currency": "USD",
"hire_date": "08/30/2000",
"fte":1,
"termed": false
}.
]。
- Array to CSV Command fromJSON Connector をチェーンに追加。
- 開始ノード(GET - 全従業員)をArray to CSV コマンドに接続します。
- コマンド名を指定します:Array to CSV - All Employees.
- JSON Data パラメータで、 GET - All Employees CommandからのResponse Outputを選択する。
- Input Text 、Path to root 、Filter パラメータは空白のままにしておく。
- Multi-value Delimiter パラメータはカンマ(,)のままにしておく。
- プレビュー結果 オプションをチェックする。
- Columnsセクションは、JSON配列からどの要素をカラム型(CSV)データセットに抽出するかを指定するために使用します。列を追加するには、Add ボタンを1回クリックします。
- 最初のカラムに、emp_id をカラム名に、.emp_id をJSONPathパラメータに入力します。
- JSONPath パラメータでは、emp_id の前に必ずドット(.)
- 2つ目のカラムには、カラム名にcountry と入力し、JSONPathパラメータに.country と入力する。
- Delimiter パラメータには、Comma を選択する。
- 最初のカラムに、emp_id をカラム名に、.emp_id をJSONPathパラメータに入力します。
- コマンドを保存する
ステップ4:データから国の固有リストを取得する
単純なSelect Distinct ステートメントを Tabular Transformation Connector の Advanced Query Command で使用して、データ内の一意の国セットを取得します。後ほど、このリストを使って国別の従業員を個別に検索する。
- Tabular Transformation Connector からAdvanced Query Command をチェーンに追加します。
- Array to CSV - All Employees Command をAdvanced Query Command に接続する。
- コマンド名を指定してください:Advanced Query - Countries.
- Tablesセクションでは、1つまたは複数の区切りデータセットを使用して、SQLステートメントを記述するためのテーブルを作成することができます。指定されたテーブルを持つSQLiteデータベースがその場で生成され、追加のソフトウェアのインストールは必要ありません。
- File フィールドで、Converted File Output fromArray to CSV - All Employees Command を指定します。
- Table Name パラメーターにCountries と入力。指定されたクエリは、このテーブルに対して実行される。
- Queryパラメータに以下を入力する:
国名から国を選択
- Input Delimiter およびOutput Delimiter パラメーターにはカンマ を指定する。
- プレビュー結果 パラメータをチェックする。
- コマンドを保存する。
ステップ5:国リストからJSON配列を作成する
JSON Connector の CSV to JSON コマンドを使用して、一意の国リストを JSON 配列に変換します。コマンドグループは、この配列の各項目を繰り返し処理することができる。
- JSON コネクタ からCSV to JSON コマンドをチェーンに追加する。
- Advanced Query - Countries Command をCSV to JSON Command に接続します。
- コマンドの設定は以下のように行う:
名称 | CSVからJSONへ - 国 |
入力ファイル | 結果 Advanced Query - Countries コマンドからの出力 |
区切り記号 | コンマ (,) |
- コマンドを保存する
ステップ6:コマンドグループの追加
チェーンにコマンドグループを追加し、アドバンスドクエリのステップで特定された個々の国に対する反復を可能にする。
- Command Group をChainに追加する。
- CSV to JSON - Countries コマンドをコマンドグループのIn セクションに接続する。
- コマンドグループをクリックし、スポイトアイコンを選択してコマンドの色をオレンジ に変更します。
- グループ名正社員.
- Iterations toggle under the iterations tabを有効にし、JSON File Output fromCSV to JSON - Countries Commandを選択します。
- コマンドグループを保存する。
ステップ7:国別に従業員のJSONデータをフィルタリングする
JSONデータセットをCSVに変換し、イテレーションで現在処理中の国の従業員レコードのみをフィルタリングします。このステップでは、2つの強力な機能、すなわち、ループまたは反復処理する機能と、JSON変換処理にフィルタを適用する機能が強調されている。これらの能力を理解することは、強固で効率的なチェーンを開発する能力を強化する。
このステップでは、以前に設定したArrayをCSVコマンドにコピーする。
- ArrayをCSVにコピー - 全社員 Command.
- Group Start コマンドグループからArray to CSV - All Employees (Copy) Command に接続する。
- コマンドを編集する。
- コマンド名を指定します:Array to CSV - Employees by Country.
- Filterパラメータに以下を入力する:
?(@.country == "")
-
- の前のスペースと、二重イコール(==)記号の後の は、要 。
-
は、変数ペインのGroup Iterator の下にあるJSON File Iteration に置き換えてください。 - JSON File Iterationを追加する際、Variableバブルをクリックし、Get Value from JSON Variable Transformationを追加します。
- 変数変換のValueパラメータに「country 」と入力し、Enterキーを押す。JSONは大文字と小文字を区別する ということを覚えておいてほしい。
- emp_id 列を編集して、列名 ofemployee_id. JSONPathは変更しないでください。
- コマンドによって生成されるカラム名は、JSON配列のキーと一致する必要はありません。
- コマンドに10カラムを追加し、以下のように設定する:
列名 | JSONPath |
ユーザー名 | ユーザー名 |
名 | .first_name |
ラストネーム | 姓 |
タイトル | .job_title |
部署 | 部門 |
都市 | 都市 |
通貨 | 通貨 |
入社日 | .hire_date |
fte | .fte |
終了 | 用語 |
- コマンドを保存する。
ステップ8:エクササイズのテスト
チェーンが完成したら、結果をテストする。
- the Chainを出版。
- Execute をクリックし、Run Chain を選択する。
- チェーンが完了したら、Array to CSV - Employees by Country ノードをクリックします。
- 反復は5回行われた。
- 各反復値を選択し、Inputs タブをクリックします。Filter が以下の表と一致していることを確認してください。
- 反復 5 を選択し、Logs タブをクリックします。データのプレビューが下の画像と一致していることを確認する。
反復1 | 米国 |
反復2 | ブラジル |
反復3 | ケニア |
反復4 | イタリア |
反復5 |
オーストラリア |
チェーンを使ったデータ変換の詳細については、Connected Learning Paths - Transformation Introduction をご覧ください!