1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JupyterNotebookの導入およびBigQueryへの接続手順

Posted at

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を起動する。
image-20220724155130398.png

任意のフォルダを開き、new > pythonを選択
image-20220724155231172.png

以下を入力して、それぞれのセクションで実行(Ctrl + Enter)する。
セクションの追加は「+」ボタンでできる。

# matplotlib をインラインで使用することを指定する
%matplotlib inline
# ライブラリの読み込み
import matplotlib.pyplot as plt
# グラフを描画する
plt.plot([1,2,3,4])
plt.show()

以下のようにグラフが出力されることを確認する。
image-20220724155539223.png

GoogleおよびBigQueryとの接続

GoogleおよびBigQueryのモジュールを導入

windowsからanaconda Promptを起動
image-20220724163111615.png

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

image-20220724163914412.png

使用するデフォルトのプロジェクトを設定する(PROJECT_IDをプロジェクトIDに置き換える)
PROJECT_IDはBigQUeryのワークスペース一覧を開き、プロジェクトIDの箇所を確認する。

gcloud config set project PROJECT_ID

image-20220724165744883.png

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で作成したコードを共有するときにそのままでは動作しない可能性があると思ったためです。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?