【Python】PCのPythonからBigQueryのテーブルを参照する

【Python】PCのPythonからBigQueryのテーブルを参照する

Pythonで使えるBigQueryのライブラリがあります。
今回はテーブル参照を試してみました。
(JDBC接続より楽でした)

実行環境

  • Python 3.9.10
  • pandas 1.4.0
  • pyarrow 7.0.0
  • MacOS BigSur 11.6.1

準備

手順

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のテーブルを参照する方法を試してみます。

※参考
BigQuery API クライアント ライブラリ