SlideShare a Scribd company logo
1 of 91
Download to read offline
PDI入門 (ETL)
オープンソースBI 勉強会 #2
[2014/01/21]
TwitterID:@teruu

1/91
本日の内容
•ダウンロード
•起動
•プレビューと実行、ログ確認
•データ変換作成
–
–
–
–
–

PDI版 Hello, world!
テキストファイル入出力
Excelファイル入出力
DB入力
DB出力

ETLの処理のうち、
E(Extract:抽出)
L(Load:ロード)
を中心に紹介
T(Transform:変換)
については簡単にふれます

2/91
関連書籍

このスライドでは、左側の「Pentaho Data Integration Beginner’s Guide」の内
容を一部参考にしています。

3/91
ダウンロード
• Pentaho配布サイト
http://sourceforge.net/projects/pentaho/files/

• Pentaho配布サイト PDI
http://sourceforge.net/projects/pentaho/files/Data%20Integration/

• ダウンロード候補
– 5.0.1-stable
– 4.4.0-stable

• Windowsの場合
– pdi-ce-X.X.X-stable.zip

4/91
インストール
•ダウンロードするだけ(Javaの環境があれば)
•DBのJDBCドライバを追加
– postgresqlのドライバは同梱されている

•SourceForgeのサイトからダウンロードし、
Windowsであれば、解凍したフォルダ中の
Spoon.batをダブルクリック
•起動後、言語の設定を確認(日本語になって
いるか)
5/91
言葉の定義
•データ変換
– ステップ
– ホップ

•ジョブ
– ジョブエントリ
– ホップ

→ 今回はデータ変換だけを扱います
6/91
データ変換作成①
•PDI版Hello, world!
•作業フォルダ
– C:¥pentaho¥pdi_work

7/91
Spoon起動

Windowsの場合、Spoon.batファイルをダブ
ルクリックして起動します。

8/91
新規→データ変換

ファイル→新規→データ変換、を選
択します。

ツールバー

デザイン
タブ
キャンバス

9/91
行生成

画面左側のデザインタブで「入力」ノードを開き、一番下の
「行生成」ステップをキャンバスにドラッグする。

10/91
ダミー

「フロー」ノードを開き、「ダミー(何もしない)」ステップをキャ
ンバスにドラッグする。

11/91
ホップ(hop)

「行生成」ステップ上で、マウスのホイールをクリックし、
そのまま「ダミー」ステップまでドラッグすると、2つのス
テップを接続するホップ(矢印)が作成される。

12/91
行生成編集

「行生成」ステップをダブルクリックして、ステップの
編集画面を表示。下記の通り入力する。(名称、タ
イプ、値)リミットは初期値の「10」になっているのを
確認。タイプはドロップダウンから「String」を選択。
「OK」をクリックして編集画面を閉じる。

13/91
データ変換
プロパティ

編集→設定をクリックし、データ変換プロパティを表
示。データ変換名に「hello world」と入力。「OK」をク
リックしてプロパティを閉じる。

14/91
名前を付けて保存

ファイル→保存をクリック。「hello_world」
と入力して保存。

15/91
データ変換デバッグ

「ダミー」ステップをクリックして選択し、
ツールバー上の「プレビュー」をクリック。

16/91
プレビュー

「クイック起動」ボタンをクリックすると
プレビューが表示される。

17/91
実行

画面上部のツールバーから「実行」を
クリックすると、下記の画面が表示さ
れるので「実行」ボタンをクリック。

18/91
実行結果

実行されたステップに緑のチェックが付き、
画面下部に実行結果が表示される。

19/91
ログ

「ログ」タブを表示して、エラーが無かったか確認する。
エラーは赤で表示される。

20/91
データ変換作成①
•PDI版Hello, world!
•作業フォルダ
– C:¥pentaho¥pdi_work

21/91
データ変換作成②
•テキストファイル入出力
•ETLのT(Transform:変換)の事例として「選択
/名前変更」ステップを使用
– ここでは不要なフィールド(列)を削除する

22/91
テキストファイル入力

新規→データ変換 を選択。
「入力」ノードから「テキストファイル
入力」を選択。ダブルクリックして
編集

23/91
ステップ編集
(ファイルタブ)

ダブルクリックして編集画面を表示。
「参照」ボタンをクリックして入力ファイル指定。「追
加」ボタンをクリック。「ファイル名のリスト」欄に追加
される。

24/91
全般タブ

「全般」タブを表示。
フィールド区切り文字は、デフォルトの「;」(セミコロ
ン)を削除して、右側の「入力 タブ」ボタンをクリック
してタブを入力。

25/91
全般タブ

文字コードは、ドロップダウンリストから適切な文字
コードを選択。ここでは「UTF-8」を選択。
フォーマットは行末コードを「DOS」「Unix」「mixed」か
ら適宜選択。

26/91
フィールドを取得

「フィールドを取得」ボタンをクリック。
「サンプル出力するレコード数」ダイ
アログが表示されるので、OKをク
リック。

27/91
走査した結果

フィールドをサンプリングした結果が表示さ
れる。「閉じる」ボタンをクリック。
「OK」ボタンをクリックして編集画面を閉じる。

28/91
フィールド取得結果

取得されたフィールドの内容を確認。
問題なければ「OK」をクリックして
閉じる。

29/91
選択/名前変更

「変換」ノードから「選択/名前変更」ステッ
プをキャンバスにドロップ。2つのステップを
接続。 「選択/名前変更」ステップをダブル
クリックして編集。
画面左上のステップ検索も利用可能。

30/91
ステップ編集
除去フィールド

「除去フィールド」タブを表示。
「フィールド名」の下の欄をクリックすると、
欄の右端にドロップダウンの三角形が表示
されるので、それをクリックして、
「last_update」列を選択。

31/91
ステップ配置

「テキストファイル出力」ステップを追加し、
ホップで接続。「Main output of step」を選
択。

32/91
テキストファイル出力
ファイルタブ

「テキストファイル出力」ステップを
ダブルクリックして編集。ファイル名
の「参照」ボタンをクリックして出力
先のファイル名を指定。

33/91
テキストファイル出力
全般タブ

「全般」タブを表示。「タブの挿入」
ボタンをクリックして、区切り文字と
してタブを指定。
文字コード「UTF-8」を指定。

34/91
プレビュー

「テキストファイル出力」ステップを
選択状態にして、ツールバー上の
プレビューをクリック。プレビューが
実行される。

35/91
実行

ツールバー上の「実行」をクリック。
「データ変換の実行」画面が表示さ
れるので、「実行」ボタンをクリック。

36/91
データ変換の保存

データ変換実行前に保存。

37/91
実行結果

実行結果を確認する。
出力先のファイルを開き確認。

38/91
データ変換作成②
•テキストファイル入出力
•ETLのT(Transform:変換)の事例として「選択
/名前変更」ステップを使用
– ここでは不要なフィールド(列)を削除する

39/91
データ変換作成③
•Excelファイル入出力
•変換ステップとして「フィルター」「値マッピング
」を使用
•サンプルデータとして、PDIのJIRA(バグ管理サ
イト)から出力したExcelファイルを使用

40/91
ステップを配置

入力:Excel入力、フロー:フィルター、変
換:値マッピング、出力:Excel出力
の各ステップを配置し接続。
「フィルター」と「値マッピング」の間のホップ
は「Main output of step」を選択。

41/91
Excel入力

Excel入力をダブルクリックして編集。ファイ
ルタブの内容を指定。スプレッドシートタイプ
は「Excel2007」を指定。

42/91
Excel入力
シートタブ

「シートの取得」ボタンをクリック、
「入力リスト」で対象のシートを選択。

43/91
Excel入力
シートタブ

「開始レコード」「開始列」を指定。

44/91
Excel入力
フィールドタブ

「フィールドの取得」ボタンをクリック。

45/91
プレビュー

「プレビュー」ボタンをクリック。
内容を確認して「閉じる」をクリック。

46/91
フィルター

フィルターをダブルクリックして編集。

47/91
フィルター

「フィルタ条件」に下記のように入
力。「OK」をクリックして閉じる。

48/91
値マッピング

値マッピングをダブルクリックして
編集。

49/91
Excel出力

「Excel出力」ステップをダブルク
リックして編集。「ファイル名」を指
定。

50/91
Excel出力
フィールドタブ

フィールドタブを表示。
「フィールドを取得」ボタンをクリック。

51/91
Excel出力
フィールドタブ

フィールド名とデータタイプが取得
される。OKボタンをクリック。

52/91
実行

ツールバーの「実行」ボタンをクリッ
ク。
「実行」をクリック。

53/91
保存

実行前にデータ変換を保存。

54/91
実行結果

実行結果を確認する。

55/91
出力されたファイル

出力されたファイルをExcelで開い
て確認する。

56/91
データ変換作成③
•Excelファイル入出力
•変換ステップとして「フィルター」「値マッピング
」を使用
•サンプルデータとして、PDIのJIRA(バグ管理サ
イト)から出力したExcelファイルを使用

57/91
データ変換作成④
•DB入力
•DBはPostgresqlを利用
•サンプルデータは、pagilaというデータを使用

58/91
データベース接続作成

ビュータブの「データベース接
続」を右クリックして「新規」を
選択。

59/91
データベース接続

データベース接続を下記のように
指定。

60/91
検索

「検索」ボタンをクリック。

61/91
最初の100行プレビュー

任意のテーブルを右クリッ
クして、「最初の100行プレ
ビュー」を選択。

62/91
プレビュー

プレビューが表示される。

63/91
ステップ配置

下記のようにステップを配置します。

64/91
テーブル入力

テーブル入力を編集。
「SQLの選択」ボタンをクリック。

65/91
データベース
エクスプローラー

データベースエクスプローラーが表
示されるので、任意のテーブルを選
択。

66/91
テーブル入力

SQLが生成される。

67/91
テキストファイル出力

「テキストファイル出力」ステップを
ダブルクリックして編集。

68/91
テキストファイル出力
フィールドタブ

「フィールドを取得」をクリック。

69/91
実行

ツールバーから実行をクリック。

70/91
出力ファイル

出力ファイルを開いて内容を確認。

71/91
データ変換作成④
•DB入力
•DBはPostgresqlを利用
•サンプルデータは、pagilaというデータを使用

72/91
データ変換作成⑤
•DB出力

73/91
ステップ配置

下記の通りステップを配置する。

74/91
テキストファイル入力

「テキストファイル入力」ステップで
先ほど出力したファイルを指定。
「プレビュー」ボタンをクリック。

75/91
プレビュー

プレビューを確認。

76/91
テキストファイル入力
全般タブ

全般タブで「入力タブ」ボタンをク
リックしてタブを入力。

77/91
テキストファイル入力
フィールドタブ

「フィールドを取得」をクリック。

78/91
走査した結果

走査した結果が表示される。

79/91
テーブル出力

「テーブル出力」ステップを編集。テーブル名を指定。
「列名を指定する」チェックボックスをONに。「フィー
ルドを取得」ボタンをクリックして、フィールド欄に自
動記入。「SQL」ボタンをクリック。

80/91
SQL文生成、実行

CREATE TABLE文が生成される。
「実行」ボタンをクリックして、出力
先のテーブル作成。

81/91
フィールドマッピング

「フィールドマッピング」ボタンをク
リックして、マッピングの内容を確
認。

82/91
実行

ツールバーの「実行」をクリック。
「実行」ボタンをクリック。

83/91
実行結果

実行結果が表示される。

84/91
照会

DBに出力した内容を確認。
ビュータブのデータベース接続から
該当の接続を右クリックして、「照
会」を選択。

85/91
データベース
エクスプローラー

該当のテーブルを選択。

86/91
プレビュー

該当のテーブルを右クリックして、
「x行プレビュー」を選択。

87/91
プレビュー

テーブルの内容が表示される。

88/91
データ変換作成⑤
•DB出力

89/91
まとめ
•ダウンロード
•起動
•プレビューと実行、ログ確認
•データ変換作成
–
–
–
–
–

PDI版 Hello, world!
テキストファイル入出力
Excelファイル入出力
DB入力
DB出力
90/91
不明な点
•Pentahoのフォーラムへ
– 日本語でコミュニティー・サポート
http://forums.pentaho.com/forumdisplay.php?86

91/91

More Related Content

Viewers also liked

Viewers also liked (11)

Lambda in java_20160121
Lambda in java_20160121Lambda in java_20160121
Lambda in java_20160121
 
オープンソースBI勉強会Mongo-Pentaho 20140422
オープンソースBI勉強会Mongo-Pentaho 20140422オープンソースBI勉強会Mongo-Pentaho 20140422
オープンソースBI勉強会Mongo-Pentaho 20140422
 
Diary of Support Engineer
Diary of Support EngineerDiary of Support Engineer
Diary of Support Engineer
 
Pentaho 定型レポート ハンズオン
Pentaho 定型レポート ハンズオンPentaho 定型レポート ハンズオン
Pentaho 定型レポート ハンズオン
 
Internals of Presto Service
Internals of Presto ServiceInternals of Presto Service
Internals of Presto Service
 
pentaho PDI(CE版)の運用
pentaho PDI(CE版)の運用pentaho PDI(CE版)の運用
pentaho PDI(CE版)の運用
 
Swagger 入門
Swagger 入門Swagger 入門
Swagger 入門
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
 
Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API Gateway
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
 

Similar to Pdi tutorial 20140121

[D35] インメモリーデータベース徹底比較 by Komori
[D35] インメモリーデータベース徹底比較 by Komori[D35] インメモリーデータベース徹底比較 by Komori
[D35] インメモリーデータベース徹底比較 by Komori
Insight Technology, Inc.
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Takayuki Shimizukawa
 
Trac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTrac Plugin Developement with Jenkins
Trac Plugin Developement with Jenkins
Takahisa Wada
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?
Masayuki Ozawa
 

Similar to Pdi tutorial 20140121 (20)

OSC 2020 August
OSC 2020 AugustOSC 2020 August
OSC 2020 August
 
【de:code 2020】 監視と管理を自動化するサンプル Center of Excellence Starter Kit 概説
【de:code 2020】 監視と管理を自動化するサンプル Center of Excellence Starter Kit 概説【de:code 2020】 監視と管理を自動化するサンプル Center of Excellence Starter Kit 概説
【de:code 2020】 監視と管理を自動化するサンプル Center of Excellence Starter Kit 概説
 
Apache Hiveの今とこれから
Apache Hiveの今とこれからApache Hiveの今とこれから
Apache Hiveの今とこれから
 
Oss LT会_20210203
Oss LT会_20210203Oss LT会_20210203
Oss LT会_20210203
 
The Design for Serverless ETL Pipeline データ分析基盤のレガシーなデータロードをサーバレスでフルリプレースするまで道のり
The Design for Serverless ETL Pipeline データ分析基盤のレガシーなデータロードをサーバレスでフルリプレースするまで道のりThe Design for Serverless ETL Pipeline データ分析基盤のレガシーなデータロードをサーバレスでフルリプレースするまで道のり
The Design for Serverless ETL Pipeline データ分析基盤のレガシーなデータロードをサーバレスでフルリプレースするまで道のり
 
[D35] インメモリーデータベース徹底比較 by Komori
[D35] インメモリーデータベース徹底比較 by Komori[D35] インメモリーデータベース徹底比較 by Komori
[D35] インメモリーデータベース徹底比較 by Komori
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
 
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側
 
OpenStack Summit Vancouver YVR Ops
OpenStack Summit Vancouver YVR OpsOpenStack Summit Vancouver YVR Ops
OpenStack Summit Vancouver YVR Ops
 
Verilog-HDL Tutorial (6)
Verilog-HDL Tutorial (6)Verilog-HDL Tutorial (6)
Verilog-HDL Tutorial (6)
 
Trac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTrac Plugin Developement with Jenkins
Trac Plugin Developement with Jenkins
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?
 
Fluentdによる研究開発用DCのデータ収集
Fluentdによる研究開発用DCのデータ収集Fluentdによる研究開発用DCのデータ収集
Fluentdによる研究開発用DCのデータ収集
 
DBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixDBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - Delphix
 
Products.PloneOrg
Products.PloneOrgProducts.PloneOrg
Products.PloneOrg
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
 
ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視ELK ではじめる自宅ネットワーク監視
ELK ではじめる自宅ネットワーク監視
 
DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)
 
GCPUG in Osaka #6 5分でCloud Dataprepを説明する
GCPUG in Osaka #6 5分でCloud Dataprepを説明するGCPUG in Osaka #6 5分でCloud Dataprepを説明する
GCPUG in Osaka #6 5分でCloud Dataprepを説明する
 

Recently uploaded

物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
Michael Rada
 

Recently uploaded (6)

セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
 
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
 
Broadmedia Corporation. 240510fy2023_4q
Broadmedia Corporation.  240510fy2023_4qBroadmedia Corporation.  240510fy2023_4q
Broadmedia Corporation. 240510fy2023_4q
 
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
 
company profile.pdf
company profile.pdfcompany profile.pdf
company profile.pdf
 
事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)
 

Pdi tutorial 20140121