Pentaho社ではBest PracticeというPentahoを使用するにあたっての最適解やより効率的な方法論について体系的にまとめられた記事がございます。

しかしながら、文章が英語であることと一部の人しか読むことができないないようであることから、
今回この内容を随時日本語化しこのブログにて紹介させていただきます。

第一回目はPentaho Data Integration Design Guidelines(主にPDIにてETLを構築する上でのガイドライン)につきまして2、3紹介いたします。


①ETLは大枠からではなく、細かい機能から作り込むようにしてください。

PDIでは主にトランスフォーメーション(データの抽出、変換)、とジョブ(独立した機能をまとめるワークフローのような機能)に分かれており、
例えばジョブの中で、変数を設定するトランスフォーメーションを配置したり、ジョブそのものをジョブに配置するといった階層構造を作成することが可能です。
こうした状況のなかでETLを作成する場合、先にETLの構造を設計してかあら個々の機能を設計すると、後々想定していた構造が変わったり、どこにどの機能を配置したかを忘れてしまったり、処理がうまくいかない場合にどこがボトルネックかを判断することが難しくなります。
そのため、ETLの設計にあたってはまず全体の処理設計において必要な機能を洗い出し、個々必要な機能毎に作成し始めるのがよいでしょう。

②一度に1ステップずつデータ変換を作成してください
データ変換では数十種類にも及ぶ機能(これらをステップと呼びます)があり、さらにJavascriptやJavaのコードを書くことによってオリジナルの処理を作成することも可能です。
これらの機能を組み合わせることによってデータ変換を作成することが可能ですが、一度に必要なステップをすべて配置してからテストするとどこかで不具合が発生して原因を調査したり、ステップを入れ替えたりと作成時間が大幅にかかってしまう場合があります。
そのため、データ変換の設計にあたっては1つステップを追加するたびにテストやデバッグするといったステップバイステップ方式で設計するほうが確実かつ早く設計できるでしょう。

③設計時に最初からパラメータを使用しないでください
PDIではETLで使用できる環境変数が用意されていたり、個々の設計に合わせてオリジナルの変数を設定することが可能であるため、非常に柔軟なETLを作成することが可能です。
しかしながら、設計時に最初からパラメータを使用して設計を行うとテストやデバッグがより難しくなります。
そのため、最初は固定の値を使用してテストやデバッグを行い、問題なければ値をパラメータ化してテストするのがよいでしょう。

次回はPentaho Data Integration Design Guidelinesの続きを紹介いたします。

インタラクティブレポートのプロンプトにて日付の範囲でデータの絞り込みを行う方法をご紹介します。

【設定】
プロンプトをクリックします。
1.png

同じ日付データを2つプロンプトに設定します。
2.png

プロンプトを編集します。
3.png

こちらは日付の開始用のプロンプトです。
4.png

こちらは日付の終了用のプロンプトです。
5.png

6.png

フィルターを編集します。
7.png

開始用のフィルターには、「オンまたは後」を設定します。
8.png

終了用のフィルターには、「オンまたは前」を設定します。
9.png

【テスト】
10.png

11.png

これで日付の範囲のデータの絞り込みが可能になります。

よろしければお試し下さい。

★Have a nice open source day★
KSK Analytics Pentaho Team

Pentaho社の東京オフィス開設

|
Pentaho社の東京オフィスが正式に開設されました。今後、日立製作所様とのさらなる連携により、IoT分野でのビジネス拡大を目指します。

http://itpro.nikkeibp.co.jp/atcl/news/16/092802819/?rt=nocnt

KSKアナリティクスも日本地域のPentahoパートナーとして、IoT分野での強力なこの連携を歓迎します。日本でさらにPentahoがメジャーな存在になっていくことを楽しみにしています。当社も、お客様やパートナー様により高い付加価値を提供できるよう、より一層の努力を行ってまいります。

今後ともどうぞよろしくお願い申し上げます。

株式会社KSKアナリティクス
代表取締役 森本好映


GCPNEXT World Tour in Tokyo

|
gcpnext|tokyo

昨日、GCPNEXT World Tour in Tokyoへ行ってきました。

お昼過ぎに到着し、展示会場に入ると助六弁当とお茶のセットがセルフサービスな感じで積まれていましたので、一つありがたくいただき、急ぎ気味で完食してから、展示製品・サービスを見て回りました。

会場中央付近では、インターネットで見たことがあった唐揚げサーバのデモが行なわれてました。
お皿を認識する映像と処理の様子がモニターに映されていました。

コーヒーとマカロンもいただきました。


CaffeOnSpark

|
Screen Shot 2016-09-02 at 3.17.48 PM.png
Spark Summit 2016のセッションでSparkでの分散ディープラーニングフレームワーク比較の発表が行なわれていたようです。こちらがそのスライドショーです。
http://www.slideshare.net/SparkSummit/which-is-deeper-comparison-of-deep-learning-frameworks-on-spark
このスライドによりますとCaffeOnSparkが一番パフォーマンスがよく、安定しているようです。


https://github.com/yahoo/CaffeOnSpark/
さっそくこちらからソースを取ってきて、手順にそってCaffeOnSparkをビルド、
サンプルのMNISTを実行すると問題なく動作しました。

Caffe自体のインストールはUbuntu 14.04環境だったため、こちらの手順で行いました。
http://www.nal.ics.es.osaka-u.ac.jp/personal/k-yamanishi/CaffeUbuntu.html

PDIではSpark Submitを実行するステップがありますので、
CaffeOnSpark対応と言えます。
http://www.pentaho-partner.jp/blog/2015/06/spark-submit-on-spoon.html

Spark・ディープラーニング導入をご検討の際はKSKアナリティクスへご一報いただけますと幸いです。
Pentahoではレポートを作成する際、レンダリングのたびにデータベースにアクセスしてデータを取り出し、表示させています。しかし、頻繁にレンダリングを行うと、その都度データベースへのアクセスが必要になり、負荷がかかってしまいます。

そこでPentahoでもキャッシュの仕組みが導入されています。

Pentahoで使用できるキャッシュは以下のようになっています。

Ehcached
Memcached
Infinispan and so forth...


Pentahoでは標準機能としてEhcachedが入っていますが、使用される状況に合わせてMemcachedやInfinispan等への切り替えも可能です。


詳しくは英語になりますが、以下もご参照ください。


Saikuの概要について 
PentahoCE版のインストール方法について 
Saikuのインストール方法について


前回から少し間が空きましたが、今回はSaikuを使ってレポートを作成する方法を説明します。

まず、ユーザーコンソールより新規作成またはCreate NewからSaiku Analyticsをクリックしていただくと、前回見ていただいたようなSaikuのホーム画面がでますので、Create a new queryをクリックしてください。
そうすると、レポートを作成する画面が表示されます。

SnapCrab_NoName_2016-7-27_18-25-36_No-00.png
この画面を見ていただくと、左側にキューブを選択する画面とキューブごとのメジャーとディメンジョンの項目が表示され、また上部にはツールバーがあることがわかります。

操作方法ですが、基本的にPentahoと変わらず、表示したい項目をドラッグアンドドロップまたはダブルクリックすることで自動的に表がレンダリングされます。
(項目を表示するには、各ディメンションを展開する必要があります)

SnapCrab_NoName_2016-7-27_18-27-14_No-00.png


SnapCrab_NoName_2016-7-27_18-27-44_No-00.png
追加した項目を削除する場合は、Measuresの項目の場合は、項目をダブルクリックすることで削除することができます。
例えば上の状態からSalesを削除したい時は、Measuresのボックスに表示されているSalesをダブルクリックして削除します。

CEハンズオン-2.png


SnapCrab_NoName_2016-7-27_18-37-20_No-00.png
また、それ以外の項目(Rows、Columns、Filterに追加してあるもの)は項目をドラッグし、それぞれボックスの外にドラッグすることで削除ができます。


続いてフィルターについてですが、フィルターはすでにフィールドに追加してある項目にフィルターをかける場合と、フィールドに追加していない項目でフィルターをかける場合と2つのパターンがあります。

まず、すでにフィールドに追加してある項目にフィルターをかける場合、すでに追加してある項目をダブルクリックしていただくと、フィルタープロパティが表示されます。

SnapCrab_NoName_2016-7-27_18-39-1_No-00.png
例えば、YearをColumnsにドラッグし、その後、ドラッグしたYearをダブルクリックすると上のような画面が表示されます。

ここで、2003年のデータだけを表示さするようにフィルタリングをしたい場合は、2003にチェックを入れて、真ん中の>マークを押していただくと、右側に2003と表示されます。
この状態でOKを押していただくと、2003年のデータのみというフィルタリングがかかった状態になります。

SnapCrab_NoName_2016-7-27_18-39-12_No-00.png
SnapCrab_NoName_2016-7-27_18-39-20_No-00.png
続いて、フィールドに追加していない項目でフィルターをかける場合はFIlterというボックスに項目を追加した後、その項目をダブルクリックすることでフィルターの設定をすることができます。

例えば、ColumnsがYearでRowsがTerritoryという表でTypeにフィルタリングをかけたい場合、
Typeを別途Filterのボックスにドラッグアンドドロップしていただいた後、ダブルクリックすることでフィルタープロパティが表示されます。フィルタープロパティ後は先ほどと同様にフィルターする項目を選択し、OKボタンを押してください。

SnapCrab_NoName_2016-7-27_18-40-11_No-00.png


SnapCrab_NoName_2016-7-27_18-40-23_No-00.png
SnapCrab_NoName_2016-7-27_18-40-32_No-00.png
今回はレポート作成における簡単な操作を紹介いたしました。
次回はもう少し詳細な機能について説明していきます。

db tech showcase

|
IMG_0519.JPG

7月13日〜15日に秋葉原UDXで開催されましたdb tech showcase Tokyo 2016に行ってきました。

・データ活用はBIからAIへ〜DataRobotによる機械学習の自動化がデータの価値を変える
・Googleスケールの機械学習テクノロジー
・最新Cassandraの3.0とDataStax version5.0(GraphDB, Advanced Replication, Spark)
・Next Generation Apache Cassandra
・ビッグデータのオンライン分析:HadoopやOLAP技術
・SparkSQLを利用したBigData処理

と題された6セッションを聴いてきました。
最初のデータ活用はBIからAIへセッションで見せていただいたDataRobotのデモは
インパクト大でした。用意された教師データを読み取り、ターゲットを指定し、大きめのボタンをクリックすると
Kaggle上位ランカーの開発者達の知見に基づき、百数十?のアルゴリズムの中から選択され、
チューニングされた30ぐらいのモデルが並列で作成されるデモでした。
DataRobotに関してはこのセッションで知りましたので、衝撃的でした。

次のGoogleスケールセッションでは、ニューラルネットワークの説明で
中間層を増やすとより複雑な形を学習できることをtensorflow playgroundで見せていただき、
http://playground.tensorflow.org
tensorflowを使ったロボットの動画等をいくつか見せていただき、
Google Vision APIを使ったデモを見せていただきました。
http://vision-explorer.reactive.ai

Cassandraセッションはプレゼンで使用されていたスライドショーが
シェアされるとの説明がありました。

ビッグデータのオンライン分析セッションでは、
Apache KylinとApache DruidというOLAPエンジンが紹介されていました。
http://kylin.apache.org/
http://druid.io/
リアルタイムにペタバイト級のデータも処理できる技術みたいでした。

Bigdata処理セッションでは、IBM Bluemixで、RSSフィードを収集し、
Sparkで処理するデモが用意されてました。RSSフィードを収集し加工する際に
Node-REDというウェブブラウザベースのETLツールが使用されてました。

PentahoもこういったIoTな流れに追従してくれるものと期待しています。
以上です。

ユーザーコンソール上にデータソースとしてアップロードされているキューブの名前一覧を取得する場合、
直接キューブ名を取得するAPIはございませんが、スキーマ情報を取得するAPIがありますので、
このAPIを活用して取得することができます。

①まずデータグリッドステップにて、APIとして使うURLを入力します。
ここで使うAPIはpentaho/plugin/data-access/api/datasource/analysis/catalog/{スキーマ名}です。

データグリッド.png
②続いてHTTPクライアントステップにて、先ほどのステップで登録したAPIデータを入力しているフィールドを選択し、該当するサーバーのユーザー名とパスワードを入力してください。

httpクライアント.png

③XMLデータ取得ステップからファイルタブにて、「先行のステップから値を引き継ぐ」にチェックを入れて、先ほどのHTTPクライアントステップで設定した結果フィールド名を選択します。

XMLデータ取得1.png

④同じくXMLデータ取得ステップの全般タブにてXpathに/Schema/Cubeと入力してください。

XMLデータ取得2.png
⑤同じくXMLデータ取得ステップのフィールドタブにて、フィールド名を自由に入力していただき、
Xpathのところで「@name」、要素タイプに「属性」、結果タイプに「値」、データタイプに「String」を入力してください。

XMLデータ取得3.png
この状態で実行していただくと、この例ではSteelWheelsスキーマ内で設定されているキューブ名の一覧を取得することができます。

このAPIは実際にはURLの最後に指定したスキーマ内のキューブしか取得できませんが、
スキーマ名の一覧を取得するAPI(pentaho/plugin/data-access/api/datasource/analysis/catalog/)が別途ございますので、これら組み合わせてすべてのキューブ名の一覧取得をPDIで行うことができます。
EE版のみの設定にはなりますが、PUCで出力する際、出力ファイルの改行コードを変更することができます。

方法は起動スクリプトファイル(start-pentaho.shまたはctlscript.shファイル)、
-Dline.separator=$'\r\n'を追加してください。

その後再起動していただいてエクスポートを行うと改行コードがCRLFになっています。

※CRの場合は\r、LFの場合は\nを設定してください。

なお、CE版の場合、このスクリプトを設定すると不具合が発生しますので、お気をつけください。

2016年10月

            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          

アイテム

  • 11.png
  • 10.png
  • 9.png
  • 8.png
  • 7.png
  • 6.png
  • 5.png
  • 4.png
  • 3.png
  • 2.png

月別 アーカイブ