SlideShare a Scribd company logo
8/28 16:20 ~ 17:00
使⽤Pentaho Kettle
ETL做系統資料後盾
范建銘 林韵馨
團隊介紹
• 2008~2009 JAVA信⽤用卡M-FES
• 2010~2016 PHP 業績計算
• 2012~ PHP ⾦金金流串串接
• 2016~ open source 內部系統使⽤用
• 2017~ AWS Serverless 推播系統
❖ 2018 IThome Serviceless All-star
• 2018~ GraphDatabase-arangoDB
❖ 2018 IThome ModernWeb
About me
在這開始啦
為什麼想要⽤Kettle︖
因為懶得寫程式......
❖ 好久好久以前,有個系統.....
❖ 每天都要新增1.2隻排程程式,⽽且都從0開始
❖ ⼀個⽉下來....每天都在刻排程,我的⼈⽣不是
在刻排程
❖ 有沒有我滑鼠點⼀點就能跑的東西︖
❖ SSIS(SQL Server Integration Services) ?
2019 Modernweb 使用 Pentaho Kettle ETL 做系統資料後盾
花了兩星期,我找到啦~~~
先談談什麼是ETL
❖ E(Extract) :提取資料
❖ T (Transform):轉換資料型態
❖ L (Load) :載入資料
❖
E T L
資料轉換

資料融合
各種資料源
匯入資料庫

HTTP
WEB middle
RDBAP中間層介⾯層
WEB middle
AP中間層介⾯層 RDB
WEB middle
ETL
NOSQLAP中間層介⾯層
RDB
RDB
ETL
資料檔案
雲端服務 AWS S3
賴福 爹摩
LIVE DEMO
魔咒
DEMO的傢私
❖ kettle下載位置
❖ https://sourceforge.net/projects/pentaho/
❖ LAB環境建置及範例:docker-compose
❖ https://github.com/FreddyFan1011/modernweb-kettle
❖ COSCUP基礎教學:
❖ SlideShare:https://www.slideshare.net/FreddyFan1/2019-coscup-
etlkettle
❖ GITHUB:https://github.com/FreddyFan1011/coscup-kettle
DEMO 說明
撈資料庫
判斷性別
新增欄位
產出
女性報表
產出
男性報表
開始
取得資料
SEX=1
SEX=0 產出報表
產出報表
區分
性別
組JSON
HTTP
POST
response
POST
做檔案
HTTP傳輸
有限狀態機的設計
FSM(Finite State Machine)
❖ 從⼀個『起始狀態』,經過⼀系列的過程處理,最終到
達『結束狀態』
出處:https://zh.wikipedia.org/wiki/有限状态机
你砍砍~我們怎麼玩Kettle的
案例1:
開始
撈資料庫
區分⼿機作業
系統分檔
產出檔案
FTP
上傳檔案
取得檔案資訊
IOS
取得檔案資訊
Android
HTTP
POST
IOS作業
安卓作業
檔案傳送
IOS URL
完成
安卓URL
2019 Modernweb 使用 Pentaho Kettle ETL 做系統資料後盾
檔案產出
檔案產出
FTP設定
FTP設定
SLEEP…….
SLEEP…….
取得檔案資訊
取得檔案資訊
API URL GET
變數組合成新變數
變數組合成新變數
${變數}
案例2:
確認資料庫
確認資料有無
Mail 寄送
資料操作
開始
驗證資料
沒資料
作業失敗
有資料
作業成功
完成
2019 Modernweb 使用 Pentaho Kettle ETL 做系統資料後盾
確認DB存活
確認DB存活
確認DB內有無要的資料
確認DB內有無要的資料
成功失敗發MAIL通知
案例3:
確認A APP
有無推播
確認B APP
有無推播
確認C APP
有無推播
確認D APP
有無推播
產A⽂案檔
產B⽂案檔
產C⽂案檔
產D⽂案檔
上傳
雲端
開始 資料庫⽂案
shell操作
完成
2019 Modernweb 使用 Pentaho Kettle ETL 做系統資料後盾
併⾏處理
併⾏處理
產出⽂案檔
產出⽂案檔
SHELL執⾏動作
SHELL執⾏動作
定期執⾏
❖ crontab 就可以了!!
❖ sh kitchen.sh -file=XXX.kjb
❖ sh pan.sh -file=XXX.ktr
❖ 實際證明跑排程不⽤灌桌⾯
❖ 沒GUI較省效能
有雷嗎︖當然有!已進入雷區
效能問題
JVM的預設值設定:
PENTAHO_DI_JAVA_OPTIONS=
“-Xms1024m -Xmx2048m -XX:MaxPermSize=256m”
⽬前實驗最⼩的值:
“-Xms50m -Xmx100m -XX:MaxPermSize=256m”
JVM最⼤大允許分配
的非堆記憶體
JVM初始分配的堆記
憶體 及 最⼤大允許分配
在spoon.sh
設定
初期沒有完整的教學資源
❖ 極少社群討論
❖ only English…..
現⾏教學資源
❖ 官⽅社群(Hitachi)出來啦:https://wiki.pentaho.com/
❖ 簡體中⽂討論出現
AA902678
今天介紹
的部分
Data Mining
Dashboards Analysis
Reporting
⾃⼰要做靠⾃⼰!!
–AWS SA Pahud
「Be a builder, not a coder.」
媽!我⼜又來來這了了!!
請⼤大家跟我合照^^”
THANK YOU!!
塞Maria DB資料
進入DB容器內
docker exec -it c7f2cd8ed93d /bin/bash
mysql -u root -pmodernweb -h 127.0.0.1 -Pmodernweb
CREATE DATABASE modernweb;
use modernweb;
CREATE TABLE customer(
name VARCHAR(50),
sex VARCHAR(1),
email VARCHAR(50)
);
INSERT INTO customer(name, sex, email)
VALUES('Alllen', '1', 'allen@modernweb.com'),
('Michelle', '0', 'Michelle@modernweb.com'),
('Joy', '1', 'joy@modernweb.com'),
('Irta', '0', 'irta@modernweb.com'),
('Robert', '1', 'robert@modernweb.com'),
('David', '1', 'david@modernweb.com'),
('Maggie', '0', 'maggie@modernweb.com');

More Related Content

PPTX
Linux Server 冗長化~リアルタイム同期でラクラク運用~
miraitas
 
PDF
Scapyで作る・解析するパケット
Takaaki Hoyo
 
PDF
NumPyが物足りない人へのCython入門
Shiqiao Du
 
PDF
PEZY-SC programming overview
Ryo Sakamoto
 
PDF
システム開発素人が深層学習を用いた画像認識で麻雀点数計算するLINEbotを作ったハナシ
BrainPad Inc.
 
DOCX
系統程式 - 第二章
鍾誠 陳鍾誠
 
PDF
良い?悪い?コードコメントの書き方
Shigenori Sagawa
 
PDF
Allocators@C++11
Cryolite
 
Linux Server 冗長化~リアルタイム同期でラクラク運用~
miraitas
 
Scapyで作る・解析するパケット
Takaaki Hoyo
 
NumPyが物足りない人へのCython入門
Shiqiao Du
 
PEZY-SC programming overview
Ryo Sakamoto
 
システム開発素人が深層学習を用いた画像認識で麻雀点数計算するLINEbotを作ったハナシ
BrainPad Inc.
 
系統程式 - 第二章
鍾誠 陳鍾誠
 
良い?悪い?コードコメントの書き方
Shigenori Sagawa
 
Allocators@C++11
Cryolite
 

What's hot (20)

DOCX
系統程式 -- 第 1 章 系統軟體
鍾誠 陳鍾誠
 
PDF
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
Satoshi Shimazaki
 
PDF
MySQLerの7つ道具 plus
yoku0825
 
PDF
مراجعة مختصرة لممارسات ترميز RDA / ترجمة محمد عبدالحميد معوض
Muhammad Muawwad
 
PDF
アジャイル開発のストーリーをGherkin記法で作成
Shinya Nakajima
 
PPTX
DevOpsって何?
Gosuke Miyashita
 
PDF
Spectacular Future with clojure.spec
Kent Ohashi
 
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
 
PDF
Laravelの検索機能の実装方法
yoshitaro yoyo
 
PDF
realpathキャッシュと OPcacheの面倒すぎる関係
Yoshio Hanawa
 
PDF
REST API のコツ
pospome
 
PDF
Tagging and Folksonomy Schema Design for Scalability and Performance
Eduard Bondarenko
 
ODP
AllDayDevOps ZAP automation in CI
Simon Bennetts
 
PDF
What's New in MySQL 5.7 InnoDB
Mikiya Okuno
 
PDF
DVGA writeup
Yu Iwama
 
PPTX
HttpClient詳解、或いは非同期の落とし穴について
Yoshifumi Kawai
 
PDF
QoS for ROS 2 Dashing/Eloquent
Hideki Takase
 
PDF
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
 
PDF
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
 
PDF
91APP: 從 "零" 開始的 DevOps
Andrew Wu
 
系統程式 -- 第 1 章 系統軟體
鍾誠 陳鍾誠
 
OSC2011 Tokyo/Spring 自宅SAN友の会(前半)
Satoshi Shimazaki
 
MySQLerの7つ道具 plus
yoku0825
 
مراجعة مختصرة لممارسات ترميز RDA / ترجمة محمد عبدالحميد معوض
Muhammad Muawwad
 
アジャイル開発のストーリーをGherkin記法で作成
Shinya Nakajima
 
DevOpsって何?
Gosuke Miyashita
 
Spectacular Future with clojure.spec
Kent Ohashi
 
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
 
Laravelの検索機能の実装方法
yoshitaro yoyo
 
realpathキャッシュと OPcacheの面倒すぎる関係
Yoshio Hanawa
 
REST API のコツ
pospome
 
Tagging and Folksonomy Schema Design for Scalability and Performance
Eduard Bondarenko
 
AllDayDevOps ZAP automation in CI
Simon Bennetts
 
What's New in MySQL 5.7 InnoDB
Mikiya Okuno
 
DVGA writeup
Yu Iwama
 
HttpClient詳解、或いは非同期の落とし穴について
Yoshifumi Kawai
 
QoS for ROS 2 Dashing/Eloquent
Hideki Takase
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
 
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
 
91APP: 從 "零" 開始的 DevOps
Andrew Wu
 
Ad

More from Freddy Fan (10)

PPTX
2024/11/29 DevOps Taiwan #64 : 從初建到進階:打造符合公司需求的混合雲端 GitLab DevOps 流水線
Freddy Fan
 
PPTX
2024 Hello World Dev Conference 從觀察到實踐 打造符合公司需求的GitLab DevOps流水線
Freddy Fan
 
PPTX
DevOpsDays Taipei 2023 - 使用Robot Framework實踐BizDevOps
Freddy Fan
 
PDF
2020 CloudEege Summit 用Serverless真的方便又省錢?
Freddy Fan
 
PPTX
2020 COSCUP 使用開源資料庫 arangoDB的奇幻之旅
Freddy Fan
 
PDF
2019 COSCUP 用ETLKettle打造程序流水線
Freddy Fan
 
PDF
爭什麼,PHP + ETL + Serverless 摻在一起做成撒尿牛丸啊
Freddy Fan
 
PDF
SRE讀書會-Continuous Delivery Chaper 9
Freddy Fan
 
PDF
[ModernWeb2018] Graph Database應用思考模式
Freddy Fan
 
PDF
20180321 使用aws 建立 notification system
Freddy Fan
 
2024/11/29 DevOps Taiwan #64 : 從初建到進階:打造符合公司需求的混合雲端 GitLab DevOps 流水線
Freddy Fan
 
2024 Hello World Dev Conference 從觀察到實踐 打造符合公司需求的GitLab DevOps流水線
Freddy Fan
 
DevOpsDays Taipei 2023 - 使用Robot Framework實踐BizDevOps
Freddy Fan
 
2020 CloudEege Summit 用Serverless真的方便又省錢?
Freddy Fan
 
2020 COSCUP 使用開源資料庫 arangoDB的奇幻之旅
Freddy Fan
 
2019 COSCUP 用ETLKettle打造程序流水線
Freddy Fan
 
爭什麼,PHP + ETL + Serverless 摻在一起做成撒尿牛丸啊
Freddy Fan
 
SRE讀書會-Continuous Delivery Chaper 9
Freddy Fan
 
[ModernWeb2018] Graph Database應用思考模式
Freddy Fan
 
20180321 使用aws 建立 notification system
Freddy Fan
 
Ad

2019 Modernweb 使用 Pentaho Kettle ETL 做系統資料後盾