BigQueryを使い始めたのは最近なので、まだそれほど使いこなせてないです。
そんな私ですが、BigQueryの結果をスプレッドシートに反映させるのが便利なので、ちょっとご紹介したいと思います。
注意
下記の内容はこちらのGoogle公式ドキュメントをちょっと日本語訳してみた程度の内容ですのであしからず。
はじめに
BigQueryにデータを突っ込むところなどは端折ります。
今から試すコードはBigQueryに予め用意されていて誰でも自由に使える publicdata:samples.shakespeare を使いますので、データセットやテーブル作ったりの知識は不要です。
やってみる
Google Driveを開いて、新規作成 > Google Apps スクリプトを選択します。
項目がない場合は、新規作成 > その他 > アプリを追加から、Google Apps Scriptを追加して下さい。
新規スクリプトファイルを開けたら、空のファイルから始めて、下記のドキュメントのコードをコピー&ペーストして下さい。
https://developers.google.com/apps-script/advanced/bigquery.js
三角ボタンを押してコードを走らせようとすると、下記のようなダイアログで認証を求められます。
続行&承認しましょう。すると今度は、下記のように怒られると思います。
ドキュメントに書かれているのですが、This is an advanced service that must be enabled before use.
BigQueryクラスは使う前に有効にする必要があります。
メニューのリソース > Googleの拡張サービスより、BigQueryをオンにしましょう。
何やら下にも「これらのサービスはGoogleデベロッパーコンソールでも〜」等と書かれていますね。押してみましょう。
こちらも有効にする必要があるようです。BigQueryを選択して、オフ→オンに変更しましょう。下のようになっていればOKです。
さて、そろそろ動きますかね……?ってことで、スクリプトに戻って実行すると、下記のように怒られます。
projectId = 'XXXXX';
となってる部分をちゃんとしやがれ、ってことみたいです。さっきのgoogle デベロッパーコンソールを開いてIDを確認しましょう。プロジェクト番号って部分がそれです。左のメニューから、プロジェクトの概要を見ることで確認できます。URLの一部がIDになってるので、それをコピペでもいいですね。
終わったら今度こそ実行!
このトーストが消えたら実行完了です。https://drive.google.com にアクセスすると、BigQuery Results というファイルができていますので、開いてみましょう。
ワオ!
おわり
ということで、コピペでお試しできてしまいました。
あとは、特定のシートに反映させたければ サンプルコード 30,31行目辺りでシートを直接指定すれば良いですし、定期的に自動で反映させたければメニューからリソース > 現在のプロジェクトのトリガーから、runQueryを定期実行させるようにすればOKです。私が実際に使ってるコードも、これらをかんたんに設定できるように改変してるだけのものです。
GASやBigQueryに詳しくなくてもサクッと試せますので、ぜひ一度お試しください。