Google CloudのBigQueryデータをPythonにインポートする方法

更新日: by Heysho

本記事では、Google Cloud BigQuery に格納されたデータをPythonで分析したい方を対象に、その具体的な手順を解説いたします。

手順は以下の2ステップで進めていきます。

  • STEP 1:Google Cloud で認証キー(JSONファイル)を取得する
  • STEP 2:Python 環境に Google Cloud のライブラリをインストールする

STEP 1:Google Cloud で認証キーを取得する

Service Accounts メニューへのアクセス

Google Cloud Console にアクセスし、「IAM(Identity and Access Management)」>「サービスアカウント」を選択します。

Google Cloud Console のIAMメニューからサービスアカウントを選択

サービスアカウントの作成

「サービスアカウントを作成」ボタンをクリックし、新規サービスアカウントを作成します。

サービスアカウントを作成ボタンをクリック

サービスアカウント名を入力し、次のステップへ進みます。

サービスアカウント名を入力する画面

役割には「BigQuery 管理者」を選択してください。

BigQuery管理者の役割を選択

重要: 「BigQuery ユーザー」など類似の役割が多数存在しますが、選択を誤るとPythonからBigQueryへのアクセス権限が不足する可能性がありますのでご注意ください。

これでサービスアカウントの作成は完了です。

サービスアカウント作成完了画面

認証キーの発行

作成したサービスアカウントをクリックし、「キー」タブを開き、「キーを追加」>「新しいキーを作成」を選択します。

サービスアカウントのキータブから新しいキーを作成

キーの形式として「JSON」を選択し、「作成」をクリックします。

JSON形式でキーを作成

クリックするとJSONファイルが自動的にダウンロードされます。

JSONファイルのダウンロード確認画面

ダウンロードしたJSONファイルは、Pythonプロジェクトのフォルダに適切に配置してください。

ダウンロードされたJSONファイル

STEP 2:Python から BigQuery へデータをインポートする

Python 環境への BigQuery ライブラリのインストール

ターミナル/コマンドプロンプト

pip install --upgrade google-cloud-bigquery

Python コードの記述

Python

from google.cloud import bigquery
import os

# 認証ファイルのパスを設定
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/your/service-account-file.json"

# BigQueryクライアントを初期化
client = bigquery.Client()

# クエリを実行
query = """
SELECT * FROM `your-project.your_dataset.your_table`
"""

# データフレームとして取得
df = client.query(query).to_dataframe()

上記のコードにおいて、以下の2点を実際の環境に合わせて変更してください。

  • 「path/to/your/service-account-file.json」:ダウンロードしたJSONファイルへの正確なパス
  • 「your-project.your_dataset.your_table」:ご利用のプロジェクト名、データセットID、テーブル名(例:test-420302.test.access_log_ga4)

使用例

以下に、実務で活用できるクエリのサンプルコードをご紹介します。

実用的なクエリ例

query = """
SELECT
    event_date,
    event_name,
    COUNT(*) as event_count
FROM `your-project.analytics_123456789.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20240101' AND '20240131'
GROUP BY event_date, event_name
ORDER BY event_date DESC
LIMIT 1000
"""

df = client.query(query).to_dataframe()
print(df.head())

まとめ

Google Cloud BigQueryのデータをPythonにインポートすることで、高度なデータ分析環境を構築し、GA4データの詳細な分析や大規模データセットの効率的な処理が可能になります。

ご不明な点やお困りの場合は、お気軽にコメント欄にてご質問ください。

最後までお読みいただき、誠にありがとうございました。