SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Pentaho ETLで
ドラッグ&ドロップ
データ変換
自己紹介
●

徳納 弘和 (とくのう ひろかず)

●

某社の工場のITシステム部門

●

39才にしてIT部門へ移動して4年目
–

●

少し覚えた言語
–

●

遅れを取り戻すべく日夜勉強中
VBA, SQL, JavaScript, Java, Perl, Shell...

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

Pentaho ETL, Oracle APEX, Mojolicious
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)
良く無い所
●

日本語の情報が少ない

●

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

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

–

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

–
●

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

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

型から外れると面倒
–

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

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

Replace in string

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

●

Row normalizer

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

●

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

Telloをarマーカーで操作する
Telloをarマーカーで操作するTelloをarマーカーで操作する
Telloをarマーカーで操作する
ssuser81580e
 
Intellij idea for php
Intellij idea for phpIntellij idea for php
Intellij idea for php
Kazuhiko Uno
 

Similar a Pentaho ETL (20)

OSC 2020 August
OSC 2020 AugustOSC 2020 August
OSC 2020 August
 
Oss LT会_20210203
Oss LT会_20210203Oss LT会_20210203
Oss LT会_20210203
 
「仙台ミラソン」行って来た
「仙台ミラソン」行って来た「仙台ミラソン」行って来た
「仙台ミラソン」行って来た
 
マイコンボード色々
マイコンボード色々マイコンボード色々
マイコンボード色々
 
DockerHubを活用してAnsibleのPlaybookを自動ビルドする
DockerHubを活用してAnsibleのPlaybookを自動ビルドするDockerHubを活用してAnsibleのPlaybookを自動ビルドする
DockerHubを活用してAnsibleのPlaybookを自動ビルドする
 
Kintoneでエンジニアが納得のいく社内システムをつくる
Kintoneでエンジニアが納得のいく社内システムをつくるKintoneでエンジニアが納得のいく社内システムをつくる
Kintoneでエンジニアが納得のいく社内システムをつくる
 
Telloをarマーカーで操作する
Telloをarマーカーで操作するTelloをarマーカーで操作する
Telloをarマーカーで操作する
 
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
 
tfug-kagoshima
tfug-kagoshimatfug-kagoshima
tfug-kagoshima
 
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか by 日本ヒューレット・パッカード株式会社 後藤宏
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか  by 日本ヒューレット・パッカード株式会社 後藤宏[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか  by 日本ヒューレット・パッカード株式会社 後藤宏
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか by 日本ヒューレット・パッカード株式会社 後藤宏
 
Intellij idea for php
Intellij idea for phpIntellij idea for php
Intellij idea for php
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
 
Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2
 
打ち破れ!初心者の壁!~非IT系独習者物語~
打ち破れ!初心者の壁!~非IT系独習者物語~打ち破れ!初心者の壁!~非IT系独習者物語~
打ち破れ!初心者の壁!~非IT系独習者物語~
 
Open capi meetup20180305
Open capi meetup20180305Open capi meetup20180305
Open capi meetup20180305
 
Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用
 
Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話
 
OpenCAPI meetup 20180702
OpenCAPI meetup 20180702OpenCAPI meetup 20180702
OpenCAPI meetup 20180702
 
Tensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャTensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャ
 
20130313_i18n_history_and_future
20130313_i18n_history_and_future20130313_i18n_history_and_future
20130313_i18n_history_and_future
 

Más de Hirokazu 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