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

PDIに「確認ボタン」なるものがあるのをご存知でしょうか。
使わないとPDIが動かないという機能ではないので、見落とされている方もいらっしゃるかと思い、ご紹介させていただきます。

何をしてくれる機能なのかというと、名前の通りで、データ変換の各ステップにおける設定の不備をチェックしてくれます。

以下の画像では、「行生成」→「選択/名前変更」→「文字列置換」を行っておりますが、「文字列置換」で使用する文字列を「選択/名前変更」にて除去しています。そして、このデータ変換を、そのまま実行しているためエラーが発生しています。
大量データの使用などにより、比較的時間のかかるデータ変換処理の実行時に、このようなエラーが最後のほうで発生するととても残念な気持ちになると思います。

pdi_chk_001.jpg


これを防ぐための方法の一つが、「確認ボタン」です。
データ変換処理の実行前にひと押しすると、わかる範囲でエラーを表示してくれます。
※データに起因するようなエラーなどは判別できないので、その点は注意が必要です。

「確認ボタン」を押してみましょう。
pdi_chk_002.jpg

赤い○で囲まれたアイコンが「確認ボタン」です。
ボタンを押してみると、左のボックスのようにエラーが表示されるので、メッセージを参照しつつ、修正します。(ここでは、"name"を除去しないようにしました)
修正後にもう一度ボタンを押すと、こんどは右のボックスのようにエラーが表示されなくなります。この状態で実行した結果が、左右のボックスの後ろの画像です。正常に終了しているのが確認できると思います。

実行前にひと押しするだけの気軽な機能ですので、ぜひお試しください。

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

よくある質問(PDI編)

|
よくある質問シリーズ第二段。
PDI(ETL)についてです。

・PDIにて、作成したデータ変換(Transformation)にコマンドラインから値(引数)を渡す方法は?

→システムデータ取得(get system info)のステップを使えば可能です。
 簡単なサンプルを作りましたので、以下の説明を参照ください。

01.png

こんな感じのデータ変換を作ってみました。

引数で渡された値に該当するデータを
あるテーブルから取得してそれをテキストファイルに出力する。というもの。

システムデータ取得のステップの設定で、

02.png

このように設定しておき、

テーブル入力(table input)のステップにて、
03.png

このように引数で受けた値をwhere句に当てはめて、それに該当するデータを取るというもの。

あとはこのデータ変換をコマンドラインから実行。
データ変換なので、pan.bat(sh)を使用します。

>Pan.bat /file filename.ktr arg1

ってな感じで。

もちろん、jobであればkitchen.bat(sh)を使えばできます。

通常は常にspoonのGUIから使用ではなく、コマンドラインから実行がほとんどだと思うので、
引数を使って動的なデータ変換を使うというのはよくあるパターンですね。

システムデータ取得のステップと、その後の引数の受け取り方さえわかれば簡単です。


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

BIプロジェクト成功のためには、まず信頼できるデータの整備が不可欠です。
データが各所にバラバラに存在し、一貫性や整合性がとれないというお話はよくお客様からお伺いする話題です。
これを解決するには社内啓蒙などの地道な努力が必要な場合もありますが、ツールとしてのETLはかなり力を発揮します。
使うのと使わないのでは、数倍以上生産性が違うのではないでしょうか?
ETL.jpg
ところが、日本ではETLはあまり普及していません。

私は外資系ベンダーの中で世界各国別売上比率を見る機会があり、なぜ日本で売れないのかを聞かれることもありました。

SIer様やお客様からお話を伺う限り、ETLが日本であまり普及しない理由は以下ではないかと考えています。

  1)人が固定的。日本の大手企業で米国のように2年毎に会社を変わるような方はまずいません。
    担当技術者が辞めないという前提が成り立てば、個依存度の高い手組みの
    転送プログラムが多くとも変更対応の保守はある程度できますし、引継ぎも何とかなります。

  2)人月単価の受託契約仕事が多い
    ツールを使う人が1日で作業完了するより、普通の人が5日作業した方が
    SI会社としての収入が多い構造です。
    効率を高めるツールであるETLを導入すると、収入が減ってしまう場合があります。

  3)手組みの方がパフォーマンスがよいと考えられている
    よく聞く言葉です。しかしETL製品はメモリの使い方や並列処理なども進化しています。
    DBの性能を最大に発揮する独自SQLを駆使し、並列処理も障害対策もすべて固有の
    独自設計で本当によいのでしょうか?

  4)ETL製品は高価だった
    500万円以上となると、購入を決断できる企業は限定されます。


それではどうすればこの状況を打破してETLを普及・活用させることができるのでしょうか?

1)TCOにシビアになる
  情報システムのTCOを考えると、最もコストがかかるのは人件費です。
  安価なハードやソフトで解決できることはそちらにまかせるのが得策です。
2)人は人でなければできないことにフォーカス
  利用者ニーズの把握、ITリテラシの向上、トレーニングなど、
  人材を活用することでデータ活用が進むのではないでしょうか?
3)安価なツールを利用してみる
  Pentahoなら、まず使って効果を確かめることができます。

 SIer同士で競合する場合でも、ETLを使えばよりスピード感ある提案が可能となりますので、
 ぜひPentahoDataIntegration(PDI)をご検討下さい。

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


PDIにてお手軽にパフォーマンスを向上させる方法がありますので、ご紹介させていただきます。

例えば、1000万件のデータを生成した後、Javaスクリプトステップにて複数のフィールドを追加するという処理を行うとすると、以下のようになるかと思います。

pdi_nocopy.jpg
実行すると、全て完了するまでに、「3分3秒」かかりました。

そこで、「Javaスクリプトステップ」を右クリックして、「コピー数の変更」を選択し、コピー数を「1」から「3」に変更します。
そうすると、「Javaスクリプトステップ」の左上に「x3」と表示されます。

pdi_copy.jpg
この状態で、もう一度処理を実行すると、「1分56秒」で処理が完了しました!
※実行するマシンスペックによっては更なるパフォーマンスアップが見込めますが、マシンスペックが低い場合ですと、あまり効果がでません。また、コピー数を増やしたステップ以外がボトルネックになっている場合も、効果が薄いです。
※処理を行ったPCのスペックは、CPU:CoreDuo U2400/1.06GHz、メモリ:1526MBです。

すべての行に同じ処理を行う場合は、同じ処理内容のステップを並べて並列実行する方法もありますが、コピー数の変更を行うことで、同様の処理をよりお手軽に行うことができます。

お試しください。

☆Have a strong data integration ☆
KSKソリューションズ

BAに対するPentahoデータ統合の機能

|
本ブログではSAS Institute社様※の製品にて利用可能なSASデータセットファイル読み込みデータ統合ステップ(SAS Inputステップ)の検証をご紹介いたします。

本検証内容はPentahoデータ統合プロジェクトのチーフアーキテクトのMatt Casters 氏からの発表を元に、SASデータセットファイル(*.sas7bdat形式)の読み込み機能がETL処理の一部として実行可能であるとの内容となっております。

参照元URL:

SAS Institute社 

本検証では以下のデータセットを利用させて頂きました。
データセット名:
candyinfo.sas7bdat

データセット取得元URL:

検証内容:

SAS_input.JPG

sas7bdat形式データのフィールドを取得SAS_input2.JPG

データ内容を参照
SAS_input3.JPG


弊社は皆様のビジネスの役に立つようにビジネスインテリジェンスだけではなく、DWH、ビジネスアナリティックスにも力をれておりますが、米Pentaho社もまたBAに対して本格的に取り組みを行っていくと言う姿勢が伺えるかと思います。

弊社では、ビジネスインテリジェンスおよびDWH、ビジネスアナリティックスと言う、戦略系ソリューションをワンストップでご提供させて頂いております。

戦略系システムの整備の必要がある、または戦略系システムの必要性を感じていられる
ご担当者様は一度、こちらから弊社までご相談下さい。

☆Have a strong data integration ☆
KSKソリューションズ
本ブログではJDBC Kettle プロジェクトのご紹介を行いたく思います。

JDBC Kettle プロジェクト
http://code.google.com/p/jdbckettle/

lucidDBを提供しているDynamoBI社※のCEOであるNicholas Goodman氏を中心に
PDIのチーフアーキテクトであるMatt Casters氏も参加しているプロジェクトになります。

※DynamoBI社


本プロジェクトの特徴は、PDI(Pentahoデータ変換)にて定義したETL処理ロジックから
データの取得を行えるものでPentahoレポートデザイナ等でも使用されています。

今回は、実際に本プロジェクトの成果物を利用し以下の検証を行いました。

■ETL処理ロジック定義を定義
定義内容:
1.CSVファイルの読み込み(元データ)
2.時系列順で並び替え
3.HDFSよりCSVファイルの読み込み(追加データ)
4.年をIDとしてストリームの結合
5.MongoDBよりデータ取得
6.取得データの解析(JSONオブジェクト→ストリーム)
7.年をIDとしてストリームの結合
8.データ出力

・定義内容

PDI_datasource.JPG


・データプレビュ
PDI_datasource2.JPG


■上記定義内容からJDBCドライバ経由にてデータを取得

・PDI定義体への接続設定

kettle_connection_object.JPG

・定義体よりスキーマオブジェクトの一覧を取得
kettle_jdbc_schema_object.JPG


・データプレビュ
kettle_jdbc_data_preview.JPG


上記の様に、異なるアプリケーションのデータ統合を定義し他のデータベースベンダ様が提供されているJDBCドライバをご利用になった時と同様にクエリ構文形式でデータ取得を行う事が可能となります。

社内の開発担当部署の方々へのご説明を行うプロジェクト責任者様は、
社内でのコンセンサスを得やすくされる為に、PentahoをBIとしてのみ利用する事に加味し、
システム開発の上でも工数削減を行える事を訴求されるのも一つのアプローチかと思います。

また弊社へご相談いただけますと、社内へのご提案を含めたご支援が可能ですので、
ご興味を抱いて頂いたご担当者様はこちらよりお問い合わせください。

☆Have a nice business implementation ☆
Pentahoチーム

ETLツール比較表

|
あるお客様のご要望で"社内作成でないもの"ということで表記を探してみました。
Google検索するだけで出てくるものです。
ETL比較.png

PentahoのETLはGUIが使いやすくコミュニティが活発で評価が最も高いようです。

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

Talend 統合検証

|
Pentahoデータ統合プロジェクトのチーフアーキテクトのMattCaster氏が
自身のブログにて記載していたTalend統合への取り組みを検証いたしました。

参照URL:
Matt Caster on Data Integration

取組概要:
オープンソースETLツールのTalendにて定義した処理内容をそのまま
Pentahoデータ統合上で実行可能にする取組み。

検証内容は以下に記載いたします。

1.Talend上でETL処理内容を定義
talend_pre.JPG

2.Talend上から定義内容をエクスポート
talend_1.JPG

3.Pentahoデータ統合クライアント(Spoon)上でTalend Job Executionステップを定義
talend_3.JPG

4.通常のPentahoデータ統合処理と同様にETL処理を開始し実行
talend_4.JPG

本検証を通じ、Talend上で定義されたETLロジックをそのまま実行可能な事を
立証いたしました。

今現在Talendを使用されてETL処理を行われている担当者様は、Talendにて定義された
処理内容をそのまま保持頂いた状態で、Pentahoデータ統合機能をご使用いただけますので、
そのまま、既存の財産をご利用いただく形でデータ統合を行っていただけます。

ご興味を持たれたご担当者様は、ぜひ一度こちらより弊社までご相談ください。

☆ have a nice data integration day ☆

HBase 統合検証

|
弊社内で、Pentaho 社の2011年度の製品ロードマップに記載されているHbase統合プロジェクトの
検証を開始いたしました。

hbase_logo_med.gifのサムネール画像

Pentaho社はHBase統合に対し、データ統合クライアント(Spoon)にて以下ステップを準備しており
PentahoデータマイニングWEKAプロジェクトの責任者MarkHall氏が開発担当をしております。

・HBase Input (HBaseからデータ取得)
・HBase Output (HBaseに対してデータ挿入)

今回は上記ステップの動作検証を主目的とし以下検証を行いました。
・HBase Input を利用しHBaseのテーブルからテキストファイルにデータの書き込み
・HBase Output を利用しテキストファイルからHBaseのテーブルにデータの挿入

それぞれの詳細は以下に記載します。

Making Hadoop Easy

|
昨日、ある案件の為の検証目的で、アプライアンス型商用Hadoopクラスター上にて、
Pentaho Hadoop統合機能の検証を行う機会を頂きました。

fotm_pentaho_for_hadoop.pngのサムネール画像

検証内容に対する詳細事項の記載は割愛させて頂きますが、
以下2点を本検証の主な目的といたしました。

1.Pentaho Hadoop統合機能を利用しプログラミングレスで大量データに対するバッチ処理内容を実装

2.上記バッチ処理をHadoopクラスター上で行い大量データの処理および性能を検証