2013年5月7日火曜日

Redshiftってなんじゃ?(BI編:JaspersoftでRedshift)

前回はpsqlでRedshiftを利用してみましたが、通常データウェアハウス(DWH)というのはBI(Buisiness Intelligence)ツールを利用することが多いようです。

エンジニアの観点からすると複雑なSQLを書くだけでいいかもしれませんが、経営者などの立場からするとBIツールなどを使って画面上でポチポチやって分析できることが重要なようです。

今回はそのBIツールの中で、Redshiftにいち早く対応しているJaspersoftという製品を使ってRedshiftに接続してみたいと思います。




起動とログイン



RedshiftとRDSに対応してあるバージョンのJaspersoftのAMIがマーケットプレイスにあるので、それを購入します。

Jaspersoft Reporting and Analytics for AWS
https://aws.amazon.com/marketplace/pp/B00B527JQ0





このAMIはインスタンスのランニングコスト以外にもソフトウェアの使用料金が時間単位で掛かります。
ここでは、RedshiftのあるUSのリージョンで起動します。




AWSコンソールのページが開き、インスタンス起動のウィザードが実行されます。




Redshiftと同じゾーンを選択します。
今回はm1.mediumのサイズで立ちあげます。




ここではルートボリュームを100GBにします。



また、セキュリティグループではSSHとHTTPをあけておきます。




起動させたあと、このインスタンスのPublicDNSまたはEIPに対してローカルのブラウザからアクセスしてみます。
すると、jasperサーバーの初期画面が表示されるので、「Login」をクリックします。



すると、ログイン画面が表示されます。



「ログインのお手伝いが必要ですか」というリンクをクリックすると、下図のように初期のID、パスワードが表示されます。ここではsuperuserでログインしてみます。



すると、新しいパスワードを要求されるので、好きなパスワードを設定して改めてログインします。



これでログインすることが出来ました。
これがJasperサーバーのホーム画面のようです。





データソースの登録



次に、データソースを作成します。
ここでいうデータソースとは、データがある場所をしめします。
データベースの場合やファイルの場合などがあり、ここではRedshiftをデータソースとして登録します。
グローバルヘッダの「作成」から「Data Source」を選択します。


 データソース作成画面では、タイプ欄からいくつかのデータソースタイプが選択でき、今回は「JDBC Data Source」を選択します。




ちなみに「AWS Data Source」でRedshiftを選択しても接続できます。






ドメインの作成



次にドメインを作成します。ドメインとはビューに渡すデータセットに当たります。
データソースからデータを選別してビューに渡すために整理した状態にします。

グローバルヘッダから「作成 > ドメイン」を選択します。

 ドメイン作成画面では、ドメイン名と作成したドメインの保存場所を適当に入力します。
また、データソースには先ほど作成したRedshiftのデータソースを選択します。
そして、ドメインデザイナのリンクをクリックします。


すると、ドメインデザイナが開き、データソースの「テーブル」タブが表示されます。
ここで、「>」ボタンなどで使用するテーブルを右側の枠に持っていきます。


次の「派生テーブル」タブで選択されたテーブルを対象に直接クエリ(SubQuery)などをかけられたり、



複数のテーブルを結合(Join)できたり、



フィルタ(Where)をかけられたり


などといったことができます。
つまりドメインというのはGUIでつくるSQL、つまりクエリビルダのようなものです。

最後の「表示」タブでは、このようにして作ったデータセットに対して、レポート表示時のラベルをつけれたりできます。




 そして「OK」を押すと、ドメインにこの設定が保存されます。
 ドメイン作成画面に戻り、「送信」を押すとこのドメインが作成されます。





アドホックビューの作成



次にアドホックビューを作成します。
アドホックビューは、レポート用の様々なタイプのビューで、グラフなどを作成できます。




アドホックビューでは最初に、入力ソースを選択します。
ここでは、さきほど作成したドメインを選択します。





 次に、ドメインに含まれるフィールドを選定します。
使用するフィールドを右側に移動し、下部のボタンから、テーブルやグラフなど表示タイプのボタンを押します。 今回は「グラフ」のボタンを押します。





すると、UIデザインの画面が開きます。
 ここで、左側の「フィールド」と「メジャー」から中央上部の「列」や「行」に適用する項目をドラッグします。この部分はGoogle Analyticsでカスタムレポートに指標やディメンションを追加するのに似ています。




 ここでは、列にprefecture_name, 行にcntをセットして、右側のデータラベルを右側にスライドします。
すると以下のようにグラフが自動で作成されます。
グラフのタイプを変更するには、グラフ左上の歯車アイコンをクリックして、変更します。





保存する場合は、中央ツールバーのディスクアイコンで保存します。








レポートの作成



 次に、レポートを作成します。
レポートは基本的に、アドホックビューを選択するだけです。





レポート作成画面でもグラフのタイプを変更することができます。



 ツールバーのディスクアイコンでレポートを保存します。






ダッシュボードの作成



最後はダッシュボードです。



ダッシュボードの作成画面では、複数のレポートを貼り付けたり、コントロールを貼り付けたりして帳票としての全体的な画面をつくります。




作成されたダッシュボードは以下のようになります。
このように、DBの知識がほとんどなくてもいろいろなデータの見た目をプリセットで整えて、手軽に更新、確認できるのがBIツールの役目のようです。





まとめ



Jaspersoftを使ってみた感覚としては、独特のコンポーネントにつけられた用語や意味を把握するのに少し戸惑いますが、慣れてしまうとそれなりに直感的に操作ができます。

ただ、異なるデータソースのデータ同士をJoinできるかと思ったのですが、やりかたがわかりませんでした。
その場合は、RedshiftにインポートしてRedshiftデータソースとして、ドメイン内でJoinしてしまえばよいかなと思います。


以上です。