BigQuery StudioとGitLabリポジトリを接続
BigQuery StudioとGitLabリポジトリを連携させれば分析作業が捗ると思って試したときの覚書。
Gemini 3 Flash Previewと対話。
参考: リポジトリの概要 | BigQuery | Google Cloud Documentation
1. SSH鍵の生成
GCPのCloud Shellを開き、鍵ペアを作成。
パスフレーズなしで生成する。
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_bigquery_gitlab -N ""
生成された公開鍵を表示。
$ cat ~/.ssh/id_rsa_bigquery_gitlab.pub
2. Gitリポジトリを作成
新規にBigQuery用リポジトリをGitLab上で作成。
アカウント全体ではなく、特定のリポジトリにのみBigQueryからのアクセスを許可する。
そのリポジトリへアクセスするための鍵を登録。
Settings -> Repository -> Deploy keysで「Add new key」。
- Title: BigQuery Studio Key
- Key: 先ほどコピーした公開鍵の文字列
- Grant write permissions to this key: チェックを入れる
(SQLをBigQueryからGitLabへ保存するために必要)
3. 秘密鍵をSecret Managerに登録
Secret ManagerはGCPの機密情報を管理するためのツール。
Cloud Shell経由でSecret Managerに秘密鍵を登録する。
まずは現在の設定(選択しているプロジェクト)を確認。
$ gcloud config list
Secret Manager APIを有効化。
$ gcloud services enable secretmanager.googleapis.com
シークレット(入れ物)を作成。
$ gcloud secrets create gitlab-ssh-key --replication-policy="automatic"
秘密鍵の内容を登録。
$ gcloud secrets versions add gitlab-ssh-key --data-file=$HOME/.ssh/id_rsa_bigquery_gitlab
Google Cloud管理画面のセキュリティ -> Secret Managerで登録されているか確認。
4. BigQueryに権限を与える
BigQueryがSecret Managerの中身を読み取れるように設定。
- Google Cloudコンソールの [IAMと管理] > [IAM] を開く。
- 「Google 提供の役割付与を含める」にチェックを入れる。
- リストから service-xxxxxxxxxxxx@gcp-sa-bigquery-condel.iam.gserviceaccount.com という名前のサービスアカウントを探す。
- そのアカウント鉛筆マークをクリック。
「Secret Manager」で検索して 「Secret Manager のシークレット アクセサー (roles/secretmanager.secretAccessor)」 のロールを付与して保存。
5. BigQuery Studioでリポジトリを追加
準備が整ったのでBigQuery Studioにリポジトリを登録する。
- BigQuery Studioの左パネルでリポジトリを選択。
- 「リポジトリの追加」をクリック。
- 作成したリポジトリを選択 -> 構成
- 「Dataform でクエリを実行するには、次のロールが必要です。」が表示されていたので「すべて付与」
- 「Gitと接続」
各種情報を入力、「ホストのSSH公開鍵のKey-Value」には下記コマンドで表示する値を使う。
$ ssh-keyscan -t ed25519 gitlab.com
「ssh-ed25519 AAAAC3NzaC1lZDI1....6tdG4SLp1Btn/nOeHHE5UOzRdf」部分だけを登録。
gitlab.comから貼り付けると下記エラーになって少しハマった。
構成されている認証情報を使用して Git プロバイダに接続できません。HTTPS 認証を使用している場合は、トークンが有効であり、期限切れになっていないことを確認してください。SSH 認証を使用している場合は、ユーザーの秘密鍵とホストの公開鍵が有効であることを確認してください。詳細については、次のエラー メッセージをご確認ください。Illegal base64 character 2d
6. ワークスペースを作成
ワークスペース(作業場所)を作成。
- 左パネルでリポジトリを選択。
- ワークスペースを追加。
- 新しいブランチで適当なIDを入力して作成。
メイン(master or main)のブランチからチェックアウトしてファイル一覧が左パネルに表示される。
後はGitを知っていれば直感的に操作できる。