SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Pentaho ETLで
ドラッグ&ドロップ
データ変換
自己紹介
● 德納 弘和 (とくのう ひろかず)
● 某社の工場のITシステム部門
● 39才にして IT部門へ移動して4年目
– 遅れを取り戻すべく日夜勉強中
● 少し覚えた言語
– VBA, SQL, JavaScript, Java, Perl, Shell...
● コードを極力書かないのがお気に入り
– Pentaho ETL, Oracle APEX, Mojolicious
2013年の学びと挑戦
● ユニケージ開発手法
● Perl, Mojolicious
● Jenkins
● 自動テスト jUnit, Mockito, shUnit2
● Twitter Bootstrap, Google Maps APIなど
● 勉強会の楽しさ!
– エフスタ!
– オープンデータカフェ会津
– JAWS-UG会津
● CODE for AIZU参加
2014年の学びと挑戦
● LODチャレンジ応募
● Hack for Town in Aizu参加
● Meteor(Node.js, MongoDB) on Nitrous.IO
● GitHubデビュ〜
● Amazon DynamoDB
● DevLOVE大阪デビュ〜 今ここ
Pentaho ETLって?
● Pentaho
– 世界で最も人気のあるオープンソースETLツール
– 他にBIサーバー, OLAP, Data Miningなども
ETL (Extract, Transform, Load)
– 何かを持って来て、加工して、出力する事
何が良いの?
● Open Sourceで無料!
● 人気がある→活発な開発、長期サポート
● 有償サポートもあり
● 「プログラム」無しで簡単に処理出来る
– ノンプログラマの学習コストが低い
● 高速処理 : 基本は行単位の並列実行
● 多彩な標準部品
– 入出力 : Text, XML, DB(40種+!), Excel, CIFS, Mail
– 複雑な処理はJavaScriptなどで記述可能
ドラッグ&ドロップ
● 基本はマウス操作
処理が見える
● データの流れが見える
● 前のStepの完了を待たずに次の処理が開始
– 特にDBなど遅いデバイスを使う場合に完了が早い
DDL自動作成、SQL実行
テーブル修正のSQLも自動作成
こんな事も出来ます
● データのグラフ表示、分析
– ぱっとインタラクティブな分析
● Clusteringで分散処理
● 流行のHadoop連携
● リモート処理用Webサーバー(Carte)
良く無い所
● 日本語の情報が少ない
● 「普通のプログラマ」に受けが良く無い
– 並列処理 : 感覚的にShell scriptに近い
– GUI : 何でもクリックは手間
– 素人っぽさ : この手のソフトは世界中で反発される
– 「いつも通り」に出来ない : 経験者利点がなくなる
● 型から外れると面倒
– Pentahoに限らず、Framework共通の欠点
– 入力列が未確定の場合は複雑な処理が必要
● ETLファイルを動的に修正するとか、、、
ご清聴ありがとうございました
以下は時間が足りず、
話せなかった内容です。
色々な標準部品 入力
● CSV input 1ファイルの読み込み。
● Text file input 複数のファイルの読み込み。正規表現も可
● Generate Rows 空や定数の入力を作る
● Get File Names フォルダ内のファイル名を取得
● Data Grid Row毎に異なる値を設定可能
● Table input データベースからの読み込み
色々な標準部品 出力
● Table output DBへの書き込み
  入れ替えと追加だけ出来、変更は出来ない
● Update データベースの変更だけが出来る
● Insert / Update データベースの追加と変更が出来る
● Delete データベースの削除
● Text file output ファイルへの書き込み
色々な標準部品 変換
● Select values 残すフィールドの指定
削除するフィールドの指定
フィールド名の変更、型変換
● Calculator 計算。 機能が少ないので冗長になる。
Modified Java Script Valueを代わりに使用
● Replace in string 文字列の置き換え
1フィールドの置き換えだけの場合に使いま
す。 複数の処理になるとModified Java
Script Valueを使う事が多いです。
● Row normalizer 指定行を列に変換。使い方が難しい。
● Row denormalizer 複数の列を行に変換。使い方が難しい。
● Sort rows 並べ替え。良く使います
色々な標準部品 ユーティリティ
● Write to log デバッグに重要ですので出力しましょう
● Mail e-mailを送る
色々な標準部品 フロー
● Abort エラーや異常値が見つかったら中断
● Append streams 1つの入力の後に別の入力を繋げて出力
● Dummy (do nothing) デバッグに追加する事もある
複数入力を順序を気にせず繋げる場合にも
● Filter rows フィルターです。 非常に良く使います。
● Java Filter 分岐条件をJava Expressionで書ける
● Switch / Case 条件によって複数の分岐先を指定
色々な標準部品 スクリプト
● Modified Java Script
Javascriptを使って色々な処理が出来る
新しい列の作成、文字列の切り出し、
計算、型変換など。
使いすぎるとGUIの意味が無い、、、
● Execute SQL script 入力を元にSQLを実行
Where条件でDeleteとか
色々な標準部品 ルックアップ
● Stream lookup フィールドの値が同じ場合に
「ステップ名」のフィールドを取得
● Database lookup 入力を元にデータベースに問い合わせて
フィールドを取得
毎回DBに問い合わせるので遅い。
大量のデータを処理するなら別にTable
inputとStream lookupを使った方が良い。
● Database join Database lookupは表かビューに対して
単純なlookupしか出来ないが、
joinでは複雑なSQLを書く事が出来る
色々な標準部品 結合
● Merge Join SQLで言う所のInner Join, Outer Join
● Merge Rows (diff) 二つの入力の差を出力
色々な標準部品 統計
● Group by ユニークはRowだけを出力したり、件数を
数えたり、合計を計算したりする
文字列を連結する事も可能
● Analytic Query 前後のRowの情報を取得する事が出来る
● Sample rows テストでデータを減らしたりする場合に
使う事が多い
先頭行だけ取得したい時にも使う
色々な標準部品 ジョブ
● Copy rows to result
入力をメモリに保持
● Get rows from result
メモリから入力を取得
● Get Variables 変数の取得
● Set Variables 変数の設定
色々な標準部品 マッピング
● Mapping (sub-transformation)
いわゆるサブルーチンの呼び出し
● Mapping input step
● サブルーチンでの入力取得
● Mapping output step
サブルーチンでの出力
遅いStepも一目で見える
参考
● Pentaho.com(英語)
● Pentaho Community(英語)
● 開発者Matt Castersのブログ(英語)
● Adventures with Open Source BI(英語)
● Pentaho日本正規代理店KSKアナリティクス
● Think IT Pentaho徹底解説
● 技術的に自由なブログ

Más contenido relacionado

Similar a Pentaho ETL@DevLOVE関西

やって分かった自動テスト
やって分かった自動テストやって分かった自動テスト
やって分かった自動テストHirokazu Tokuno
 
「仙台ミラソン」行って来た
「仙台ミラソン」行って来た「仙台ミラソン」行って来た
「仙台ミラソン」行って来たHirokazu Tokuno
 
シェル芸勉強会へようこそ
シェル芸勉強会へようこそシェル芸勉強会へようこそ
シェル芸勉強会へようこそKatsuya Tashiro
 
What is doobie? - database access for scala -
What is doobie? - database access for scala -What is doobie? - database access for scala -
What is doobie? - database access for scala -chibochibo
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチTomoharu ASAMI
 
ななめ45°から見たJavaOne
ななめ45°から見たJavaOneななめ45°から見たJavaOne
ななめ45°から見たJavaOneAdvancedTechNight
 
JDK 10 へようこそ
JDK 10 へようこそJDK 10 へようこそ
JDK 10 へようこそDavid Buck
 
Scala + Finagleの魅力
Scala + Finagleの魅力Scala + Finagleの魅力
Scala + Finagleの魅力Kota Mizushima
 
RealtimeTweakPickerMode
RealtimeTweakPickerModeRealtimeTweakPickerMode
RealtimeTweakPickerModeYoh Akiyama
 
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大openrtm
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGUehara Junji
 
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPAJJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPANaoya Kojima
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
TechDo Goハンズオン#3
TechDo Goハンズオン#3TechDo Goハンズオン#3
TechDo Goハンズオン#3privatemy
 
オープンソース・データベースの最新事情
オープンソース・データベースの最新事情オープンソース・データベースの最新事情
オープンソース・データベースの最新事情Meiji Kimura
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発Kota Mizushima
 
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMikiya Okuno
 

Similar a Pentaho ETL@DevLOVE関西 (20)

やって分かった自動テスト
やって分かった自動テストやって分かった自動テスト
やって分かった自動テスト
 
「仙台ミラソン」行って来た
「仙台ミラソン」行って来た「仙台ミラソン」行って来た
「仙台ミラソン」行って来た
 
シェル芸勉強会へようこそ
シェル芸勉強会へようこそシェル芸勉強会へようこそ
シェル芸勉強会へようこそ
 
What is doobie? - database access for scala -
What is doobie? - database access for scala -What is doobie? - database access for scala -
What is doobie? - database access for scala -
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
 
ななめ45°から見たJavaOne
ななめ45°から見たJavaOneななめ45°から見たJavaOne
ななめ45°から見たJavaOne
 
JDK 10 へようこそ
JDK 10 へようこそJDK 10 へようこそ
JDK 10 へようこそ
 
Scala + Finagleの魅力
Scala + Finagleの魅力Scala + Finagleの魅力
Scala + Finagleの魅力
 
RealtimeTweakPickerMode
RealtimeTweakPickerModeRealtimeTweakPickerMode
RealtimeTweakPickerMode
 
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
 
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPAJJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPA
 
Nds#24 単体テスト
Nds#24 単体テストNds#24 単体テスト
Nds#24 単体テスト
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
TechDo Goハンズオン#3
TechDo Goハンズオン#3TechDo Goハンズオン#3
TechDo Goハンズオン#3
 
オープンソース・データベースの最新事情
オープンソース・データベースの最新事情オープンソース・データベースの最新事情
オープンソース・データベースの最新事情
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発
 
Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)
 
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatech
 

Más de Hirokazu Tokuno

プログラミング講座【小学校高学年向け】 R4-20221227.pdf
プログラミング講座【小学校高学年向け】 R4-20221227.pdfプログラミング講座【小学校高学年向け】 R4-20221227.pdf
プログラミング講座【小学校高学年向け】 R4-20221227.pdfHirokazu Tokuno
 
プログラミング講座【小学校高学年向け】 R3-20211128.pdf
プログラミング講座【小学校高学年向け】 R3-20211128.pdfプログラミング講座【小学校高学年向け】 R3-20211128.pdf
プログラミング講座【小学校高学年向け】 R3-20211128.pdfHirokazu Tokuno
 
(非公式) 福島県 新型コロナウイルス感染症対策サイトに 貢献しよう
(非公式) 福島県 新型コロナウイルス感染症対策サイトに 貢献しよう(非公式) 福島県 新型コロナウイルス感染症対策サイトに 貢献しよう
(非公式) 福島県 新型コロナウイルス感染症対策サイトに 貢献しようHirokazu Tokuno
 
Stripe触ってみた! Jekyll + AWS S3に組み込み
Stripe触ってみた! Jekyll + AWS S3に組み込みStripe触ってみた! Jekyll + AWS S3に組み込み
Stripe触ってみた! Jekyll + AWS S3に組み込みHirokazu Tokuno
 
福島県職員向けプログラミング
福島県職員向けプログラミング福島県職員向けプログラミング
福島県職員向けプログラミングHirokazu Tokuno
 
<女性限定>在宅ワーク講座 公開版 Django入門
<女性限定>在宅ワーク講座 公開版 Django入門<女性限定>在宅ワーク講座 公開版 Django入門
<女性限定>在宅ワーク講座 公開版 Django入門Hirokazu Tokuno
 
小学校先生向けプログラミングワークショップ
小学校先生向けプログラミングワークショップ小学校先生向けプログラミングワークショップ
小学校先生向けプログラミングワークショップHirokazu Tokuno
 
シビックテックの勧め
シビックテックの勧めシビックテックの勧め
シビックテックの勧めHirokazu Tokuno
 
徳納的シビックテック
徳納的シビックテック徳納的シビックテック
徳納的シビックテックHirokazu Tokuno
 
マイコンボード色々 2017.03
マイコンボード色々 2017.03マイコンボード色々 2017.03
マイコンボード色々 2017.03Hirokazu Tokuno
 
マイコンボード色々
マイコンボード色々マイコンボード色々
マイコンボード色々Hirokazu Tokuno
 
Kickstart, Puppet, Docker
Kickstart, Puppet, DockerKickstart, Puppet, Docker
Kickstart, Puppet, DockerHirokazu Tokuno
 
電子工作部(未公認) 第一回 後付け資料
電子工作部(未公認) 第一回 後付け資料電子工作部(未公認) 第一回 後付け資料
電子工作部(未公認) 第一回 後付け資料Hirokazu Tokuno
 
コードを書かずにIoT, IoT without-coding
コードを書かずにIoT, IoT without-codingコードを書かずにIoT, IoT without-coding
コードを書かずにIoT, IoT without-codingHirokazu Tokuno
 

Más de Hirokazu Tokuno (20)

ChatGPTでしりとり
ChatGPTでしりとりChatGPTでしりとり
ChatGPTでしりとり
 
ChatGPTのLINEボット
ChatGPTのLINEボットChatGPTのLINEボット
ChatGPTのLINEボット
 
初めてのRoblox.pdf
初めてのRoblox.pdf初めてのRoblox.pdf
初めてのRoblox.pdf
 
プログラミング講座【小学校高学年向け】 R4-20221227.pdf
プログラミング講座【小学校高学年向け】 R4-20221227.pdfプログラミング講座【小学校高学年向け】 R4-20221227.pdf
プログラミング講座【小学校高学年向け】 R4-20221227.pdf
 
プログラミング講座【小学校高学年向け】 R3-20211128.pdf
プログラミング講座【小学校高学年向け】 R3-20211128.pdfプログラミング講座【小学校高学年向け】 R3-20211128.pdf
プログラミング講座【小学校高学年向け】 R3-20211128.pdf
 
(非公式) 福島県 新型コロナウイルス感染症対策サイトに 貢献しよう
(非公式) 福島県 新型コロナウイルス感染症対策サイトに 貢献しよう(非公式) 福島県 新型コロナウイルス感染症対策サイトに 貢献しよう
(非公式) 福島県 新型コロナウイルス感染症対策サイトに 貢献しよう
 
Stripe触ってみた! Jekyll + AWS S3に組み込み
Stripe触ってみた! Jekyll + AWS S3に組み込みStripe触ってみた! Jekyll + AWS S3に組み込み
Stripe触ってみた! Jekyll + AWS S3に組み込み
 
福島県職員向けプログラミング
福島県職員向けプログラミング福島県職員向けプログラミング
福島県職員向けプログラミング
 
<女性限定>在宅ワーク講座 公開版 Django入門
<女性限定>在宅ワーク講座 公開版 Django入門<女性限定>在宅ワーク講座 公開版 Django入門
<女性限定>在宅ワーク講座 公開版 Django入門
 
会社作ってみた
会社作ってみた会社作ってみた
会社作ってみた
 
小学校先生向けプログラミングワークショップ
小学校先生向けプログラミングワークショップ小学校先生向けプログラミングワークショップ
小学校先生向けプログラミングワークショップ
 
シビックテックの勧め
シビックテックの勧めシビックテックの勧め
シビックテックの勧め
 
徳納的シビックテック
徳納的シビックテック徳納的シビックテック
徳納的シビックテック
 
マイコンボード色々 2017.03
マイコンボード色々 2017.03マイコンボード色々 2017.03
マイコンボード色々 2017.03
 
マイコンボード色々
マイコンボード色々マイコンボード色々
マイコンボード色々
 
Kickstart, Puppet, Docker
Kickstart, Puppet, DockerKickstart, Puppet, Docker
Kickstart, Puppet, Docker
 
IoT without Wiring
IoT without WiringIoT without Wiring
IoT without Wiring
 
電子工作部(未公認) 第一回 後付け資料
電子工作部(未公認) 第一回 後付け資料電子工作部(未公認) 第一回 後付け資料
電子工作部(未公認) 第一回 後付け資料
 
One Button
One ButtonOne Button
One Button
 
コードを書かずにIoT, IoT without-coding
コードを書かずにIoT, IoT without-codingコードを書かずにIoT, IoT without-coding
コードを書かずにIoT, IoT without-coding
 

Pentaho ETL@DevLOVE関西