Pythonで使えるBigQueryのライブラリがあります。
今回はテーブル参照を試してみました。
(JDBC接続より楽でした)
実行環境
- Python 3.9.10
- pandas 1.4.0
- pyarrow 7.0.0
- MacOS BigSur 11.6.1
準備
- BigQueryのサービスアカウントキー(jsonファイル)をローカルに保存
サービスアカウントキーの作成方法
手順
1.ターミナルを開き、ライブラリ「google-cloud-bigquery」をインストール
pip3 install --upgrade google-cloud-bigquery
2.TextEditで「test1.py」を作成
パターン1:レコードの出力
##ライブラリの読み込み ※環境変数を事前に設定している場合はosは不要
from google.cloud import bigquery
import os
##GCPで作成した認証用の秘密鍵 jsonファイルのパス ※Windowsの場合は"\"を"\\"または"/"に変換
credentials_json = '<GCPで作成した認証鍵jsonファイルパス>/XXXXXXX.json'
##.bash_profileで環境変数を設定しても良いが、テストのたのためここで記述
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] =credentials_json
##BigQueryで実行するクエリ
query = "SELECT cardid FROM `projet_id.dataset.table`"
##BigQuery client objectの構築
bigquery_client = bigquery.Client()
##APIリクエストの作成
rows = bigquery_client.query(query).result()
##結果の出力
for row in rows:
print(row[0])
パターン2:データフレームとして出力
##ライブラリの読み込み ※環境変数を事前に設定している場合はosは不要
from google.cloud import bigquery
import pandas
import pyarrow
import os
##GCPで作成した認証用の秘密鍵 jsonファイルのパス ※Windowsの場合は"\"を"\\"または"/"に変換
credentials_json = '<GCPで作成した認証鍵jsonファイルパス>/XXXXXXX.json'
##.bash_profileで環境変数を設定しても良いが、テストのたのためここで記述
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] =credentials_json
##BigQueryで実行するクエリ
query = "SELECT * FROM `projet_id.dataset.table`"
##BigQuery client objectの構築
bigquery_client = bigquery.Client()
##APIリクエストの作成+データフレームに変換
df = bigquery_client.query(query).to_dataframe()
##結果の出力
print(df)
3.ターミナルから実行
python3 ./test1.py
PythonからBigQueryのテーブルを参照できました。
次回は、IBM SPSS ModelerからBigQueryのテーブルを参照する方法を試してみます。