pentaho etl

25
Pentaho ETLドラッグ&ドロップ データ変換

Upload: hirokazu-tokuno

Post on 25-Jun-2015

2.640 views

Category:

Self Improvement


1 download

DESCRIPTION

JAWS-UG 会津 第3回勉強会 with エフスタ!!での発表資料。説明出来なかったページ付き。

TRANSCRIPT

Page 1: Pentaho ETL

Pentaho ETLでドラッグ&ドロップデータ変換

Page 2: Pentaho ETL

自己紹介

● 徳納 弘和 (とくのう ひろかず)● 某社の工場のITシステム部門● 39才にしてIT部門へ移動して4年目

– 遅れを取り戻すべく日夜勉強中

● 少し覚えた言語

– VBA, SQL, JavaScript, Java, Perl, Shell...

● コードを極力書かないのがお気に入り

– Pentaho ETL, Oracle APEX, Mojolicious

Page 3: Pentaho ETL

Pentaho ETLって?

● Pentaho– 世界で最も人気のあるオープンソースETLツール

– 他にBIサーバー, OLAP, Data Miningなども

ETL (Extract, Transform, Load)– 何かを持って来て、加工して、出力する事

Page 4: Pentaho ETL

何が良いの?

● Open Sourceで無料!● 人気がある→活発な開発、長期サポート● 有償サポートもあり

● 「プログラム」無しで簡単に処理出来る

– ノンプログラマの学習コストが低い

● 高速処理 : 基本は行単位の並列実行● 多彩な標準部品

– 入出力 : Text, XML, DB(40種+!), Excel, CIFS, Mail

– 複雑な処理はJavaScriptなどで記述可能

Page 5: Pentaho ETL

ドラッグ&ドロップ

● 基本はマウス操作

Page 6: Pentaho ETL

処理が見える

● データの流れが見える

● 前のStepの完了を待たずに次の処理が開始– 特にDBなど遅いデバイスを使う場合に完了が早い

Page 7: Pentaho ETL

DDL自動作成、SQL実行

Page 8: Pentaho ETL

テーブル修正のSQLも自動作成

Page 9: Pentaho ETL

こんな事も出来ます

● データのグラフ表示、分析

– ぱっとインタラクティブな分析

● Clusteringで分散処理● 流行のHadoop連携● リモート処理用Webサーバー(Carte)

Page 10: Pentaho ETL

良く無い所

● 日本語の情報が少ない

● 「普通のプログラマ」に受けが良く無い

– 並列処理 : 感覚的にShell scriptに近い

– GUI : 何でもクリックは手間

– 素人っぽさ : この手のソフトは世界中で反発される

– 「いつも通り」に出来ない : 経験者利点がなくなる

● 型から外れると面倒

– Pentahoに限らず、Framework共通の欠点

– 入力列が未確定の場合は複雑な処理が必要● ETLファイルを動的に修正するとか、、、

Page 11: Pentaho ETL

ご清聴ありがとうございました

Page 12: Pentaho ETL

以下は時間が足りず、話せなかった内容です。

Page 13: Pentaho ETL

色々な標準部品 入力

● CSV input 1ファイルの読み込み。

● Text file input 複数のファイルの読み込み。正規表現も可

● Generate Rows 空や定数の入力を作る

● Get File Names フォルダ内のファイル名を取得

● Data Grid Row毎に異なる値を設定可能

● Table input データベースからの読み込み

Page 14: Pentaho ETL

色々な標準部品 出力

● Table output DBへの書き込み

  入れ替えと追加だけ出来、変更は出来ない

● Update データベースの変更だけが出来る

● Insert / Update データベースの追加と変更が出来る

● Delete データベースの削除

● Text file output ファイルへの書き込み

Page 15: Pentaho ETL

色々な標準部品 変換

● Select values 残すフィールドの指定

削除するフィールドの指定

フィールド名の変更、型変換

● Calculator 計算。 機能が少ないので冗長になる。

Modified Java Script Valueを代わりに使用 ● Replace in string 文字列の置き換え

1フィールドの置き換えだけの場合に使います。 複数の処理になるとModified Java Script Valueを使う事が多いです。

● Row normalizer 指定行を列に変換。使い方が難しい。

● Row denormalizer 複数の列を行に変換。使い方が難しい。

● Sort rows 並べ替え。良く使います

Page 16: Pentaho ETL

色々な標準部品 ユーティリティ

● Write to log デバッグに重要ですので出力しましょう

● Mail e-mailを送る

Page 17: Pentaho ETL

色々な標準部品 フロー

● Abort エラーや異常値が見つかったら中断

● Append streams 1つの入力の後に別の入力を繋げて出力

● Dummy (do nothing) デバッグに追加する事もある

複数入力を順序を気にせず繋げる場合にも

● Filter rows フィルターです。 非常に良く使います。

● Java Filter 分岐条件をJava Expressionで書ける

● Switch / Case 条件によって複数の分岐先を指定

Page 18: Pentaho ETL

色々な標準部品 スクリプト

● Modified Java Script

Javascriptを使って色々な処理が出来る

新しい列の作成、文字列の切り出し、

計算、型変換など。

使いすぎるとGUIの意味が無い、、、

● Execute SQL script 入力を元にSQLを実行

Where条件でDeleteとか

Page 19: Pentaho ETL

色々な標準部品 ルックアップ

● Stream lookup フィールドの値が同じ場合に

「ステップ名」のフィールドを取得

● Database lookup 入力を元にデータベースに問い合わせて

フィールドを取得

毎回DBに問い合わせるので遅い。

大量のデータを処理するなら別にTable

inputとStream lookupを使った方が良い。

● Database join Database lookupは表かビューに対して

単純なlookupしか出来ないが、

joinでは複雑なSQLを書く事が出来る

Page 20: Pentaho ETL

色々な標準部品 結合

● Merge Join SQLで言う所のInner Join, Outer Join

● Merge Rows (diff) 二つの入力の差を出力

Page 21: Pentaho ETL

色々な標準部品 統計

● Group by ユニークはRowだけを出力したり、件数を

数えたり、合計を計算したりする

文字列を連結する事も可能

● Analytic Query 前後のRowの情報を取得する事が出来る

● Sample rows テストでデータを減らしたりする場合に

使う事が多い

先頭行だけ取得したい時にも使う

Page 22: Pentaho ETL

色々な標準部品 ジョブ

● Copy rows to result

入力をメモリに保持

● Get rows from result

メモリから入力を取得

● Get Variables 変数の取得

● Set Variables 変数の設定

Page 23: Pentaho ETL

色々な標準部品 マッピング

● Mapping (sub-transformation)

いわゆるサブルーチンの呼び出し

● Mapping input step

● サブルーチンでの入力取得

● Mapping output step

サブルーチンでの出力

Page 24: Pentaho ETL

遅いStepも一目で見える

Page 25: Pentaho ETL

参考

● Pentaho.com(英語)● Pentaho Community(英語)● 開発者Matt Castersのブログ(英語)● Adventures with Open Source BI(英語)● Pentaho日本正規代理店KSKアナリティクス● Think IT Pentaho徹底解説● 技術的に自由なブログ