読者です 読者をやめる 読者になる 読者になる

M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

PentahoのREST Clientデータ変換ステップでGET

Pentaho

PentahoのREST Clientデータ変換ステップでREST APIに対してGETリクエストを行うための設定メモ。
おそらくサーバ側の問題だが、動作確認のために用意したSpring BootのRestControllerとやり取りするにはHTTPリクエスト・ヘッダーの設定が必要だった。

まずデータ変換の全体図を示しておく。末尾のExcel出力は単に結果確認のために置いているだけである:

f:id:m12i:20160518075059p:plain

次にこのデータ変換の作成の手順を示す:

①データ変換にCSV入力ステップを追加
②ステップ編集画面で[ファイル名]、[フィールド区切り文字]、[引用符]などを設定

f:id:m12i:20160517075825p:plain

今回は下記のような内容を持つCSVを用意した。ヘッダレコード+データレコード1行。画面幅の都合、左に90度転倒させている。WebブラウザでAPIにアクセスしたときに設定されていたヘッダー情報をそのままコピーしている。さすがにCookieの項目は乱暴すぎな気もしたが…:

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language ja,en-US;q=0.7,en;q=0.3
Cache-Control max-age=0
Connection keep-alive
Cookie JSESSIONID=2B65C4A2E7249613CAA3EDC50CE13211
Host localhost:8080
User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0

③[フィールドを取得]をクリックして、CSVファイルからスキーマを読みこませフィールド一覧の定義を埋める
④REST Clientステップを追加し、①と接続
⑤ステップ編集画面で[URL]、[HTTPメソッド]、[アプリケーションタイプ]、[出力フィールド]セクションの3値などを適宜設定

f:id:m12i:20160517080326p:plain

⑥[ヘッダー]タブで[フィールド取得]を押下して③のスキーマ情報をこちらにもコピー

f:id:m12i:20160517080936p:plain

JSON Inputステップを追加し、④と接続
⑧ステップ編集画面で[フィールドにソースを定義]や[フィールドからソースを取得]などを適宜設定

f:id:m12i:20160517080953p:plain

⑨[フィールド]タブでJSONのツリー構造をどのように行列構造に変換するかを定義する。[パス]列にはJSON PathというDSLを用いる。このDSLによりJSONのツリー構造を宣言的に行列構造に変換できる。

f:id:m12i:20160518080500p:plain

⑩最後にExcel出力ステップを追加して、⑦と接続(前述のとおり取得し、変換を終えたデータを確認するため)
⑪ステップ編集画面の[ファイル]タブで出力先のパスを適宜指定
⑫[フィールド]タブで[フィールドを取得]をクリックして、先ほど⑨で設定した情報をコピーする