BigQueryを簡単に閲覧できる環境が欲しかったのでローカルにdockerでZeppelinを立てて接続してみました。
docker-composeの設定
2017/9/21時点では0.7.2が最新なので以下の設定になります。
version: '3'
services:
zeppelin_snapshot:
image: apache/zeppelin:0.7.2
ports:
- "8080:8080"
volumes:
- $PWD/logs:/logs
- $PWD/notebook:/notebook
- $PWD/data:/data
- $PWD/config:/config
environment:
ZEPPELIN_LOG_DIR: /logs
ZEPPELIN_NOTEBOOK_DIR: /notebook
GOOGLE_APPLICATION_CREDENTIALS: /config/credentials.json
各ディレクトリの役割はこちら。
| path | 説明 |
|---|---|
| /logs | ログのディレクトリ |
| /notebook | ノートブックのディレクトリ |
| /data | データ用のディレクトリ |
| /config | 設定ファイル用のディレクトリ |
Google APIキーを作成
BigQueryをローカルから呼び出すために サービスアカウントキーの作成 から以下の手順でAPIキーを発行します。 (BigQueryのAPIが有効になっていない場合は先に有効化します)
- 「新しいサービスアカウント」を選択
- 「サービスアカウント名」を適当に入力
- 「BigQueryデータ閲覧者」の権限を設定
- キーのタイプは「JSON」形式を選択
ダウンロードしたらリネームして
config/credentials.json に置きます。
Apache Zeppelinを起動
docker-compose up
docker-composeの設定で
8080 で起動するようにしたので、
<a href="http://localhost:8080/">http://localhost:8080/</a> にアクセスします。

Zeppelinの画面が表示されたらとりあえず起動は成功です。
次にNotebookを作成してコードを実行してみます。 ScalaやPythonなどがデフォルトで入っていますので特に設定なしですぐ利用できます。
%python
from datetime import datetime
print(datetime.now())
import sys
sys.version_info

BigQuery用の設定と実行
Zeppelinのインタプリタ設定画面
<a href="http://localhost:8080/#/interpreter">http://localhost:8080/#/interpreter</a> から
BigQueryの項目の設定を変更します。
- zeppelin.bigquery.project_id:
Credentialsで権限を指定していてもBigQueryの呼び出し時に このGoogleプロジェクトIDの指定がないとエラーになります。

%bigquery.sql
SELECT license, count(*) AS cnt
FROM [bigquery-public-data:github_repos.licenses]
GROUP BY license
ORDER BY cnt DESC

参考
松木佑徒