BigQueryに読み込んだTwitterデータを、Datalabで分析・可視化する

GCP
Nishipy
AWSしか触ったことのない私が、BigQueryに読み込んだデータを、Google Datalabを用いて可視化してみます。

1. やりたいこと

  • BigQueryにデータを読み込み(前回やった)
  • BIgQuery上のデータを、Datalabで可視化
  • Datalabで可視化した結果を、Cloud Storageに出力

2. 前提知識

Cloud Datalab

インタラクティブな分析ツールです。ほぼJupyter Notebookと同じです。
GCPの他のサービスとの連携が容易になるように、よく使うライブラリは予めインストールされています。
Cloud Datalab自体は無料ですが、GCE(Google Compute Engine, いわゆるIaaS)上で動くので、GCEインスタンスの利用料が課金されます。
詳細は、下記リンクを参照ください。

Datalab shutdown  |  Cloud Datalab Documentation  |  Google Cloud
Explore, analyze, transform, and visualize data, and build machine learning models on Google Cloud Platform with this easy-to-use interactive tool.

3. 扱うデータ

Twitter APIを用いて収集した、自身のTweetデータを扱います。
詳しい手順は以下の記事を参照ください。

Pythonで自分のツイートをすべて取得する方法と、いいねが多いツイートの特徴
Nishipy本ブログ用に作ったTwitterアカウントのフォロワーが1000人を超えました!良い節目ですので、自分の今までのツイートをスクレイピングします。そして、"いいね"数が多いツイートの傾向について、見ていきます。...(続く)


4. やってみる

データの読み込み

せっかくなので、前回作った仕組みを使って、読み込んでみます。

Cloud Functionsで、GCSにアップロードしたCSVデータをBigQueryに読み込む
NishipyAWSしか触ったことのない私が、最近GCP(Google Cloud Platform)を使う機会があったのでメモします。Cloud Functionsのチュートリアルとしてご覧ください。1. やりたいことCl...(続く)
  • Cloud Storageにデータをアップロード
  • Cloud Functionsにより、BigQueryへデータ読み込み
    Stackdriverのログは、以下の通り。正常に実行できた模様。

  • BigQuery上で確認
    対象テーブルをみてみるとこんな感じです。

Cloud Datalabでの可視化

Cloud Datalab用インスタンスの作成

  • Cloud Shellからデプロイ
  • インスタンス名には、datalab-instanceを指定
  • zoneには、東京リージョンのゾーンasia-northeast1-aを指定

Cloud Datalab用インスタンスへの接続

  • 以下のコマンドで接続

  • インスタンスへSSH接続し、Datalab起動

完了すると、以下のメッセージが表示されます。

  • 上記メッセージに従い、8081ポートを指定してプレビュー表示

これで、Datalabが開きます。

データ可視化

ここからは、DatalabでNotebookを作成してコードを書いていきます。↓のような感じ。

  • ライブラリインポート

    なお、Google Cloud Client Library for Pythonの詳細は、こちら。

https://googleapis.github.io/google-cloud-python/latest/
  • BigQueryへのクエリ実行
    クエリに結果は、pandas.DataFrameにいれます。

  • グラフで可視化した結果を、Cloud Storageに格納
    • 適当に可視化し、カレントディレクトリにグラフの画像を保存

    • グラフをpng形式で、Cloud Storageに保存

  • Cloud Storageバケットを確認
    アップロード先のバケットを確認すると、先ほど作成したグラフがdemo-chart.pngとして格納されているはずです。

5. 今後やりたいこと

  • BigQueryとGoogle Data Portalを連携


以上.

コメント