*

Cloud Datalabを試してみた

公開日: : 投稿者: BigQuery, Cloud Datalab, Cloud Storage, GCP

Google CloudDatalabとは

Cloud DatalabとはJupyterをベースとしたデータ分析を対話形式でかつWeb上で行うことが出来るシェル環境です。また、ソースコードやSQL、実行結果、テキスト、画像等を「1つのノートブック」としてまとめて扱えることが特徴です。
Datalabの環境はAppEngine+Flexible Environment上(machine typeはn1-standard-1)で動作する為、Flexible Environmentと同様の費用が課せられることになります。

※現在、Flexible EnvironmentはBeta版である為、今後改定されると思いますが現在はVMごとにGCEと同様の費用感になっているようです。

Jupyterとは

上記にもある通り、Jupyterを使うことによってデータの分析、可視化、共有等を1つのノードブックの上で完結できます。Jupyterの詳しい活用方法については以下の記事に良くまとまっているので、こちらを参考にしてみてください。

現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ http://techlife.cookpad.com/entry/write-once-share-anywhare
Jupyter から見た Treasure Data の使い方
http://qiita.com/k24d/items/d6e8b8200108353b5354
TreasureDataとPandasとJupyterでインタラクティブにデータを可視化する。
http://qiita.com/toru-takahashi/items/7c4320df5b77e4b6e2a5

本記事では基本的なDatalabの起動から、BigQueryのサンプルデータを用いた検索、CloudStorageからのデータインポート&エクスポートを紹介します。

CloudDatalabの起動

※本記事ではGCPプロジェクトの作成方法等は割愛します。作成がお済みでない方は以下を参考にプロジェクトを作成してください

初心者のためのGCPプロジェクト始め方入門

 

1. https://datalab.cloud.google.com へアクセス

以下の画面に遷移します。

 

datalab-signin

 

2.「Sign-in to Start」ボタンからサインイン

datalab-selectProject

プロジェクトの選択画面が表示されます。

3.プロジェクトの選択

既存のプロジェクト一覧が表示されますのでdatalabをデプロイするプロジェクトを選択してください。

デプロイボタン
まだデプロイしていない場合は画像のようにDeployボタンのみ有効になっています。

4.デプロイ

Deployをしてしばらくすると(10分~15分程)、以下のように他のボタンも有効になります。

image04

上記画像にある通りDeployすると…

  • AppEngineの「datalab」モジュール
  • 「datalab」というネットワークを持つComputeEngineのインスタンス
  • CloudRepositoryに「datalab」というブランチ

の3つが新たに指定したプロジェクト内に作成されます。

実際にGoogle Cloud ConsoleのCompute Engineの画面で確認すると、

インスタンス概要

インスタンス詳細
Flexible Environment(旧Managed VMs)のインスタンスが起動していることが分かります。

※注意

GCEのインスタンスの削除のみ行うと、10分くらいすると再度GCEインスタンスが立ち上がり、課金状態は継続されます。インスタンスを完全に削除する為には、AppEngine→サービスの画面からサービス「datalab」を削除する必要があります。

image21

Start

Startボタンを押下すると、Datalabのページに遷移します。

DatalabTop
ここで重要となるのはNotebookと呼ばれる、テキストやソースコード、グラフ等をひとまとめにしたファイルです。上図にはdatalabというディレクトリと共にdatalab-sample.ipynb、Hello World.ipynbという2つのNotebookが表示されています。

Notebookの作成内容の記述

CreateNotebook

Notebookのボタンをクリックすると新しくNotebookが作成されます。

wikipedia sample
後はこのNotebookを編集していきます。

使用するサービスの宣言

まずはこのNotebook内で使用するサービス(注1)を以下のように宣言します。

import

今回はBigqueryのみ使用するのでこのように記述します。

このように宣言すると、Datalab側で用意されているBigQueryのAPIをbq.Query()のように利用できるようになります。

早速ですがBigQueryにデフォルトで用意されているdataset(bigquery-public-data:samples)に対してクエリを実行してみたいと思います。

(注1)DatalabではデフォルトでGoogleCloudStorageや数値計算で有名なPythonのライブラリ「numpy」、データ解析に用いられる「pandas」といった外部のライブラリが利用できます。

import storage

 

また、デフォルトで使用出来ないものでも以下のようにaptやpip(pythonのパッケージ管理システム)を利用してライブラリをインストールすることも可能です。

image07

pip list

クエリの定義と実行

sample

dataset内のwikipediaテーブルに対してtitleに「Japan」が含まれるレコードを10件取得し、その結果を表示しています。12GBのデータに対する検索結果が0.9秒で返ってきていることが分かります。

グラフ表示

以下のようにChart APIを利用して検索結果をグラフとして表示することも出来ます。

visualize

検索結果からレコード数とクエリの取得

また、検索結果からレコード数と検索に使用したクエリを取得することも出来ます。

query

プロジェクト内データセット・テーブル情報の参照

データセットの一覧やテーブル一覧、スキーマ情報等も参照可能です。

dataset_table

データセット・テーブルの新規作成

notebookから直接同プロジェクトのBigQueryにデータセットやテーブルを作成することも出来ます。

create_table
データセット「sample」と「name, value, flag」をスキーマに持ったテーブル「sample_table」が作成出来ました。

データのインポート

次に、CloudStorageに置いてあるCSVファイルのデータをインポートしてみます。

まず、Storage上にインポート用のcsvファイルを用意しました。内容は以下の通りです。?image12

このcsvファイルのデータを先程作成したテーブルにインポートします。

image13

Job IDが表示されていればとりあえずはOKです。テーブルの中身を確認してみましょう。

Wiki Sample

先ほど確認した3つのレコードが正しくインポートされていることが分かりますね。

データのエクスポート

次にテーブル内のデータをCloudStorageにエクスポートしてみます。

export_table

export_test.csvというファイル名でCloudStorageにエクスポートすることが出来ました。

まとめ

今回はDatalabの起動から簡単なクエリの実行、CloudStorage→BigQueryのデータインポート、BigQuery→CloudStorageのデータエクスポートを試してみました。SQLの知識は多少必要になりますが、エンジニア以外の方でもそれほど抵抗なくDatalabを通してデータ分析を行えそうだという印象をお持ちになられた方も多いのではないでしょうか?今回はあまり触れられていませんがテキストも含めて分析の過程を保存、バージョン管理ができる点もデータ分析においては強みの1つになるでしょう。
データの集約先としてGoogleのサービス(BigQueryやCloudStorage等)を利用している場合には分析ツールの候補の一つとして利用を検討してみてはいかがでしょうか?
データ分析等でお困りでしたら、クラウドエース(Cloud Ace)までお問い合わせ下さい!

関連記事

2016/2/24 GCE vs AWS vs Azure ベンチマーク

2016/02/24 GCE vs EC2 vs Azureベンチマーク 本シリ

記事を読む

2016/06/23 GCE vs AWS vs Azure ベンチマーク

2016/06/23 GCE vs EC2 vs Azureベンチマーク 本シリ

記事を読む

2016/10/03 GCE vs AWS vs Azure ベンチマーク

2016/10/03 GCE vs EC2 vs Azureベンチマーク 本シリ

記事を読む

2015/02/25 GCE vs AWS ベンチマーク

2015/02/25 GCE vs AWS ベンチマーク 本シリーズでは定期的にGCEと

記事を読む

2015/02/12 GCE vs AWS ベンチマーク

2015/02/12 GCE vs AWS ベンチマーク 本シリーズでは定期的にGCEとEC2のベ

記事を読む

東京リージョンによってGAEの速度は早くなったのか!?

ついにGAEに東京リージョンが新設されました!!サービス開始からGAEを触れていたユーザにと

記事を読む

2016/04/19 GCE vs AWS vs Azure ベンチマーク

2016/04/19 GCE vs EC2 vs Azureベンチマーク 本シリー

記事を読む

2015/07/03 GCE vs AWS ベンチマーク

2015/07/03 GCE vs AWS ベンチマーク 本シリーズでは定期的にGCEとEC2のベ

記事を読む

2015/01/29 GCE vs AWS ベンチマーク

2015/01/29 GCE vs AWS ベンチマーク 本シリーズでは定期的にGCEとEC2のベ

記事を読む

2016/04/14 GCE vs AWS vs Azure ベンチマーク

2016/04/14 GCE vs EC2 vs Azureベンチマーク 本シリー

記事を読む

PAGE TOP ↑