ユーザ用ツール

サイト用ツール


software:pentaho

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
software:pentaho [2017/11/14 08:42] dotsoftware:pentaho [2017/12/25 03:00] (現在) dot
行 1: 行 1:
- 
 ======= Pentaho Spoon ======= ======= Pentaho Spoon =======
 +
 +===== Overview =====
 +
 +Pentaho Spoon は ETL ツールであり、企業内で使用する様々なデータ(Excel, DB, CSVなど多数)に対して、以下を行うことができる。
 +
 +  * Extract: Excel, DB, CSVなどから「データを抽出」
 +  * Transform: 抽出したデータを必要に応じて変換・加工
 +  * Load: 変換・加工したデータをロード(Excel, DB, CSVなどに出力)
 +
 +このツールを利用することで「データ移行」や「集計表の作成」などの作業が簡単になることがある。
 +
 +例えば、「データ移行」においてマスタテーブルの移行などは「データ変換ロジック」があまりないため、
 +Pentaho Spoon を利用するとかなり高速にデータ移行プログラムが作成できる。
 +しかしながら「トランザクションデータ」のデータ移行などで複雑な「データ変換ロジック」が必要になる場合は、
 +Pentaho Spoon は適さない。Pentaho Spoon で「データ変換ロジック」を実装することは可能ではあるが、
 +デバッグが難しく、結果として実装に長時間掛かってしまうことがある。
 +
 +__Pentaho Spoon が向いている処理__
 +  * データ移行
 +    * マスタテーブルのデータ移行
 +    * 旧テーブルと新テーブルであまり変更がない場合のデータ移行
 +      * カラム名変更
 +      * データの単純な分割
 +  * 集計
 +    * DBテーブルから集計用のselect文を使ってデータを抽出し、報告用のExcelに出力
 +
 +__Pentaho Spoon が向いていない処理__
 +  * データ移行
 +    * 複雑なデータ変換ロジックを要するデータ移行
 +    * ピボット分析(行を列に変換)を伴うデータ移行
  
 ===== Install ===== ===== Install =====
行 12: 行 41:
   data-integration\Spoon.bat   data-integration\Spoon.bat
  
-メモリ不足で起動しない出来ない場合がある。+メモリ不足で起動しない場合がある。
 その場合は上記.batファイルをテキストエディタで開き、 その場合は上記.batファイルをテキストエディタで開き、
 以下の部分の数値を下げると良い。 以下の部分の数値を下げると良い。
  
-  PENTAHO_DI_JAVA_OPTIONS="-Xms2048m" "-Xmx2048m"+  PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" 
 + 
 +===== Docs ===== 
 + 
 +  * [[https://help.pentaho.com/Documentation|Welcome to Pentaho Documentation]] 
 +  * [[http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps|Pentaho Data Integration Steps]] 
 +    * 「テーブル入力」や「Excel出力」などのコンポーネントを Pentaho Spoon では「ステップ」と呼ぶ
  
  
行 31: 行 66:
  
 ==== DBテーブルの内容をExcelに出力する ==== ==== DBテーブルの内容をExcelに出力する ====
 +
 +{{ :software:tabletoexcel.ktr |完成後のデータ変換ファイル}}
 +(Pentaho Spoonで開くことができる。)
 +
 +
 +完成後のイメージ
 +
 +{{:software:2017-11-14_17h46_27.png?400|}}
  
   * Step1: データ変換の新規作成   * Step1: データ変換の新規作成
行 42: 行 85:
   * Step3: データソースを設定   * Step3: データソースを設定
  
-(*)今回はPentahoが用意しているサンプルDBに接続する。この設定を適切に行えば、OracleやPostgreSQLなど様々なDBに接続できる。+ 
 +__*今回はPentahoが用意しているサンプルDBに接続する。この設定を適切に行えば、OracleやPostgreSQLなど様々なDBに接続できる。__
  
   先ほど Drag&Drop した「テーブル入力」をダブルクリックして、「データソース名」付近にある「新規作成(N)...」をクリック。   先ほど Drag&Drop した「テーブル入力」をダブルクリックして、「データソース名」付近にある「新規作成(N)...」をクリック。
行 56: 行 100:
   「テスト」をクリックして「成功」が表示されれば成功。   「テスト」をクリックして「成功」が表示されれば成功。
   「OK」をクリックしてデータソースの設定は完了。   「OK」をクリックしてデータソースの設定は完了。
-  +
   * Step4: select文を設定する   * Step4: select文を設定する
 +
 +__*select文は接続するDBが解釈できるものであれば何でも発行できる。__
  
   引き続き「テーブル入力」の設定画面で「SQLの選択(S)」をクリック。   引き続き「テーブル入力」の設定画面で「SQLの選択(S)」をクリック。
行 69: 行 115:
   Spoonの左側にある「デザイン」タブを選択し、「出力」を選択して展開し、「Excel出力」をSpoon中央に Drag&Drop する。   Spoonの左側にある「デザイン」タブを選択し、「出力」を選択して展開し、「Excel出力」をSpoon中央に Drag&Drop する。
   「テーブル入力」ステップを「Shift + 左クリック」して「Excel出力」とコネクション(矢印)を設定する。   「テーブル入力」ステップを「Shift + 左クリック」して「Excel出力」とコネクション(矢印)を設定する。
-  「Excel出力」をダブルクリックして「ファイル名」に出力したExcelの場所を設定する。(「参照」から指定すると簡単。)+  「Excel出力」をダブルクリックして「ファイル名」に出力したExcelの場所を適当に設定する。(「参照」から指定すると簡単。)
  
   * Step6: データ変換の保存   * Step6: データ変換の保存
行 79: 行 125:
   [アクション(A)]->[実行(R)] を選択、「実行(L)」ボタンをクリック。   [アクション(A)]->[実行(R)] を選択、「実行(L)」ボタンをクリック。
   「Excel出力」で設定した場所にExcelが出力されていれば成功。   「Excel出力」で設定した場所にExcelが出力されていれば成功。
 +
 +==== データ移行で旧テーブルと新テーブルのカラム名が違う場合 ====
 +
 +Case Study [[software:pentaho#dbテーブルの内容をexcelに出力する|「DBテーブルの内容をExcelに出力する」]]
 +の流れで出力先を「Excel出力」ではなく「テーブル出力」ステップ(insert文)または「挿入/更新」ステップ(insert文 or update文)に変更すれば良い。
 +
 +「テーブル入力」で発行するselect文で以下のように AS 構文を利用すると、新テーブルのカラム名に変更することができる。
 +
 +  select 旧カラム名 as 新カラム名 from TABLE;
 +
 +Spoonで用意されている「選択/名前変更」ステップでカラム名を変更することもできるが、上記の方法が最も手っ取り早い。
 +
 +==== データ移行で旧テーブルと新テーブルのカラム名が違う場合(「選択/名前変更」ステップ利用版) ====
 +
 +完成後のイメージ
 +
 +{{:software:table-rename-excel.png?400|}}
 +
 +H2データベースなどはAS句をサポートしていないため、SQLでカラム名の変更ができない。
 +また、「Excel入力」や「CSV入力」などどもカラム名の変更は当然SQLで行うことはできない。
 +
 +そのような場合はSpoonで用意されている「選択/名前変更」ステップでカラム名を変更することができる。
 +
 +  * Spoonの左側にある「デザイン」タブを選択し、「変換」を選択して展開し、「選択/名前変更」をSpoon中央に Drag&Drop する。
 +  * 「選択/名前変更」ステップを「テーブル入力」と「Excel出力」との結合線上に Drag&Drop する。
 +  * 「結合を分割しますか?」で「はい」を選択。
 +  * 「選択/名前変更」ステップをダブルクリックして、「フィールドの選択」ボタンをクリック。
 +  * 変更したいカラム名を「変更名称」列に入力する。
 +  * 「OK」ボタンをクリック。
  
 ==== 空文字を空文字のまま扱う ==== ==== 空文字を空文字のまま扱う ====
software/pentaho.1510648977.txt.gz · 最終更新: 2017/11/14 08:42 by dot