gemini-cliを使ってBigQueryのテーブルやビューのカラム説明を書いてもらってみる

gemini-cliを使ってBigQueryのテーブルやビューのカラム説明を書いてもらってみる

Clock Icon2025.07.03

はじめに

たとえばこんなシチュエーションがありうる。

「このBigQueryのテーブル定義をメイン担当チーム以外にも共有したいんだけど、どうしよう…」

  • コンソールへのアクセス権限はないし、作るのもだるい。
  • 手作業でカラム定義をまとめるのは面倒。
  • データカタログやメタデータの収集ツールは現状使用していない。

そんなちょっとした一手間を、Geminiを使って解決できないか試してみました。

やりたかったこと

特定のビューやテーブルの情報をサクッと共有したい。

  • プロジェクトで作成したデータセットの中の情報をアカウント外の協力会社さんと共有する必要があった。
  • 目的:相手にビュー・テーブルの概要と各カラムの意味を理解してもらうこと

やったこと

以下の流れでドキュメントを作成できるようにする。

  1. bq show でスキーマ情報を引っこ抜く
    • 使ったコマンドの紹介 (bq show --schema --format=prettyjson ...)
    • これだけでカラム名とデータ型がJSONで手に入る
  2. bq query でサンプルデータを取得する
    • 使ったコマンドの紹介 (bq query 'SELECT * ... LIMIT 10')
    • カラム名だけじゃなく、実際のデータを見せるのがGeminiに文脈を理解させる。
    • (もしあれば)個人情報などをマスクする配慮も忘れずに。
      • BigQueryのポリシータグを使うのも良い
  3. スキーマとサンプルをGeminiに渡して「お願い」する
    • 実際に使ったプロンプトのテンプレート
      • 「このテーブルの概要と各カラムの説明をMarkdown形式で書いてください」
      • 使用する情報:
        • [手順1のスキーマ情報]
        • [手順2のサンプルデータ]
      • 生成された説明文をユーザーに確認してもらい、必要に応じて修正する。

GEMINI.mdにやりたいことを書いておきました

1. **対象テーブルの選定**: 説明文を生成したいBigQueryのテーブルを指定する。
    - データセット名は上記のGoogle Cloud Projectの欄に書いてある。
    - データセット名が複数ある場合はユーザーに尋ねて決めてもらうようにする
2. **テーブル情報の取得**:
    - `bq show` コマンドを使用して、テーブルのスキーマ(カラム名、データ型)を取得する。
    - `bq query` コマンドを使用して、テーブルからサンプルデータを取得する。
        - `bq query --use_legacy_sql=false` このオプション
        - テーブル名は `<<プロロジェクトID>>.<<データセット名>>.<<テーブル名>>` とバッククオートで囲む
        - emailアドレス、個人名、個人電話番号、住所などの個人情報と思われるデータはマスキングしてください。IDはマスキングしなくても良いです。

3. **説明文の生成**: 取得したスキーマ情報とサンプルデータをインプットとして、Geminiがテーブル(ビュー)自体の説明と各カラムの説明文を生成する。
    - 他のテーブルやビューと同じカラム名だったら説明もそのまま使いまわせるはず。どんな説明にするか迷った時は参考にしよう。
4. **確認と修正**: 生成された説明文をユーザーが確認し、必要に応じて修正する。
5. **テーブル定義ファイルの作成**: 確定した説明文(テーブル説明とカラム説明)を元に、各テーブルの定義ファイルを作成する。
6. **Markdownドキュメントの生成**: 作成したテーブル定義ファイル(JSON)から、配布用のMarkdown形式のドキュメントを生成し、データセット名のディレクトリ配下に保存する。

実行例

bigquery-public-data.crypto_bitcoin という一般公開データセットで試してみます。

スクリーンショット 2025-07-03 11.18.53

お願い内容

- プロジェクトID: bigquery-public-data
  - データセット名
      - crypto_bitcoin\
  で  inputsのメタデータを作って

スクリーンショット 2025-07-03 11.20.47

bq show でスキーマ情報を確認しに行ってくれました。

スクリーンショット 2025-07-03 11.21.21

次のステップでサンプルデータを10件取得しています。

スクリーンショット 2025-07-03 11.21.50

スキーマ情報とサンプルデータからgeminiがテーブル定義書のJSONファイルを作ってくれました。
説明文も入ってますね。

スクリーンショット 2025-07-03 11.23.08

JSONファイルから参照用のマークダウンファイルの作成で完了となりました。

作成されたファイル

スクリーンショット 2025-07-03 11.25.30

BigQueryのコンソールでは説明が書かれていませんでしたが、このようにカラムの説明付きで作成することに成功しました。

まとめ

目的であった 相手にビュー・テーブルの概要と各カラムの意味を理解してもらう ための資料としてはなかなか良いものが作れたと思います。

今回はBigQueryでしたが、PostgreSQLやMySQLに接続しても同じようなことができるはずです。
gemini-cliはMCPサーバーも追加して実行できるので。

今度はこの作成された情報に加えてデータリネージの情報を作成できるようにしていく予定です。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.