BigQueryのデータをJupyterNotebookで可視化したいと思ったが、まとまってる手順が見たあらず苦戦したので手順をメモしておきます。
Googleの認証周り色々ありすぎてよくわかってないです…。
不明な点や誤ってる点などあれが気軽にコメントいただけると嬉しいです。
前提
BigQueryが使える状態にあることが前提です。
環境
Windows 10
導入したソフトなどのバージョン
python 3.9.12
conda 4.12.0
anaconda 2022.05
>conda -V
conda 4.12.0
>python -V
Python 3.9.12
>conda list anaconda$
# packages in environment at C:\jupyter:
#
# Name Version Build Channel
anaconda 2022.05 py39_0
JupyterNotebookの導入
anacondaをインストール
以下のリンクからインストーラーをダウンロードし、anacondaをインストールします。
https://www.anaconda.com/products/distribution
jupyter notebookの動作確認
一旦、jupyter notebookが正常にインストールされているか確認する。
まず、windowsからjupyternotebookを起動する。
以下を入力して、それぞれのセクションで実行(Ctrl + Enter)する。
セクションの追加は「+」ボタンでできる。
# matplotlib をインラインで使用することを指定する
%matplotlib inline
# ライブラリの読み込み
import matplotlib.pyplot as plt
# グラフを描画する
plt.plot([1,2,3,4])
plt.show()
GoogleおよびBigQueryとの接続
GoogleおよびBigQueryのモジュールを導入
anaconda Promptで以下のコマンドを実行する
pip install --upgrade google-cloud-bigquery
pip install --upgrade google-cloud-bigquery-storage
pip install --upgrade pydata-google-auth
Googleへの認証
次に、以下のコマンドを順に実行し、googleへの認証を行う
参考:google api coreの公式ドキュメント
gcloud auth application-default login
gcloud auth login
gcloud components update
使用するデフォルトのプロジェクトを設定する(PROJECT_IDをプロジェクトIDに置き換える)
PROJECT_IDはBigQUeryのワークスペース一覧を開き、プロジェクトID
の箇所を確認する。
gcloud config set project PROJECT_ID
JupyterNoteBookからBigQueyrへの接続確認
jupyterを再起動し、任意のnotebookを作成し以下を実行する
from google.cloud import bigquery
client = bigquery.Client()
# 任意のクエリを指定
QUERY = ('select xxx from dataset.table')
query_job = client.query(QUERY)
rows = query_job.result()
for row in rows:
print(row.xxx)
参考
Google Clound公式ドキュメント
jupyterノートブックでBigQueryデータを可視化する(この手順通りに動かず、あまり参考ならなかった)
GoogleAPIドキュメント
google-cloud-bigquery
google-api-core
google-auth
google-authのドキュメントにはサービスアカウントやOAuth2.0の記述もありますが、今回は採用せず、手順の確認はしませんでした。
ドキュメントを読む限り、認証情報(アクセストークンや認証のファイルなど)をコードに記述する必要があるようで、他の人とjupyter notebookで作成したコードを共有するときにそのままでは動作しない可能性があると思ったためです。