2013年5月13日月曜日

初めてのPentaho Data Integration 5 パラメータ(Variable)

使いこなすと非常に便利なパラメータ(Variable)です。
ファイル名や検索条件など変更の為にプログラムを修正したくない場合に使います。
また相対パスを使ったファイルの指定にも使います。
CVS file inputのファイル名のように<$>マークが付いている場所、SQLを書くStep、Modified Java Script Value、Get Varialbesで使えます。

パラメータの設定は
  1. 編集 - 設定 で変換設定画面を出す
  2. パラメータタブで名前と値を設定
  3. そのままでは選択肢に現れず、使い勝手が悪いので一度、プレビューします。
  4. エラーが出ても気にしない、気にしない。
色々な指定が出来ます。
  1. <$>マークが付いている場所
    1. カーソールを持って行き、Control+スペースを押す
    2. 使用出来るパラメータがドロップダウンメニューで表示されます。
    3.  選択すると${}で囲まれたパラメータが表示されます。 手入力でもOKです。
      • 相対パスを使う場合、例えば以下のような構造でTranformationフォルダ内のTransformationからReportフォルダフォルダ内のfileを指定する場合はこんな感じで指定します。
      • ${Internal.Transformation.Filename.Directory}${file.separator}..${file.separator}..${file.separator}Report${file.separator}file
        
      • $[ASCIIコード]と手入力する事で特殊文字も入力出来ます。
  1. SQL
  2. 「Table Inputの場合、先行のステップから値を引き継ぐ」にチェックを入れないと参照されません。
  3. Modified Java Script Value
  4. 関数 - 特殊関数にあるgetVariableを使います。 1つ目の引数がパラメーター、2つ目は初期値です。
  5. Get Variables
  6. これは単純です。
変更方法は実行時にBatch, Shell Scriptで指定、Set Variables Stepで指定、Modified Java Script Valueで指定の3つです。
  1. 実行寺にBatch, Shell Scriptで指定
  2. Windowsの場合、
    pan.bat -file:"C:\temp\Variables.ktr" -param:COUNTRY="France"
    Linuxの場合、
    sh pan.sh -file:"/home/somebody/Variables.ktr" -param:COUNTRY="France"
  3. Set Variables Stepで設定
  4. フィールド名の値を変数名に設定します。 スコープとは影響範囲です。
    「Valid in the Java Virtual Machine」とするとJVMで共有されてしまいますので注意して下さい。
    設定した変数は同じStepでは使えず、次のStepやJobで使えるようになります。
  5. Modified Java Script Valueで設定
  6. 関数 - 特殊関数のsetVarialbesを使います。引数はフィールド名、変数、スコープの順です。
    設定した変数は同じStepでは使えず、次のStepやJobで使えるようになります。
覚えてしまえば非常に便利ですので使いこなして下さい。

0 件のコメント:

コメントを投稿