Pentahoを使ったデータ分析

明けましておめでとうございます。

2015年の第一弾はデータの分析に関する内容を紹介させていただきます。

今回紹介するのはオープンソースのBIツールPentahoを使ったデータ分析についてです。

Pentahoとは

PentahoとはオープンソースのBIツールです。

PentahoはBIスイートですので、レポーティング、アナリティクス、ダッシュボード、データ統合など様々な機能が用意されていて、これらの機能の中から必要な機能に限定して利用することもできます。

導入の背景

弊社では広告配信に関連するデータを集計して日々モニタリングしています。 データを分析する切り口はユーザによって様々であり、定型的なレポートを各ユーザごとに作成するのが難しい状況でした。 そこで、Pentahoのアナリティクス機能を導入し、ユーザがそれぞれ自分の見たい切り口でデータを分析できる環境を準備することになりました。

環境構築

PentahoとSaiku Analyticsを使ってデータ分析を行います。データを蓄積するDBにはMySQLを利用しています。

  • biserver-ce 5.2
  • Saiku Analytics 2.6
  • MySQL 5.x

MySQLはデータ分析用にレプリケーションされたものを利用します。 アナリティクス環境ではユーザが自由にクエリを発行できるため、広告配信用のDBとは分離して分析専用のDBを用意することにしました。

f:id:ptraft:20150106172848p:plain

今回はDBにMySQLを使っているため、Pentahoの設定ファイルでMySQLに接続するための設定を行う必要があります。

スキーマ設定

分析を行う前に、分析対象となるデータのスキーマを設定する必要があります。

キューブ、ディメンジョン、メジャーをそれぞれ設定します。

キューブとは多次元構造を表すもので、1つのデータソースとなります。 キューブに対して、分析を行う集計軸(ディメンジョン)と指標(メジャー)を設定します。

スキーマの設定はSchema Workbenchを使って行いましたが、ここでは詳細な操作方法については割愛させていただきます。

分析例

Saikuの操作は直感的に操作できるインターフェースとなっています。

ここでは、日付(Date)と広告のサイズ(Size)別にインプレッション(Impression)とクリック(Click)を抽出してみます。

まず、左側のMeasuresからImpressionとClickを選択します。 次にDimensionsからSizeを選択してColumnsに、DateのYear/Month/DayをRowsに設定します。 設定後にクエリを実行すると、画面右側のマトリックスが表示されます。 (※結果の数値は適当な値です)

結果のマトリックスをご覧いただければ分かるように、日付、広告サイズ別のインプレッションとクリックが指定した行列形式で表示されます。

f:id:ptraft:20150106201137p:plain

今回はシンプルなキューブを作成して分析を行いましたが、実際にはディメンジョン、メジャー共に10種類以上の項目を設定して利用しています。

Pentaho構築前は細かな集計をエンジニアに都度依頼して集計してもらう必要がありましたが、Pentahoの構築によって利用者は項目を自由に選択して分析できるようになりました。

エンジニアに依頼して集計してもらう場合は依頼するハードルやコスト、結果が出るまでに時間がかかる等、いろいろな問題が発生してしまいますが、これらの問題を少し解決できたのではないかと思います。