GCP

Google CloudでBigQueryを始める手順とPython設定ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

1. Google Cloud コンソールでプロジェクト作成と BigQuery API を有効化

BigQuery の利用は 「プロジェクト」「API が有効」 という二つの前提条件が整っていなければ開始できません。この章では、コンソール画面を操作しながら確実に設定する手順をご紹介します。

1‑1. プロジェクトの新規作成

  1. GCP コンソール https://console.cloud.google.com/ にログイン
  2. 左上メニュー 「プロジェクト選択」 → 「新しいプロジェクト」 をクリック
  3. プロジェクト名・請求先アカウントを入力し 「作成」

ポイント:作成に数秒かかりますが、完了したら左上に表示される プロジェクト ID を必ずメモしておきましょう(後の bigquery.Client(project=PROJECT_ID) で使用します)。

1‑2. BigQuery API の有効化

  1. コンソール左側メニュー 「API とサービス」 → 「ライブラリ」
  2. 検索ボックスに BigQuery と入力し、Google Cloud BigQuery API を選択
  3. 「有効にする」 ボタンをクリック

公式手順は こちらのドキュメント にあります。API が有効になると、次の認証設定へスムーズに移行できます。


2. 認証と Python 環境のセットアップ

BigQuery へのアクセスは サービスアカウントキー または Application Default Credentials (ADC) のどちらかで実現します。ここでは両方の作成手順と、Python 用ライブラリのインストール・バージョン確認方法を解説します。

2‑1. 最小権限でサービスアカウントを作成する

最小権限とは:業務に必要な機能だけを許可し、余計な権限は付与しないことです。これによりセキュリティインシデント時の被害範囲が限定されます。

推奨ロール 用途
roles/bigquery.dataViewer データセット・テーブルの読み取り
roles/bigquery.jobUser クエリやロードジョブの実行
roles/storage.objectViewer(GCS 連携時) バケット内オブジェクトの参照

注意BigQuery Admin ロールはすべての権限を持つため、開発環境以外では極力避けましょう。最小権限で足りない場合だけ段階的に追加してください。

作成手順

  1. コンソール左側 「IAM と管理」 → 「サービス アカウント」 を選択
  2. 「作成」 ボタン → 名前・説明を入力 → 「続行」
  3. ロールの追加 で上表のロールを選択(必要に応じて複数)
  4. 完了後、対象サービスアカウントの 「キー」タブ → 「鍵を追加」 → JSON をダウンロード

キーは機密情報です。安全な場所に保管し、Git などのリポジトリには絶対に入れないでください。

2‑2. Application Default Credentials (ADC) の設定

ローカル開発や Cloud Shell では ADC が手軽です。環境変数 GOOGLE_APPLICATION_CREDENTIALS にキーへのフルパスを設定するだけで、google-cloud-bigquery ライブラリが自動的に認証情報を取得します。

ユーザー認証で ADC を作り直す場合は次を実行:

公式ドキュメントは こちら です。

2‑3. Python 環境構築とライブラリバージョン確認

2026 年 6 月時点で google-cloud-bigquery の最新安定系は v3.x 系です。将来のメジャーアップデートが出た際は、必ず公式 PyPI ページ(https://pypi.org/project/google-cloud-bigquery/)で最新版を確認してください。

バージョン確認スクリプト

ポイントpandas-gbqread_gbq 系のヘルパー関数を提供し、DataFrame への高速ロードが可能です。インストール時に [pandas] エクストラオプションを付与すると、bigquery.read_gbq が直接利用できるようになります。


3. BigQuery クライアントの初期化と同期クエリ実行

認証情報が環境変数または ADC に設定されていれば、bigquery.Client() は自動的にそれらを検出します。この章ではシンプルな 同期クエリ の流れと、結果を pandas.DataFrame に変換する方法を示します。

3‑1. クライアントオブジェクトの生成

3‑2. 同期クエリで DataFrame に変換

以下はパブリックデータセットから人口上位 10 カ国を取得する例です。client.query() が内部的に非同期ジョブを起動し、.result() が完了待ちと結果取得を行います。

ポイントpyarrow がインストールされていると、列指向フォーマットで高速に DataFrame 化できます。大規模テーブルでも数秒でロード可能です。


4. 非同期ジョブの高度な活用と BigQuery DataFrames

大量データや長時間実行クエリは 非同期ジョブ として管理する方が安全かつ効率的です。ここではジョブステータスのポーリング、Dry‑run によるコスト見積もり、そしてサーバ側で計算を完結させてデータ転送量を削減する BigQuery DataFramesbigquery.read_gbq) の実装例を示します。

4‑1. 非同期ジョブの作成・ステータスチェック

4‑2. Dry‑run によるコスト見積もり

実際にクエリを走らせる前にスキャンバイト数だけをシミュレートできます。

ベストプラクティスmaximum_bytes_billed と Dry‑run の併用で、予算超過リスクを徹底的に排除します。

4‑3. BigQuery DataFrames(bigquery.read_gbq)の活用

google-cloud-bigquery[pandas] をインストールすると、以下のように サーバ側で集計 した結果だけを DataFrame に取り込めます。コード例では SUMHAVING がすべて BigQuery 上で実行され、転送データは数千行程度に抑えられます。

ポイントread_gbq は内部的に pandas-gbq の高速エンジンを呼び出すため、ローカルでの集計よりもはるかに速く結果が取得できます。

4‑4. パーティション・クラスタリングによるさらなる最適化

手法 効果例
日付パーティション (events$202506*) スキャンデータを対象月だけに限定し、コストを 90 % 削減
クラスタリング (CLUSTER BY user_id) 同一キーの行が物理的に近くなるため、フィルタ処理が高速化


5. Cloud Storage とのデータ入出力、ジョブモニタリング、サンプル体験環境

実務では CSV/JSON/Parquet のロード・エクスポートが頻繁に発生します。この章では GCS と BigQuery の双方向データフローと、ジョブ状態を Cloud Logging で確認する方法をまとめます。

5‑1. GCS からのインポート(load_table_from_uri

5‑2. テーブルのエクスポート(extract_table

5‑3. ジョブモニタリングとログ確認

Cloud Logging でジョブ情報を取得

コンソールの「ジョブ」タブ

  • 実行中・完了・失敗ジョブをリアルタイムで確認
  • ジョブ詳細画面からエラーメッセージやスキャンバイト数が閲覧可能

Stackdriver Monitoring でメトリクス可視化

公式ガイドは Monitoring BigQuery にあります。ダッシュボードに クエリレイテンシスキャンバイト数ジョブ成功率 を追加すれば、運用時の異常検知が容易になります。

5‑4. サンプルノートブックと Cloud Shell で即体験

  1. Cloud Shell 起動(右上 >_ アイコン)
  2. リポジトリをクローンし、Jupyter Notebook を起動

ノートブックの各セルは 認証 → クエリ実行 → GCS 入出力 の流れを順に体感できるよう構成されています。ローカル環境でも同様に pip install jupyterlab で動作させられます。

ポイント:Cloud Shell は事前設定不要で即座に実行可能なため、初心者がハードルなく学習を始めるのに最適です。


まとめ

  • プロジェクトと API の有効化 がすべての出発点
  • サービスアカウントは最小権限bigquery.dataViewerbigquery.jobUser 等)で作成し、キーは安全に管理
  • Python 環境は google-cloud-bigquery>=3.0,<4.0 をインストールし、バージョンは常に公式 PyPI で確認
  • 同期クエリはシンプルに、非同期ジョブはステータスチェック・Dry‑run でコスト管理
  • DataFrames (read_gbq) によりサーバ側集計を最大活用し、転送データ量とレイテンシを最小化
  • GCS と連携したロード/エクスポートCloud Logging / Monitoring で運用可視性を確保
  • サンプルノートブック を使えば、コードの実行から結果確認まで一貫した体験が可能

この手順に沿って環境を整えれば、BigQuery の強力な分析基盤をすぐに活用できるようになります。疑問点やエラーが出た場合は、公式ドキュメントと Cloud Logging を併せて確認してください。 Happy querying!

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-GCP