社内でデータ分析のレポートを書く際は Google Colab がとても便利な事に気がついた。
Google Bigquery でデータを抽出、Google Sheets で可視化
従来だと、自分がやっていた方法として、
-
Google BQ などで分析対象結果のデータを抽出
-
その結果を Google Spread Sheet として保存して、Google Sheets の機能で可視化。元の SQL のコードは、別シートを作ってそこに貼り付けておく。
利点としては、一度データを抽出した後は、Google Sheets で二次加工が簡単にできる点がとても便利。
また、 Google Sheet を共有後に Produc Manager が出したい数値を、Product Manager 自身が Google Sheets を元にさっと計算することもできる。
だが、二次加工が便利なのはいいが、大抵の可視化ってパターンが決まっているかつ二次加工の状況が必ず発生するわけではないので、SQL 取得とその可視化を一気通貫でできないかなと考えていた。
なにか良い方法無いかなと思っている矢先に、別のチームの同僚が、Google Colab を使って、BQ を dataframe として保存後 matplotlib で可視化しているのを見かけて、
求めていたのは…こ、これだ…
となり、速攻取り入れました。
良いと思ったところは積極的に真似する
Google Colab なら、データの取得・加工・可視化までを完結可能
Google Colab の利点を列挙しておく
- SQL のコード、データ抽出や可視化のロジックなどが Python で記述可能かつ、Google Colab で完結
- matplotlib で可視化できるので、見やすく美しい図を作れる
- そしてそのコードは他のデータ分析でも再利用可能
- pandas dataframe で Google BQ からデータを取得するので、Standard SQL だけでは難しい計算も pandas、 numpy や scipy などを使ってデータ加工が簡単にできるのも、便利
-
Google Sheets 同様、簡単に社内で共有できる
-
Markdown も Google Colab 内で書けるので、凝った文章などもいれてレポートも書ける
マジックコマンドで、Google BQ の結果を dataframe として保存1したり、
また、#@title TITLE
を Google Colab のセルの上部に入力すると、コードの部分は非表示になりスッキリした見かけにすることができる。2
と書くと
が
こうなり、右側をクリックすると
コード部分を隠すこともできる。
この機能もレポートとして書く際には重宝しており、このセルで何をやっているかも docstring っぽく記述しておくことができる。
入力フォームも簡単に作れる2ようなので、可視化やレポート作成という本懐を見誤ることがなければ、やはり Notebook は便利。
二次加工が決まっている工程なら「Google Bigquery でデータを抽出、Google Sheets で可視化」の方法を取ればいいが、
サっと分析して可視化結果を共有したいときには、Google Colab が一択になった。
余談
@yohei_kikuta さんが、以前 Blog で「BigQuery を使って分析する際の tips」のシリーズを書いており、他者のワークフローを拝見するのは参考になるなと思い、自分も書いてみた。3
- part3: 具体的なクエリの tips (このエントリ)
Footnotes
-
BigQuery を使って分析する際の tips ↩