メニュー

【GCP入門編・第13回】 Cloud Datalab でデータの可視化を行ってみよう!

【GCP入門編・第13回】 Cloud Datalab でデータの可視化を行ってみよう!

GCP

記事投稿 | 2018.02.07

【GCP入門編・第13回】 Cloud Datalab でデータの可視化を行ってみよう!

データの解析を行った後に、可視化して全体を把握したいといった時や、ヒストグラムや箱ひげ図を描きたい、そんな時に皆様はどのようなツールを使っているでしょうか? Microsoft Excel, JMP, Tableau といったソフトウェアを使って可視化する方は多いのではないかと思います。また、普段 Python をお使いの方であれば、 matplotlib や seaborn を使っているのではないでしょうか。

Google Cloud Platform (GCP) では、 Cloud Datalab という可視化ツールが提供されています。データ分析、可視化のためのツールとして人気のある Jupyter Notebook をベースとして作られており、 BigQuery や Cloud Storage といったサービス上にあるデータを手軽に取得し、可視化することができます。

Jupyter Notebook と同様に、データ解析に用いられる numpy 、 pandas や、可視化に用いられる seaborn 、 matplotlib といった人気のあるライブラリはデフォルトで利用可能となっていますので、別途パッケージをインストールすることなく GCP 上のデータを解析、可視化することが可能です。

この記事では、 Cloud Datalab の概要を説明し、実際に Cloud Datalab を使って BigQuery 上のデータを可視化してみます。

この記事の目的

  • Cloud Datalab の概要を理解しよう。
  • Cloud Datalab を使って BigQuery 上のデータを可視化してみよう。

Cloud Datalab とは

Cloud Datalab は GCP のサービスの一部として提供されているデータ解析、可視化ツールです。ユーザーは Cloud Datalab の動作する Docker イメージをローカル、もしくは Google Compute Engine 上で動作させ、 Google BigQuery や Google Cloud Storage 上のデータを解析することが可能です。

Cloud Datalab のベースである Jupyter Notebook は、動作するコードを埋め込んだドキュメントを作成するために使われるソフトウェアです。このため、解析結果を出力するために書いたコードや、その説明と共にデータの解析結果を共有することが可能です。 Cloud Datalab でも、作成した notebook は Jupyter の notebook 形式でダウンロードできますので、プロジェクト内で可視化のコードを共有することも、簡単に行うことができます。これは解析用コードの再利用や、多人数でデータの解析を行う際に力を発揮します。

Cloud Datalab は Docker イメージとして配布されているため、特に設定を行わなくても動かすことが可能です。コンテナイメージを取得すれば気軽にデータ解析環境が手に入るので、いちいちスクリプトを書くよりも効率的ですし、スクリプトがなくなってしまったので再度書く、といったデータ解析にありがちな問題を回避することもできます。

これまで書き捨てのスクリプトを使ってデータの解析を行っていた、データをダウンロードして Excel で可視化を行っていた、そんな経験がある方は、この機会に Cloud Datalab を使ってデータの可視化と共有をはじめてみてはいかがでしょうか。

Cloud Datalab を使ってデータの可視化を行う

それでは、早速 Cloud Datalab を使ってデータの可視化を行ってみましょう。このデモでは、 Google Cloud Shell を使って Cloud Datalab を起動し、 BigQuery 上にあるサンプルデータを可視化してみます。

まずは、ブラウザで GCP のコンソールを開き、画面上部にある Google Cloud Shell のアイコンをクリックします。

Google Cloud Shell が起動したら、以下のコマンドを実行し、 Cloud Datalab の VM を作成します。 test-datalab は VM のインスタンス名です。

$ datalab create test-datalab

Compute Engine の VM が作成されます。この時に zone の選択を求められた場合、 6 を入力して asia-northeast-a を選択します。 VM が起動したら、 SSH の鍵ペアのパスフレーズの入力を求められますので、設定します。

設定後、再度パスフレーズの入力を求められるので、先ほど設定したパスフレーズを入力します。入力が完了すると、 Cloud Datalab の起動が行われ、以下のメッセージが表示されます。

The connection to Datalab is now open and will remain until this command is killed.
Click on the *Web Preview* (up-arrow button at top-left), select *port 8081*, and start using Datalab.

01.png

メッセージに書かれている通りに、上の図の Web Preview のアイコンをクリックして、 Change Port メニューを選択し、 Port 8081 をクリックします。別のタブで下の画面のように Google Cloud Datalab が開くでしょう。

03.png

早速、 [+Notebook] をクリックし、新規にノートを作成します。

05.png

ノートの編集画面では、上の画像のようなメニューが表示されています。 ”Add Code” で新しくコードブロックを追加することが可能です。初期状態ではコードブロックの入力ボックスが1つ表示されていますので、以下のコードを追加します。
まず、可視化に使うライブラリと BigQuery API をインポートします。

import pandas as pd
import seaborn as sns
import datalab.bigquery as bq

次に、 BigQuery 上の dataset をロードするコードブロックを追加します。 bq.Datasets クラスを使うとプロジェクトの dataset を取得することができます。

datasets = bq.Datasets(project_id = 'cloud-datalab-samples')
for ds in datasets:
  print ds.name

ここまでで一旦、上部メニューの “Run” をクリックしてみましょう。下の画面のように表示されていれば、成功です。

06.png

ここで使用している cloud-datalab-samples は、 Cloud Datalab のチュートリアルのために用意された BigQuery のプロジェクトです。上の図に表示されている通り、 httplogs , appenginelogs , carprices という3つのデータセットを持っています。

今回はこの中の、 HTTP ログデータのサンプル ( httplogs ) を使って可視化を行います。このログデータは、以下の表のようなデータとなっています。

timestamp latency status method endpoint
2014-06-15 07:00:00.536486 48 200 GET Interact3
2014-06-15 07:00:00.003772 122 200 GET Interact3
2014-06-15 07:00:00.428897 144 200 GET Interact3

それでは、データ取得用のコードブロックを追加しましょう。まず、1つのコードブロックを追加し、以下のように記述します。

%%sql --module logspreview
SELECT latency FROM [cloud-datalab-samples:httplogs.logs_20140615] LIMIT 1000

このコードブロックで、 logspreview というモジュールに SQL 文が追加されます。これを実行するには、もう1つコードブロックを追加し、以下のコードを追加します。

q = bq.Query(logspreview)
results = q.results(use_cache = False)

Results にクエリの結果が格納されました。さらに1つのコードブロックを追加し、可視化のためのコードを追加します。

dataframe = pd.DataFrame(list(results))
g = sns.distplot(dataframe["latency"])

07.png

上記の図のように、レイテンシーのヒストグラムが描けたかと思います。
このように、 Cloud Datalab を使えば少しの労力で GCP 上のデータを可視化することが可能です。

08.png

上部メニューの “Notebook” の [Download] をクリックすると、ここまでに作成したノートブックをダウンロードすることができます。データや可視化結果の共有や再利用に役立ちます。

おわりに

いかがでしたか。 Cloud Datalab を使えば簡単に GCP 上のデータを可視化することができます。 Cloud Storage にたまったログデータの解析や、 BigQuery 上のデータの可視化といったタスクに威力を発揮します。

PAGE TOP