BigQueryリポジトリを解説

記事タイトルとURLをコピーする

G-gen の武井です。当記事では、BigQuery と Git リポジトリを連携する機能である BigQuery リポジトリを解説します。

はじめに

BigQuery リポジトリとは、BigQuery と Git リポジトリを連携する機能です。Google Cloud コンソールの BigQuery 操作画面である BigQuery Studio において、組み込みの Git リポジトリまたは GitHub 等の Git リポジトリと接続して、SQL ファイル等のバージョン管理をしたり、Git ワークフローを操作することができます。

これにより、以下のようなメリットを得ることができます。

  • Git リポジトリ上の SQL をそのまま BigQuery 上で実行できる
  • BigQuery Studio 上で SQL のバージョン管理ができる
  • チームでの共同作業が容易になる

当記事では、BigQuery リポジトリの機能、セットアップ方法、ならびに操作手順について説明します。

なお当機能は、2025年4月時点でプレビューです。

機能説明

リポジトリ

BigQuery リポジトリでは、組み込みの BigQuery リポジトリを使用するか、以下のサードパーティーリポジトリと接続可能です。

Git プロバイダ 接続方法
Microsoft Azure DevOps Services SSH
Bitbucket SSH
GitHub SSH または HTTPS
GitLab SSH または HTTPS

リポジトリの利用形態

リポジトリの利用形態は以下の2通りです。

  1. プライベートリポジトリ
    • リポジトリ作成者のみ利用可能
  2. 共有リポジトリ
    • 複数のプリンシパルで共有可能

参考:リポジトリを共有する

取り扱い可能なファイル

リポジトリにて取り扱い可能なファイルは以下の通りです。

  1. SQL クエリ
  2. Python ノートブック
  3. データキャンバス
  4. データプレパレーション
  5. 上記以外のファイル

参考:ワークスペース内のファイルを操作する

バージョン管理

リポジトリでは以下のバージョン管理操作が実行できます。

オプション 説明
変更 ワークスペースまたは選択したファイルのローカル変更を commit する
push commit をデフォルトブランチ(main)または指定のブランチに push する
pull デフォルトブランチをワークスペースに pull する
復元 ワークスペースにあるファイルを前回の commit に復元する

IAM ロール

共有リポジトリとワークスペースの操作に必要な権限は以下の通りです。

操作 IAM ロール
共有リポジトリの作成・管理 コードオーナー(roles/dataform.codeOwner
ワークスペースの作成・削除 コードエディタ(roles/dataform.codeEditor
ファイルの作成・変更・バージョン管理 同上
リソースの表示 コード閲覧者(roles/dataform.codeViewer

また、プライベートリポジトリとワークスペースの操作に必要な権限は以下の通りです。

操作 IAM ロール
プライベートリポジトリの作成・管理 コード作成者(roles/dataform.codeCreator
ワークスペースの作成・削除 同上
ファイルの作成・変更・バージョン管理 同上

料金

BigQuery リポジトリの利用に料金はかかりません。

検証1(セットアップ)

セットアップの概要

当記事では、BigQuery Studio に BigQuery リポジトリ(標準の組み込みリポジトリ)を接続し、SQL ファイルのバージョン管理を行います。

リポジトリの作成

BigQuery Studio > リポジトリを表示 > リポジトリの追加 の順で BigQuery リポジトリを作成します。

作成時点ではプライベートリポジトリですが、[︙]アイコン > 共有の順で共有リポジトリに変更できます。(作成者以外のプリンシパルに権限を付与することができます)

ワークスペースの作成

先ほど作成したリポジトリ名をクリックし、ワークスペースタブ > ワークスペースを追加の順でワークスペースを作成します。

なお、ワークスペースとは同じリポジトリで作業している他のユーザーに影響を与えることなく、リポジトリでファイルの作成、編集、削除を行うための仮想的な作業空間を意味します。

作成後は開く > 確認の順でクリックすると、BigQuery Studio にリポジトリを接続できます。

ディレクトリの作成

次に、ワークスペースにディレクトリを作成します。今回のデモでは、クエリ先の構成に合わせてディレクトリを作成します。

.
└── sample
    ├── customers
    │   └── demo.sql
    ├── products
    │   └── ...
    └── sales
        └── ...

[+] アイコン > リポジトリに作成 > ディレクトリ の順でディレクトリを作成します。

SQL ファイルの作成

各ディレクトリに SQL ファイルを作成し、クエリのバージョン管理を行います。

各ディレクトリの [︙] アイコン > リポジトリに作成 > SQL クエリの順で SQL ファイル作成します。

ファイルにクエリを入力すると(変更が検知したため)、Commit X Changeと表示されました。

検証2(バージョン管理)

デモの概要

先ほど作成した SQL クエリをもとに、バージョン管理操作を行います。

commit

変更を commit します。

Commit X change をクリックすると、変更内容が確認できます。commit メッセージ(必須)を入力後、すべて(あるいは X 個)のファイルを commit をクリックします。

push

次に、先ほどの commit をデフォルトブランチ(main)に push します。

プルダウン > デフォルトブランチに push を実行すると、デフォルトブランチにマージされます。

pull

共有リポジトリにおいて、他メンバーが push した内容を取り込みたい場合、プルダウン > デフォルトブランチから pull を実行します。

復元

変更の過程で前回の commit に戻したい場合、プルダウン > 前回の commit に戻す を実行します。

クエリ実行

リポジトリで管理する SQL ファイルは、BigQuery Studio 上で直接実行できます。

検証3(GitHub リポジトリとの接続)

GitHub リポジトリを BigQuery Studio に接続する場合、以下の準備が必要です。

  1. GitHub リポジトリ
  2. Secret Manager
    • HTTPS の場合は個人アクセストークン、SSH の場合は秘密鍵を格納したシークレットを作成
  3. IAM Policy
    • 上記にアクセスできるよう、Dataform デフォルトサービスアカウントに対し以下の IAM ロールを付与
    • Secret Manager シークレットアクセサー(roles/secretmanager.secretAccessor)

上記の準備が完了したら、リポジトリの追加 から GitHub リポジトリ接続用の BigQuery リポジトリを作成し、リポジトリの構成タブ > Git 接続を編集の順で設定を進めると GitHub リポジトリを接続できます。

関連記事

blog.g-gen.co.jp

blog.g-gen.co.jp

武井 祐介 (記事一覧)

クラウドソリューション部クラウドエンジニアリング課。

Google Cloud Partner Top Engineer 2025 選出。

趣味はロードレースやサッカー観戦、あとはゴルフと筋トレ。