Cloud Datalabを試してみた

ご注意

この記事は 2016年5月25日 に書かれたものです。内容が古い可能性がありますのでご注意ください。

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)までお問い合わせ下さい!

Google のクラウドサービスについてもっと詳しく知りたい、直接話が聞いてみたいという方のために、クラウドエースでは無料相談会を実施しております。お申し込みは下記ボタンより承っておりますので、この機会にぜひ弊社をご利用いただければと思います。

無料相談会のお申込みはこちら