BigQuery、それなりに使ってるけど使いこなせてない問題
公私ともにGCPアカウントとプロジェクトを作成してBigQueryはそれなりに触っている。テーブルを作ってデータを入れて集計/ビジュアライズ、くらいのことはやっている。
なので、「使いこなせている」とは到底言えない状態。
プロジェクトを開いたときに左側にずらずら並んでいるメニュー、「リポジトリ」「クエリ」「ノートブック」「データキャンバス」「データ準備」「パイプライン」「接続」……これらがそれぞれ何で、どんな用途で使うものなのか、理解できていなかった。データセット以外、触ることなし。
ということで、Claudeに聞いてみた。
自分のメモも兼ねて、教えてもらった内容をここにまとめておく。
私と同じように「BigQueryをちょっと使ってるけど、左メニューの意味は知らない」という非エンジニアの皆さまの一助になれば幸いです。
左メニューに並んでいるのはこういう面々
プロジェクトを開くと、こんな項目が並んでいる。
- リポジトリ
- クエリ
- ノートブック
- データキャンバス
- データ準備
- パイプライン
- 接続
あとは見慣れた「データセット」がいくつか。
データセットは普段使っているのでわかるとして、それ以外のやつである。
ひとつずつ見ていく
リポジトリ
これは Dataform という機能で使うやつらしい。
SQLコードを保存しておく「Gitリポジトリ」のようなもの、と理解した。
何のためかというと、データ変換(ELTのT=Transform)の処理をコードとして管理するためのもの。
たとえば「生ログテーブル → 日次集計テーブル」を作るSQLを、ファイルとして保存してバージョン管理できる、という話である。
使用例としては、生データから日次PVを集計したdaily_pvテーブルを毎日自動生成する、みたいなやつ。
SQLを.sqlxという拡張子のファイルで書いて、テーブル間の依存関係を自動で解決してくれる。
GitHubと連携してチームでレビューもできる。
ただ、これは1人で小規模にやっているうちは不要かなと。
BQで動いているパイプラインが10個20個になってきたら検討するくらいで良さそう。
クエリ
書いた SQLクエリを保存しておく場所。
これは直感的にわかりやすい。
何のためかというと、よく使うSQLに名前を付けて保存して、後で再実行・共有できるようにするため。
使用例としては、「月次PVサマリ」という名前でSQLを保存しておいて、毎月開いて実行する、とか。
「ai_bot_accessの直近7日集計」みたいな定番クエリを保存しておくと便利だし、URLで共有もできる。
これはすぐに使える。
普段叩いているSQLを保存しておくだけで作業が楽になる。
ノートブック
Jupyter NotebookのBigQuery版である。
SQL + Python + Markdown + グラフを1つのドキュメントに書ける。
何のためかというと、データ分析を「説明文 + クエリ + 結果のグラフ」をまとめて、ストーリー仕立てで残すため。
使用例としては、「2026年Q1のサイト分析レポート」みたいなのを、文章とSQLとグラフを混ぜて作る、とか。pandasやmatplotlibでBQの結果を可視化することもできる。分析の途中経過をメモしながら進めるのにも向いている。
これはアドホックな分析にすごく便利そう。
データポータルよりも自由度が高いし、Pythonで好きに加工できるのが強い。
データキャンバス
ノーコードでSQLを組み立てるビジュアルエディタ。
Geminiが補助してくれるらしい。
何のためかというと、SQLが書けない人でも、テーブルをドラッグ&ドロップしたり自然言語で指示したりして分析できるようにするため。
使用例としては、「fitnessテーブルから月別の合計distanceを出して」と自然言語で指示するとSQLを自動生成してくれる、みたいな。
結果を別のテーブルとJOINするのもGUIでできる。
ただ、SQLが書ける人にとっては優先度低め(個人の感想)。
試しに触ってみると面白いかもしれない、くらいの位置付け。
データ準備
データクレンジング用のGUIツール。
昔のDataprep的なやつ、と理解した。
何のためかというと、「日付フォーマットを揃える」「NULLを埋める」「カラムを分割する」といった前処理をGUIでやるため。
使用例としては、CSVを取り込んだあとに表記ゆれを統一したり、値の型変換や不要行の除外をポチポチGUIでやる、みたいな感じ。
SQLで処理できる範囲なら不要、というのが正直な感想。
CSV取り込み時の手直しに使えるくらい。
パイプライン
データ処理の流れ(ワークフロー)を定義する仕組み。
複数のクエリやノートブックを順番に実行できる。
何のためかというと、「①データ取込 → ②変換 → ③集計テーブル更新」みたいなのを自動で順番に走らせるため。
使用例としては、毎朝5時に「ai_bot_access取込 → 集計 → Slack通知」を自動実行する、とか。
ノートブックを定期実行してレポートを自動生成することもできる。
私の場合、いまはMacのlaunchdで自動化を組んでいるんだけど、その辺をBQ側に寄せたくなったら使う候補かなと思っている。
接続
BigQueryから外部サービスへ繋ぐための接続情報を保管する場所。
何のためかというと、Cloud SQLとかSpannerとか、外部APIとか、Vertex AI(LLM)といったものをBQから直接呼ぶための認証設定を持っておくため。
使用例としては、ML.GENERATE_TEXTでGeminiをSQLから呼ぶときの接続を作っておく、とか。
Cloud Storage上のCSVを外部テーブルとして読みに行くときの接続にも使う。
Cloud SQLのMySQLにBQから問い合わせる、なんていうのも可能らしい。
BQでLLMを使ったり、GCSと連携したりするときに必要になる、という感じ。
結局、非エンジニアの自分はどれから使うべきか
ぜんぶ調べた結果、優先順位を整理するとこうなった。
| 優先度 | 機能 | 理由 |
| ⭐⭐⭐ | クエリ | よく使うSQLを保存、すぐ役立つ |
| ⭐⭐⭐ | ノートブック | アドホック分析・レポートに最適 |
| ⭐⭐ | 接続 | LLM連携やGCS連携で必要になる |
| ⭐ | パイプライン | 自動化をBQに寄せたくなったら |
| △ | リポジトリ(Dataform) | 規模が大きくなったら |
| △ | データキャンバス | SQL書ける人には不要 |
| △ | データ準備 | SQLで代替可能 |
まずは「クエリに普段使うSQLを保存する」ところから始めて、次に「ノートブックで分析レポートを作ってみる」のが入りやすそう、というのが私の結論。
まとめ
知らない機能は、とりあえず名前だけでも知っておくと、「あ、これあのときのやつだ」と必要になったタイミングで思い出せる。
私もまずはクエリ保存からはじめてみようと思う。
同じように「BigQueryでデータセットしか触ってない問題」を抱えている人の参考になれば嬉しいです。

コメント