2016年4月アーカイブ

先日、CPython Script Executorというステップがマーケットプレイスに追加されているのを発見しましたので、インストールして触ってみました。

まだこのステップはステージレベルが4段階中2で、サポート対象外、本番環境での使用は非推奨という記載もあり、手元の環境(OS: OSX10.11.4、PDI: 6.0.1EE)では、ちょっと混みいった処理になると実行できないようでした。(ちなみにPDIを起動する際も、エンタープライズエディションに同梱されているJavaではなく、

PENTAHO_JAVA_HOME=$JAVA_HOME ./spoon.sh

という具合に他のJavaを指定して起動しないと/usr/local/binとかにPATHが通らないようでした。)

でも、その内改善される、もしくは環境等によっては動作する可能性もなくはないかもしれないので、
今回作ったトランスフォーメーションを共有させていただきたいと思います。

Screen Shot 2016-04-20 at 9.37.28 AM.png
トランスフォーメーションの内容は、Pythonのステップが2つとその結果をPostgresqlに
ロードするテーブル出力ステップの3ステップ構成です。

1つ目と2つ目は分ける必要はないですが、入力データを元に処理を行いたかったので、
2つに分けました。(1つにまとめても処理は完了しませんでした。)

1つ目のステップでは、ウィキベディアのメインページの「新しい記事」セクションのリンク先の記事を取ってきて、記事毎の文章をmecabで単語に分解して、名詞、形容詞、動詞のみに絞って抽出します。

2つ目のステップでは、1つ目のステップで用意した記事毎の単語データからTFIDFのコーパスを作成し、Spark mllibのLDAでトピックモデリングします。

3つ目のステップでは、2つ目のステップで生成したトピック番号、単語、確率をテーブルに投入します。

処理が完了すると

例えば、トピッグ毎に確率が大きい順に15個程単語を表示、で
select topic, word, prob from (
    select row_number() over (partition by topic order by prob desc) as r, t.* from topic_model t) x where x.r <= 15 and prob > 1;

Screen Shot 2016-04-20 at 9.26.55 AM.png

こんな感じの結果になります。トピックの数は10にしています。
記事の数はだいたい20〜30程です。

Pythonステップに入力されたデータはpandasのデータフレームに変換されます。
出力する際もpandasのデータフレームに変換します。

弊社取扱製品のRapidminerでも同じようにpandasのデータフレームを活用した
Pythonプラグインオペレータが一足先に利用できるようになってます。
ほぼ同じようにRapidminerでも処理が作成できるので、PDIから移植して
実行してみましたが、全く問題なく処理が完了しました。

PDIのPythonステップは、試してみたところ、

pd.DataFrame(sc.parallelize(np.linspace(0, 100, 100000)).collect())
# 0から100の間の10万個の数字を生成して出力

といった単純なものは実行できましたが、これを

pd.DataFrame([sc.parallelize(np.linspace(100, 1000, 10000)).reduce(lambda x, y: x+y)])

このようにリデュースして合計値を出力しようとしたり、

pd.DataFrame(sc.parallelize(np.linspace(100, 1000, 100000000)).collect())

出力する数字を1億個ぐらいにしようとしたりすると処理が放棄されました。

その他、スクリプトに日本語が混じると処理が開始しなかったり、
Number of Rows to Processという設定項目にBatchを選択すると
次からそのステップが開かなくなる等のバグがありました。

作成したPDIのトランスフォーメーションとRapidminerのプロセスのファイルは
下記に保存してますのでよろしければお試しください。

PDIトランスフォーメーション
Rapidminerプロセス

以上です。
Mondrianはアナライザー等のアプリケーションから受け取ったMDXクエリーを元にSQLクエリー発行してデータベースからデータを取得するので、データベースがパフォーマンスのボトルネックとなっている事が多く、Mondrianのパフォーマンスに問題がある場合はデータベースのパフォーマンスを最初に確認するのがよいとされています。

Pentahoは実行したMDXクエリーとSQLクエリーをログに出力する事ができるので、パフォーマンスに問題のあるクエリー実行後にログを確認し、全体の処理時間の大半をSQLクエリーが占めているようであればデータベースにチューニングが必要だと判断する事ができます。

データベースのチューニング方法はデータベース毎に異なりますが、Mondrianを利用するにあたり、ディメンションのプライマリキーにインデックスを作成する事が、有効な対策の1つです。
インデックスの作成により実行に数分かかっていたクエリーが数秒になったという事例もあります。

データベースの中には分析クエリー用に設計された物もあり、それらはインデックスの作成やクラスタリングなど、高速なレスポンスに必要な処理を自動で行ってくれます。可能な場合はMondrianのデータソースには分析データベースを利用する事をお勧めします。

★Have a nice open source day★
KSK Analytics Pentaho Team
①Saikuの概要について http://www.pentaho-partner.jp/blog/2016/03/pentahoce-saiku.html
②PentahoCE版のインストール方法について http://www.pentaho-partner.jp/blog/2016/04/pentaho-91.html

前回の記事ではPentahoCE版のインストール方法についてご説明いたしましたが、
今回はインストールされているPentaho上にSaikuAnalyticsをインストールする方法をご説明します。

まず前回のブログにてMarketplaceのzipファイルをダウンロードしましたが、そのzipファイルを解凍してください。

スクリーンショット (1342).png
zipファイルを解凍するとmarketplaceというフォルダが出てきますので、そのフォルダを、
<Pentahoが入っているディレクトリ>/biserver-ce/pentaho-solutions/systemの中に移動させてください。
※移動させる前にstop-pentaho.shを実行し、一度Pentahoを停止することをおすすめします。

スクリーンショット (1343).png
移動後再度start-pentaho.shを実行し、Pentahoを起動させてユーザーコンソールにログインしてください。

ログイン後のホーム画面にMarketplaceが左上のドロップダウンリストに表示されます。

スクリーンショット (1344).png

次に新しくドロップダウンリストに表示されたMarketplaceボタンを押していただくと、
Marketplace画面に移動します。

スクリーンショット (1345).png
続いてSaikuをインストールするために、検索ボックスにsaikuと入力してください。
そうすると一番上にSaikuAnalyticsのプラグインが表示されます。

スクリーンショット (1346).png

SaikuAnalyticsが表示されましたら、青く表示されている名前をクリックしてください
(installボタンは押さないでください)

そうすると以下のようなインストール画面が表示されますので、
左側のバージョンのドロップダウンリストでSTABLEと記載されているバージョンを選択してください。
(Enterprise版がインストールしても使用することはできません)

スクリーンショット (1347).png

バージョンをSTABLEに変更されましたら、installボタンをクリックしインストールが完了するまでお待ちください。

スクリーンショット (1348).png
インストールが完了しましたら、Pentahoを再起動(stop-pentaho.shを実行し、start-pentaho.shを実行)してください。

再起動後ユーザーコンソールにログインすると、新規作成にてSaikuAnalyticsボタンが表示されます。

スクリーンショット (1349).png
Saiku Analyticsボタンを一度押していただき、以下のようなSaikuのホーム画面が表示されることを確認してください。

スクリーンショット (1350).png
次回はインストールしたSaiku内に入っているサンプルデータを使用してアナライザーを触ってみる部分をご説明いたします。




前回のブログではPentahoのCE版でOLAP分析を行う方法としてSaikuAnalytics(以下Saikuと表記)をご紹介いたしました。

そこで今回は実際にPentahoCEとSaikuをインストールする方法について解説いたします。

環境情報
OS CentOS6.5 64ビット版
Pentaho Pentaho-ce 5.2 

まず、PentahoCE版のダウンロードサイト(salesforgeのサイト)に移動していただき、
ここからbiserver-ce-<バージョン名>.zipファイルをダウンロードしてください。

ここではbiserver-ce-5.2.0.0-209.zipをダウンロードしています。

スクリーンショット (1329).png


スクリーンショット (1330).png
続いてSaikuをインストールするために、PentahoMarketPlaceが必要となるため、
MarketPlaceをダウンロードする必要があります。

MarketPlaceはPentahoのサイトよりダウンロードすることができます。

スクリーンショット (1331).pngスクリーンショット (1351).png
今回はMarketPlace 5.2をダウンロードしております。

続いてPentahoをインストールする作業になります。
まずPentahoをインストールする前にOSにJavaがインストールされていることを確認してください。
(Javaがない場合はインストールすることができません)

Javaをインストールし終わっている場合は、インストールしたbiserver-ce-<バージョン名>.zipを解凍します。

スクリーンショット (1334).png
解凍をしますと、biserver-ceというフォルダがあることを確認してください。

スクリーンショット (1335).png
biserver-ceフォルダが確認できましたら、早速Pentahoを起動するため、
このディレクトリに移動し、start-pentaho.shを実行してください。

スクリーンショット (1336).png
スクリーンショット (1339).png

起動した後、http://<pentahoが入っているサーバーのipアドレス>:8080というURLをブラウザ上で実行すると、Pentahoのユーザーコンソールが表示されます。
(idはadmin,パスワードはpasswordとなっています)

スクリーンショット (1340).png
いかがでしたでしょうか。
次回はMarketPlaceを使用してSaikuをインストールする方法をご紹介します。












2016年7月

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

月別 アーカイブ