これなら使える!ビッグデータ分析基盤のエコシステム

第4回ビッグデータ分析基盤のためのアドホック分析環境 ~導入編

アドホック分析環境とは?

ビッグデータ分析におけるアドホック分析では、レポーティング分析で得られた気づきを元に具体的な根拠を得るために実施するケースと、ユーザが今までに無い条件を元に分析をするケースがあります。つまり、分析の当初はアドホック分析を行いながら、レポーティング分析に必要な基本KPIを見つけ出していくことが必要になります。

今回と次回で、JupyterとPandasを用いてアドホック分析環境を構築し、分析エンジンとして利用するMySQLに対してインタラクティブに集計と可視化を行うための準備をします。

JupyterとPandasとは?

Jupyterは、Webブラウザベースのインタラクティブシェルを提供するツールです。元々は、iPythonという名前で、Python用のWebブラウザのインタラクティブシェルを提供していました。そこから現在は進化し、Jupyterという名前でさまざまな言語に対応したWebブラウザベースのインタラクティブシェルとして公開されています。特徴として、Notebook(.ipynb形式)というファイルに実行したシェルの内容や画像を保存されるようになっており、簡単に分析内容を共有することができるようになっています。

Pandasは、Python用の表や時系列データを扱うのに長けたデータ解析支援のためのライブラリです。Pandasを用いることでさまざまなデータベースからデータを取得するだけでなく、Jupyter上で簡単にデータ解析を行えるようになります。

各種ツールのインストール

利用環境

  • Ubuntu 14.04
  • Python 3.4
  • Pandas (0.16.2)
  • Jupyter (Jupyterhub 0.2.0)

Python3のインストール

Ubuntu14.04ではPython3.4がデフォルトで入っていますが、エイリアスの設定などがデフォルトのままだと使いづらいため、pyenvを使って環境構築を行います。。

ライブラリのインストール
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install git gcc g++ make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev python-dev libmysqlclient-dev
pyenvとPython3のインストール
$ cd /usr/local/
$ git clone git://github.com/yyuu/pyenv.git ./pyenv
$ mkdir -p ./pyenv/versions ./pyenv/shims
$ echo 'export PYENV_ROOT="/usr/local/pyenv"' | sudo tee -a /etc/profile.d/pyenv.sh
$ echo 'export PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}"' | sudo tee -a /etc/profile.d/pyenv.sh
$ source /etc/profile.d/pyenv.sh

$ sudo visudo
#Defaults       secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults    env_keep += "PATH"
Defaults    env_keep += "PYENV_ROOT"

$ pyenv install -v 3.4.3
$ pyenv global 3.4.3
$ pyenv rehash
Pandasのインストール
$ pip install --upgrade pip
$ pip install pandas
Jupyterのインストール
$ apt-get install npm nodejs-legacy
$ npm install -g configurable-http-proxy
$ pip install zmq jsonschema

# 可視化用ライブラリ
$ apt-get build-dep python-matplotlib
$ pip install matplotlib
# MySQL接続用ライブラリ
$ pip install mysqlclient ipython-sql

$ pip install ipython[notebook] jupyterhub

$ passwd ubuntu

$ jupyterhub

※今回は複数のユーザの利用を想定してJupyterhubというマルチクライアント用のツールを使いました。しかし一人で利用するケースでは、JupyterhubではなくJupyterをローカルで利用する方が便利です。。

さて、これでJupyterが起動しました。下記のアドレスでログインをしてみましょう。

http://'IP address':8000/

図1 ログイン画面
図1 ログイン画面

ユーザの認証は、Ubuntuユーザでログインをすることができます。

図2 Top画面
図2 Top画面

Jupyterの基本的な使い方

“Hello World”してみる

トップ画面で、New -> Python3を選択し、Python3用のNotebookを作成します。この後は、Pythonのインタラクティブシェルと同様のことが可能になります。

とりえあず、最初はHello Worldをしてみましょう。下記を入力してShift+Enterで実行できます。

print('Hello World!')
図3 helloworld
図3 helloworld

Pythonが実行できることを確認できましたね。

このNotebookでの作業内容は .ipynb という拡張子を持つファイルに自動で保存されます。

また、グラフの描画をしたい場合には、事前に下記を実行しておきます。

%matplotlib inline

そして、下記のコマンドを実行してみましょう。

import matplotlib.pyplot as plt

plt.plot(range(100))
図4 visualize
図4 visualize

このように%を先頭に付けることで、マジック関数(Magic Function)と呼ばれる特別な関数がいくつか用意されており、インタラクティブな分析に役立ちます。また、先頭に!を付与すると、シェルのコマンドを実行することができます。

この他、マークダウンを埋め込むことも可能です。

図5 markdown
図5 markdown

また、ここで作成したnotebookをGithub上にアップロードすると、Jupyter上の表示そのままでGithub上で表示させることが可能です。

図6 github
図6 github

Jupyterまとめ

今回はJupyterのインストールと起動、簡単な利用方法について説明しました。Jupyterは、あくまでもインタフェースで、これだけで何か分析ができるわけではありません。しかし、分析の試行錯誤を簡単に記録できるようにしておくことで、そうした試行錯誤の過程をナレッジとすることができるのです。

次回は、Jupyterをインターフェースとして、データ分析ライブラリPandasの使い方を紹介します。

おすすめ記事

記事・ニュース一覧