Pentaho Data Integration (ETL)の最近のブログ記事

皆様のBIシステムは現在クラウド対応を視野に入れていますでしょうか?
クラウドは現在のIT業界で最も注目されているキーワードといっても過言
ではないでしょう。

その中でもIaaSとしてのAmazon EC2/S3とSaaSとしてのSalesforce.comは
最も知名度が高く、利用しやすいと思います。

PentahoではData Integration(ETL)で既にこれらに対応しています。

以下の画面例ではAmazon S3からデータを入力し、SalesForceに出力する
インターフェースを表示しています。
pdicloud.jpg

他社ETL製品では、コネクタやアダプタとも呼ばれ別途有償(数十万円から
100万円以上)の場合も多いこれらのインターフェースですが、いち早く
対応して追加費用も必要ないのがPentahoの特徴です。

御社のクラウド戦略に低コストで対応できる可能性がありますので、
ご関心があればぜひお問い合わせ下さい。

★Have a nice Cloud System★
KSKソリューションズ Pentahoチーム

PentahoのETLツールであるPentahoデータ統合(Pentaho Data Integratio)は、4.0にバージョンアップしたことで新たな機能が加わりました。

データ統合機能に加えて、データモデリング、デザイン機能が追加されています。


追加された主な機能は、以下の3つです。

  ● データ統合パースペクティブ:  従来通りのETL機能
   ビジュアライゼーションパースペクティブ:  レポートでのデータの表示
   モデリングパースペクティブ:  OLAP操作とメタデータのレポーティング


これによってデータ統合ツールとしてだけではなく、ソースからレポートまでBI開発のあらゆる段階をPDIで管理できます。

これらの機能がデータ統合ツールに追加されたことで、技術ユーザーとビジネスユーザーがプロジェクトのデプロイメント全体を理解して、共有することも可能です。

さらにPentahoデータ統合4.0では、セキュリティ、チームでの共同作業のための機能、、コンテンツのバージョニング管理、レポジトリ、ETLアクティビティを調整するスケジューリング機能等が強化されています。

今回からコミュニティ(オープンソース)版とエンタープライズ(商用)版が差別化され、上記の機能はエンタープライズ版にのみ追加されています。
これらの他にデータ変換ステップと、ジョブエントリも追加されており、こちらはコミュニティ版でもアップデートされています。
(ex. データ変換では: SAP Input, Salesforce Input等, ジョブエントリでは: Check DB Connections, Send Information using Syslog)

コミュニティ版(4.0.0-stable)はこちらよりダウンロードいただけます。


エンタープライズ版もリリース予定ですので、いましばらくおまちください。


★Have a nice Open Source Day★
KSKソリューションズ Pentahoチーム

Q:通常、Pentahoデータ統合(Kettle)でデータベース接続を作成すると、異なるDBやホストに接続する時には、データ変換やジョブを都度編集しなければなりません。何か方法はありませんか?

A:以下の手順により、変数と接続情報の共有をより簡単に行うことができます。

手順
1.Spoonでハードコーディングされた形式のDB接続を含むデータ変換を開きます。
2.ナビゲーションツリーの「データベース接続」セクションを展開します。
3.編集したい接続情報をダブルクリックします。
4."server host name"のテキストボックスで、ハードコーディングのものを変数に替えます。
  (e.g. ${DB_HOSTNAME})
表示
5.保存して、ダイアログを閉じます。
6.編集したデータベース接続を右クリックして、オプションから「共有」を選びます。
表示
7.開いているデータ変換を保存します。(共有接続は保存されるまで有効になりません)
8.エクスプローラ等で.kettleディレクトリーに行きます。
  Windows XP/2000 ->"C:\Documents and Settings\<username>\.kettle"
  Windows Vista -> ", /home/<username>/.kettle"
  Linux/Unix -> "C:\Profiles\<username>\.kettle"
9.接続情報が、.kettle/shared.xmlにあるはずです。
  本ファイルはコピーして、新しいKettle環境にペーストできます。
10.テキストエディター等でkettle.propertiesを開いてください。
11.コメントの下に、手順4で指定した新たな変数を追加してください。
   (e.g. DB_HOSTNAME = localhost)
12.いずれの新たな環境でも、kettle.propertiesを編集し、新たな変数を定義できます。
13.上記が完了したら、Kettleを再起動してください。

参照元:wiki.pentaho.com

★Have a nice Open Source Day★
KSK ソリューションズ Pentahoチーム





通常、レポートに表示するデータは
JDBCでデータベースに接続し、SQLで取得するのが一般的ですが、
例えば
欲しいデータを取得するためには一回のSQLでは難しい場合など、
PDI(ETL)を利用する方法もあります。


レポートデザイナーにて

Data Setsのところで
Pentaho Data Integrationを選択

053101.jpg


使用するktrファイルを指定
指定すると、作成したStepが表示されます
(ここではDataステップを選択しておきます)

053102.jpg

ここでは以前の記事で使っていたktrファイルをちょこっと変えたものを使ってます。
以前の記事はこちら

単純に職業名が入ったディメンジョンテーブルからある1つの値を取得するだけのETLです。
053103.jpg

以前の記事とは異なり、最後はダミー(Data)に変更してます。


ktrファイルを設定し、OKボタン押下で、
取得する項目が表示されます。
(ここでは職業ディメンジョンのIDおよび名称)

053104.jpg


次に
パラメータを設定。
(今回はテキストボックスにIDを入力し、該当する名称を取得するレポート)
パラメータの名称をItemとしておきます。

053105.jpg


データを取得するのはETLなので、
このItemで設定されている値をktrファイルに渡す設定をします。

以前の記事同様、Get System Infoにて引数を取得する方法で
ktrファイルを作成してあるため、この引数とItemを紐づけします。

Data Setsの設定にもどり
「Edit Parametar」を押下し、
パラメータで作成したItemを設定。

053106.jpgこれで完了。

ID=1は学生

053107.jpg

ID=5は公務員
053108.jpg

が表示されました。



単にIDを指定し、その名称を取得するだけのレポートですが、
ETLを使って、パラメータ(引数)も使って
取得することができました。

SQLが得意ではなく、ETLを使いこなせていれば
こういう方法もありですね。

私はなんとかSQLを駆使したい派ですが^^

★Have a nice Open Source Day★
KSKソリューションズ Pentahoチーム




PDIでは、作成したジョブやトランスフォーメーションを
GUIからの操作ではなく、当然コマンドラインから実行できますが、

引数を指定したい場合の簡単な例を以下に記します。
(テーブルから取得したデータをテキストファイルに出力するだけ)

01.jpg

・Get System Info
02.jpg

「command line argument 1」を指定。
フィールド名は任意文字列。

・Table input
03.jpg

「先行のステップから値を引き続ぐ」にチェック。
データを取得するSQL文の
引数の値をセットしたい部分に「?」と記載。

・コマンドラインから実行

今回のはTransformationなのでPanを使用する。
もちろんJobであれば、Kitchenを使って同じようにできます。

>Pan /file (ktrファイル名) (引数の値)04.jpg

実際発行されるSQLは以下のようになり

SELECT * from
 dim_q1
where id = 1   ←引数で設定した値
order by id

該当するレコードがテキスト出力されます。


★Have a nice Open Source Day★
KSKソリューションズ Pentahoチーム









前回の投稿でPDIのステップの一部を紹介しましたが今回も引き続きいくつかのステップを紹介したいと思います。

・Switch/Case
Javaなどのプログラム言語で使用されているswitch/caseオブジェクトの様なステップです。
switch/caseを使用すると、指定した値を持つ行を指定したステップにアウトプットする事が出来ます。
switch-case.jpg
例えば上のように設定するとclassroom_idフィールドに1の値を持った行はDummy(do nothing)ステップへ、2の値を持った行はDummy(do nothing)2ステップへ、その他の行はDummy(do nothing)3ステップへアウトプットされます。

・Combination Lookup
Combination Lookupステップは指定したテーブルにキーフィールドを作成する事が出来ます。
combination_lookup.jpg
上のように設定し、右下のSQLボタンを押すとsubjectsテーブルにsubject_idカラムが作成されます。トランスフォーメーシあうョンを実行するとsubject_nameの行数だけsubject_idカラムに1から順に値が入ります。作成されたsubjectsテーブルは以下の通りです。
subject_table.jpg

・Dummy Step
Dummy Stepは何もしません。何もしませんが主にテスト目的で使用され、最も使用するステップのひとつだと言えます。
例えば以下のようなトランスフォーメーションを定義した場合、実際にはデータストリームをDBにアウトプットしたいが動作確認の為Dummyステップを使用すると言った使い方が出来ます。
dummy.jpg
またこのトランスフォーメーションではFilter Rowsステップでtrueの値のみをDBに入れたいので行き場のない必要の無いデータをDummyステップに投げています。

★Have a nice Open Source Day★
KSKソリューションズ Pentahoチーム

Pentaho Data IntegrationのSpoonでは新たなバージョンがリリースされるたびに小さな不具合の修正だけでなく毎回数多くのステップが追加されていますが、数が多すぎてどのステップがどういった働きをするのかすべてのステップの働きを把握するのは困難です。
そこで今回は便利で利用頻度の高いステップを紹介します。

・Row Normalizer
Row Normalizerステップは行で持っているデータを列のデータに変える事ができます。
例えば以下ようなテーブルにRow Normalizerを使用すると
横持ちデータ.jpg

カラムヘッダーのProduct名と行のデータのSalesが列のデータに変わります。
縦持ちデータ.jpg
Pentaho Data Integrationのステップはテーブルデータを行で見て扱う事が多いので
このように列のデータを行のデータに変えなければならない事は多々あります。

・Filter Rows
Filter Rowsはその名の通りテーブルを行ごとに見て与えられた条件でフィルターを掛けます。
例えば以下のように定義すると
フィルターロー.jpg
インプットストリームのItemカラムがリンゴの行はTrueとなりExcel OutputステップにアウトプットされそうでなければFalseとなりDummyステップにアウトプットされます。
Filter Rowsは必要なデータを絞り込む時に最も多く使用されるステップのひとつです。

・Select Values
Select Valuesはアウトプットストリームへのフィールドの選択、フィールド名の変更、データタイプの変更などをする為のステップです。
selectvalue.jpg
フィールドの選択タブからアウトプットストリームに使用するフィールドを選択、フィールドの削除タブからアウトプットストリームに使用しないフィールドを削除することが出来ます。
メタ情報タブからはフィールド名、データタイプ、フィールドの長さの変更をする事が出来ます。

★Have a nice Open Source Day★
KSKソリューションズ Pentahoチーム
BI(ビジネスインテリジェンス)のプロジェクトで弊社もよく遭遇する問題は、お客様も明確なアウトプットイメージ(どんなダッシュボードを構築したらいいのか、どんなキューブを作ればいいのかetc)を持っておられないことが多いことです。

業務システムと違い、BIの場合は設計仕様をしっかり決めることは、難しいものです、なぜなら、「どのように分析すれば成果が上がるか」というものは、やってみなければ分からないからです。良くテンプレートを活用するということも話題に上がります。しかし、一般的なテンプレートはプロジェクト初期段階においてイメージを持つためには効果はあるものの、それが自社にとって最適なものとは限りません。

結局、BIだけでなくマネジメント全般に言えることかもしれませんが、計画する→試す→検証する→再度計画する、のプロセスが重要になります。

一方で、一般的に商用BIツールは非常に高い買い物です。ちょっと試すには、慎重を重ねた検討とリスクを受け入れる勇気が必要となります。その点、オープンソースBI「Pentaho」は、低価格と高機能を併せ持つツールです。有償版であってもソフトウェアを購入する必要はなく年間サポート費用ですべて機能が使用できます。(少し営業臭くなり申し訳ありません)

さらに来年Pentahoは、BIでより成果を出すために、これらを進化させます。
来年のPentahoのテーマは、「アジャイルBI (Agile BI)」です!

1、アジャイルBIとは?
ビジネスインテリジェンス構築のための、迅速かつ軽量、反復的な開発アプローチです。
ソフトウェアアジャイル開発手法をBIに適応したものです。
・それらのサポートを可能にするBIツールを含みます。

2、なぜPentahoはアジャイルBIを?
・設計などに長期間をかけることなく、セルフサービスでのレポートやOLAP分析を早く提供するため。
・評価→検証を素早く、反復的に行うため。
・情報部門だけでなくビジネス部門などの関係者をよりプロジェクトに巻き込むため。
・よりシンプルに、簡単に、安価にプロジェクトを行うため。
・BIは小さく多様なチームで開発されるべきであるため。(DBA、分析担当者、コンサルタント、開発者、現場ユーザー)
→結果として、より多くのBIプロジェクトを成功に導くため。

3、アジャイルBIを行うために必要なBIツール
・早く簡単にBIモデルを作成できるツール
・少人数のチームで使えるツール
・広範囲なスキルセットに対応できるツール
・コストパフォーマンスの高いツール

現在、プロダクト単位でのコラボレーションや計画が進んでいます。
また詳細の機能についてはご紹介させていただきます。

例:以下のリンクにデモ動画があります。
ETLとOLAPアナライザーレポートのコラボレーション


★Have a nice Open Source Day★
KSKソリューションズ Pentahoチーム

PentahoでのDWH(データウェアハウス)構築の際に、「Pentahoデータ統合(ETL)の処理能力はどうか?」といったご質問をよくいただきます。本ホワイトペーパーでは、その質問に100%答えることはできないものの、ある程度の目安となる情報を教えてくれます。

●タイトル:「クラウドやオンプレミス(自社運用型)での 大量データ処理のスケーリング」

●出典:
本ホワイトーペーパーは、Pentahoのパートナーであるバイロン社のニコラス・グッドマン氏のホワイトペーパーを日本語訳したものです。
http://www.nicholasgoodman.com/bt/blog/2009/04/21/pdi-scale-out-whitepaper/

●ダウンロード
日本語版はこちらよりダウンロードいただけます。

●概要:
このホワイトペーパーでは、以下の主要な問いに答えています。
問1: クラスターにノードを追加するとき、PDI(Pentahoデータ統合)は比例して変化するか?
問2: より大量のデータを処理するとき、PDIは比例して変化するか?
問3: クラウドでのETLに関する主要な価格とパフオーマンス指標は何か?
問4: アマゾンEC2にPDIをデプロイした人は何を知っておく必要があるのか?

問1では、以下のように、Pentahoデータ統合(ETL)のノードを増やすことで処理能力が比例的に向上していくことが示されています。
scales1.JPG

問2に対しては、以下のように、データベース(データウェアハウス)のデータ量が増えるにしたがい、リニアにスケールすることが示されています。scales2.JPG
問3については、Pentahoデータ統合(ETL)における平均のスループットを定義しています。
average_throughput.JPG


問4については、Amazon EC2(クラウド)でのデータ統合処理を行う上での、EBS(Elastic Block Storage)やIPアドレスについてのアドバイスや注意点が記載されています。

本ドキュメントのダウンロードは、Penthao日本語サイトのドキュメントから可能です。ぜひご一読ください。

Have a great Open Source Day with Pentaho
★KSKソリューションズ Pentahoチーム★