pentaho
PDI
ETL

PDIでDBからデータを取得する

PDIはPentahoのETLツールですので、データ統合用のツールとして、DBからデータを取得するという状況がよくあります。
ということで、DBからデータを取得する際の方法を簡単にまとめてみました。
※ PDIについてはこちらを参照してください。

テーブル入力ステップ(Table input Step)

DBからデータを取得する方法の代表的なものがテーブル入力ステップです。
設定画面はこんな感じです。

PDI_Table_01.png

データソースの設定する

まず、DBへの接続設定を行ないます。
設定画面の「データソース名」の右にある「新規作成」ボタンから以下の画面で設定します。
今回は、Spoon起動時にサンプルデータ用として内包されているH2DBに接続してみます。

接続テストがOKであれば、OKボタンを押して設定を保存します。
すると、データソース設定画面で設定した「接続名」が選択されています。

SQLを書いてデータを抽出する

DBへの接続設定ができたら、あとは普通にSQLを書けばデータを取得することができます。
そのまま書いてもいいですが、今回はサンプルデータを使用しているため、テーブル名とかがわかりませんので、「データベースエクスプローラー」を使用して、テーブル名やカラムを選択したいと思います。

「フィールド名をSQLに追加しますか?」というポップアップが出てくるので「はい」を押すと以下のようにSQLが作成されます。

最後に、上記画面の下方中央部にある「プレビュー」を押すと、実際にSQLを実行してデータが取得できるかを確認することができます。
PDI_Table_06.png

データ抽出後の設定

DBからデータが取得できたら、あとは通常のデータ操作をPDI上で行う事になります。
例えば、以下のように、DBから取得したデータとCSVから取得したデータをJoinし、特定条件でデータのフィルタリングを行ない必要のないデータを削除(テキストファイルに出力)し、最終的に必要なデータのみ別のDBに出力するみたいなことが可能です。

データベースエクスプローラーのその他の機能

今回の趣旨とはちょっと変わりますが、データベースエクスプローラーはテーブルを選択してSQLを自動的に作成するためだけではなく、別の機能も持っているので簡単にまとめておきます。
PDI_Table_09_a.png

プレビュー系や行数カウントは、そのままの意味なので割愛します。

レイアウト表示は、テーブルを構成しているカラムやカラムの型等を確認することができます。
PDI_Table_10.png

DDLは、選択しているテーブルのCreate Table文を表示します。
SQLビューは、別途Windowを表示して、その中でSQLを自由に記述してプレビューすることができる機能です。
トランケートテーブルも上記のようなWindowが表示されますが、その中にあらかじめTRUNCATE文が記載されています。

データプロファイルは、以下のように、各カラムの最小、最大、合計、平均、標準偏差を出してくれます。中央値が取れないのが残念な気もしますが、必要であれば統計情報がとれるステップも用意されているのでそちらを使うのが良いかと思います。
PDI_Table_11.png