Pentaho Data Integration でCSVファイルを出力する

バッチ処理では加工したデータをCSVファイルとしてアウトプットするということもあるかと思いますので、テストデータをETL上で作って、それをCSVファイルとして出力する方法をまとめました。
参考になれば幸いです。

# テスト用のデータを作成
データ出力に使用する、テスト用のデータ作成を行います。
データグリッドステップを使用することで、好きなデータを手動で作成することができます。

まずは、データグリッドステップを配置します。
![csv_output_101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/d891c6c6-f43b-10b1-f11a-a019161dd3a5.png)

次にデータグリッドをダブルクリックして設定を行います。
今回はkey(String)とvar(Number)の2つの列を持つテストデータを作成したいと思います。
まずメタタブ上で、列名と型の設定を行います。
![csv_output_102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/35bfa28c-8424-3c52-a98a-3962f0639deb.png)

次にデータタブを選択して、keyとvarにデータを設定します。
![csv_output_103.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/f5ade304-5a26-674a-3d8e-cc1c902c0ce8.png)

プレビューを行うと以下のようにデータを確認することができます。
<img width="300" alt="csv_output_104.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/025f9a1f-6461-b23c-f1df-5b44a679f2a2.png">

以上で、データグリッドの設定が完了しました。

# ソート
varの値で降順にソートしてから出力したいと思いますので、一旦ソートを行います。
行整列ステップを配置して、データグリッドステップとつなげます。
その後、行整列ステップをダブルクリックして設定画面を表示します。
![csv_output_105.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/d12048f5-fa47-225b-99fe-015377f5aa65.png)

以上で、ソートの設定が完了しました。

# プレビュー
ソートまで設定しましたので、一旦ここまでの処理の結果を確認したいと思います。
プレビューしたいステップ上で右クリックしてプレビューを選択することで、実際にそこまでのETL処理を実行した結果の値を確認することができます。
![csv_output_106.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/ea126ae8-5b47-4536-0514-3d6e7ba2b752.png)

プレビューを選択すると以下のような画面が表示されるので、クイック起動を押下します。
<img width="500" alt="csv_output_107.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/00f19225-d064-1fa6-bfe4-a6179ba66255.png">

プレビューの結果が表示されます。
ソート処理実行後の結果なので、varの値で降順にソートされていることが確認できます。
<img width="300" alt="csv_output_108.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/77886954-f412-4393-05f2-c0984e6d6555.png">

プレビュー機能はPDIでETL処理を作成する際には必ず必要になる機能です。
具体的な使い方としては、処理を一つ追加するたびに、追加した処理が正しく動作しているのかをプレビューで確認しながら設定を変更していくイメージとなります。


#CSV出力
最後にソートした結果をCSV形式で出力します。
使用するのはテキストファイル出力ステップです。テキストファイル出力ステップを配置して、行整列ステップとつなげます。
![csv_output_109.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/66349efb-09cc-a4f5-ab84-fdfe991be624.png)

続いて、テキストファイル出力ステップをダブルクリックして設定を行います。
まず、ファイルタブ上で、出力先と出力ファイル名などを設定します。
![csv_output_110.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/2c0bf8c6-ad21-4909-d202-c4e8f08ec5ea.png)

次に、全般タブで区切り文字や文字コードの設定などを行います。
![csv_output_111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/6e5430f0-3cb2-2ecd-7f5c-103ae6c54b5f.png)

最後に、フィールドタブで出力する列設定等、フォーマットを設定します。
フィールド取得でフィールド設定を自動設定したあと、必要があれば細かい設定を変更していくと設定が楽だと思います。
![csv_output_112.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/383fa36f-0f15-cdf8-809c-11caf5da9d27.png)

以上までで、テスト用のデータを作成、ソートして、CSVファイルで出力する処理が完成しました！

#実行する
最後に作成した処理を実行してファイルが出力されることを確認します。
作成したETL処理を保存して実行します。
![csv_output_113.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/d3713043-5303-ec26-8829-ed171f6b567e.png)

実行すると、以下のようにソートされたデータが指定した場所に出力されます。
![csv_output_114.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186651/3261e4f8-d9a0-2439-ae8a-346168534bd2.png)

ここまでで、CSVファイルの出力設定の結果が確認できました。
実際の処理ではもう少し複雑なデータ加工や、出力設定も必要になるかと思いますが、基本的には今回紹介した記事をベースに細かい設定を試しながら変更してくことで処理を作成することができるかと思います。

今後もよく使う処理を中心に記事をアップしていく予定ですが、今日のところは以上です！