目次

目次

Zeppelinをdockerで動かしてBigQueryのデータを閲覧する

松木佑徒
松木佑徒
最終更新日2017/10/26 投稿日2017/10/26

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が有効になっていない場合は先に有効化します)

  1. 「新しいサービスアカウント」を選択
  2. 「サービスアカウント名」を適当に入力
  3. 「BigQueryデータ閲覧者」の権限を設定
  4. キーのタイプは「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

参考

松木佑徒

目次