GoogleAppsScript
GoogleSpreadSheet
GoogleCloudPlatform
bigquery

コピペでできちゃうBigQuery実行結果のスプレッドシート書き込み

More than 3 years have passed since last update.

BigQueryを使い始めたのは最近なので、まだそれほど使いこなせてないです。

そんな私ですが、BigQueryの結果をスプレッドシートに反映させるのが便利なので、ちょっとご紹介したいと思います。


注意

下記の内容はこちらのGoogle公式ドキュメントをちょっと日本語訳してみた程度の内容ですのであしからず。


はじめに

BigQueryにデータを突っ込むところなどは端折ります。

今から試すコードはBigQueryに予め用意されていて誰でも自由に使える publicdata:samples.shakespeare を使いますので、データセットやテーブル作ったりの知識は不要です。


やってみる

Google Driveを開いて、新規作成 > Google Apps スクリプトを選択します。

項目がない場合は、新規作成 > その他 > アプリを追加から、Google Apps Scriptを追加して下さい。

新規スクリプトファイルを開けたら、空のファイルから始めて、下記のドキュメントのコードをコピー&ペーストして下さい。

https://developers.google.com/apps-script/advanced/bigquery.js

三角ボタンを押してコードを走らせようとすると、下記のようなダイアログで認証を求められます。

スクリーンショット 2014-12-08 8.51.41.png

続行&承認しましょう。すると今度は、下記のように怒られると思います。

スクリーンショット 2014-12-08 8.53.41.png

ドキュメントに書かれているのですが、This is an advanced service that must be enabled before use. BigQueryクラスは使う前に有効にする必要があります。

メニューのリソース > Googleの拡張サービスより、BigQueryをオンにしましょう。

スクリーンショット 2014-12-08 8.55.40.png

何やら下にも「これらのサービスはGoogleデベロッパーコンソールでも〜」等と書かれていますね。押してみましょう。

スクリーンショット 2014-12-08 8.59.28.png

こちらも有効にする必要があるようです。BigQueryを選択して、オフ→オンに変更しましょう。下のようになっていればOKです。

スクリーンショット 2014-12-08 9.00.44.png

さて、そろそろ動きますかね……?ってことで、スクリプトに戻って実行すると、下記のように怒られます。

スクリーンショット 2014-12-08 9.01.53.png

projectId = 'XXXXX';となってる部分をちゃんとしやがれ、ってことみたいです。さっきのgoogle デベロッパーコンソールを開いてIDを確認しましょう。プロジェクト番号って部分がそれです。左のメニューから、プロジェクトの概要を見ることで確認できます。URLの一部がIDになってるので、それをコピペでもいいですね。

スクリーンショット 2014-12-08 9.05.22.png

終わったら今度こそ実行!

 スクリーンショット 2014-12-08 9.08.31.png

このトーストが消えたら実行完了です。https://drive.google.com にアクセスすると、BigQuery Results というファイルができていますので、開いてみましょう。

スクリーンショット 2014-12-08 9.10.35.png

ワオ!


おわり

ということで、コピペでお試しできてしまいました。

あとは、特定のシートに反映させたければ サンプルコード 30,31行目辺りでシートを直接指定すれば良いですし、定期的に自動で反映させたければメニューからリソース > 現在のプロジェクトのトリガーから、runQueryを定期実行させるようにすればOKです。私が実際に使ってるコードも、これらをかんたんに設定できるように改変してるだけのものです。

GASやBigQueryに詳しくなくてもサクッと試せますので、ぜひ一度お試しください。