GCP

GCPでBigQuery地理空間分析環境を構築する手順とベストプラクティス

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

お得なお知らせ

スポンサードリンク
1ヶ月で資格+現場入り

インフラエンジニアへの最短ルート

未経験でもAWS・Linux・ネットワーク資格を最短で取り、現場入りまでサポート。SREやクラウドエンジニアの入口。

CODE×CODEスピード転職|無料面談▶ SRE/クラウドのフリーランス案件▶

▶ AWS/GCP/Kubernetesの独学には Kindle Unlimited の技術書読み放題がコスパ最強。


スポンサードリンク

1. 前提条件と環境設定

1‑1. GCP プロジェクトの作成・課金有効化

手順 内容
1 Google Cloud コンソール (https://console.cloud.google.com) にログインし、左上メニュー → 「プロジェクトを作成」 をクリック。
2 プロジェクト名(例:my-gis‑project)と必要なら組織を入力して 「作成」
3 左側メニューの 「請求」 → 「請求先アカウントをリンク」 から課金アカウントを選択し、プロジェクトに紐付ける。

ポイント
- プロジェクト作成直後は無料枠が適用されますが、データスキャンやストレージ利用分は従量課金となります。

1‑2. BigQuery API の有効化

  1. コンソール左上の 「ナビゲーションメニュー」 → 「APIs とサービス」 → 「ライブラリ」 を開く。
  2. 検索バーに BigQuery API と入力し、表示されたカードの 「有効化」 をクリック。
  3. ステータスが 「有効」 になることを確認(数秒かかる場合があります)。

1‑3. IAM ロールの最小権限付与

推奨ロール 主な権限 用途例
roles/bigquery.admin プロジェクト全体の管理(データセット作成・削除) 開発リーダー、インフラ担当
roles/bigquery.dataEditor データセットへの書き込み ETL パイプライン実装者
roles/bigquery.user クエリ実行のみ アナリスト・BI ユーザー

設定手順
1. コンソール左側 「IAM と管理」 → 「IAM」 を開く。
2. 対象ユーザー(またはサービスアカウント)を検索し、「ロールの追加」 から上記ロールを選択して保存。

ベストプラクティス:最小権限の原則に従い、必要なロールだけ付与してください。


2. データインポートと GEOGRAPHY 型への変換

2‑1. 対応フォーマットとロード手順

フォーマット 推奨ロード方法 主な注意点
CSV(WKT) スキーマで location:GEOGRAPHY を明示し、bq load --source_format=CSV … を実行 WKT に余計な空白や改行が混入すると Invalid geography エラーになるため事前に正規化
GeoJSON 文字列としてロード後、クエリ内で ST_GEOGFROMGEOJSON(geojson_column) に変換 type キーと同名の属性がある場合は別名にリネームしてから変換
Parquet Parquet の binary / string フィールドを自動検出で GEOGRAPHY とマッピング(スキーマ自動検出) スキーマが正しく認識されないと STRING になるので、必要に応じて手動で location:GEOGRAPHY を上書き

CSV のロード例

GeoJSON の変換例(クエリ)


3. GoogleSQL 標準関数で行う基本 GIS 操作

3‑1. 主な GEOGRAPHY 関数とサンプルクエリ

関数 説明 サンプル
ST_GEOGFROMTEXT(text) WKT 文字列 → GEOGRAPHY SELECT ST_GEOGFROMTEXT('POINT(139.6917 35.6895)') AS pt;
ST_INTERSECTS(a, b) 2 つのジオメトリが交差するか判定 WHERE ST_INTERSECTS(city_geom, ST_GEOGFROMTEXT('POLYGON((…))'))
ST_UNION(g1, g2) 複数ジオメトリを結合(多角形の統合) SELECT ST_UNION(g1, g2) FROM …;
ST_BUFFER(geog, radius_meters[, max_error]) 指定半径(メートル単位)のバッファ領域を生成。第 3 引数は許容誤差(メートル)で、精度調整に利用可能 SELECT ST_BUFFER(ST_GEOGFROMTEXT('POINT(-122.084 37.422)'), 5000) AS buf;
ST_AREA(geog) ジオメトリの面積を 平方メートル で取得(自動的に等距離投影へ変換) SELECT ST_AREA(polygon_geom) FROM …;

重要ST_BUFFER は「2026 年に単位指定が追加された」わけではなく、リリース時点から半径は常にメートルで扱われます。第 3 引数の max_error は精度を細かく制御したい場合のみ使用します。

3‑2. 実務的なクエリ例(米国 TIGER/Line データと POI の集計)

上記クエリは、公共データセット bigquery-public-data.census_bureau.tiger_lines(州境界)と自前の POI テーブルを組み合わせて、州ごとのポイント数を算出しています。


4. 公共ジオスペーシャルデータセットの活用例

4‑1. データ取得・コピー手順

ポイントbq cp はテーブル全体をコピーしますが、必要なカラムだけに絞り込む場合は CREATE TABLE … AS SELECT … を併用するとコスト削減につながります。

4‑2. 行政区画と道路の結合例

4‑3. クエリ実行前のプレビューとコスト確認

  1. UI のクエリエディタ右上にある 「プレビュー」 ボタンをクリック → スキャン予定データサイズが表示されます。
  2. 「ジョブ」ページで実行履歴と課金情報をリアルタイムに監視できます。

5. パフォーマンス最適化・コスト管理

5‑1. パーティション/クラスタリングの設計指針

手法 設定例 効果
パーティション PARTITION BY DATE(event_timestamp)(日時系データ) スキャン対象を日単位で絞り込み、不要スキャンを回避
クラスタリング CLUSTER BY ST_GEOGPOINT(lon, lat)(ポイントテーブル) 空間的に近いレコードが同一ブロックに格納され、ST_INTERSECTS のフィルタ効率が向上

ベストプラクティス:クラスタリングはジオメトリ列自体ではなく、緯度・経度を数値化したカラム(例:lon, lat)で行うと最適です。

5‑2. 料金シミュレーションと予算アラート

  1. コンソール左側 「料金」 → 「料金見積もり」 から、テーブルサイズとクエリ頻度を入力し月額概算を取得。
  2. 「予算とアラート」 で新規予算を作成し、上限の 80 % 超過時にメール通知を設定すると、想定外の請求を防げます。

5‑3. クエリ最適化テクニック

  • 必要な列だけ SELECTプロジェクションプッシュダウン によりスキャン量が削減。
  • ST_INTERSECTS の前に サブセット抽出(例:州コードで絞り込み)を行う。
  • 大規模結合は WITH 句で事前集計 してから結合するとジョブ実行時間が短縮。

6. 可視化 – Looker Studio(旧 Data Studio)

6‑1. データソース接続手順

  1. Looker Studio (https://lookerstudio.google.com) にログインし、「データソース」 → 「Google BigQuery」 を選択。
  2. プロジェクト・データセット・テーブル(例:mydataset.state_road_stats)を指定して接続。

6‑2. GIS ウィジェットでのマッピング

手順 操作
1 レポート編集画面で 「チャートを追加」 → 「ジオマップ」 を選択。
2 「ジオメトリ」フィールドに geometry(GEOGRAPHY)列をドラッグ。
3 色分けは数値指標(例:road_counttotal_road_km)で設定し、グラデーションやシンボルサイズを調整。
4 「フィルタコントロール」に state_name を追加すれば、ユーザーが興味のある州だけを表示可能。

ヒント:ジオマップは自動的に投影変換を行うため、メートル単位で計算した面積・距離も正しく描画されます。


7. まとめ

  • 環境構築:プロジェクト作成 → 課金リンク → API 有効化 → 最小権限ロール付与
  • データロード:CSV/WKT、GeoJSON、Parquet のいずれも GEOGRAPHY 型へ安全にインポート可能
  • GIS 関数ST_BUFFER は半径をメートルで扱う点に注意し、必要なら第3引数で精度調整
  • 公共データセット活用bigquery-public-data.census_bureau.tiger_lines などをコピーしてローカルテーブル化すれば高速クエリが実現
  • コスト最適化:パーティション・クラスタリング、プレビュー機能、予算アラートで無駄なスキャンを防止
  • 可視化:Looker Studio のジオマップウィジェットで、BigQuery の GEOGRAPHY 列をそのまま地図に描画

上記の手順とベストプラクティスに従えば、2026 年版 Google Cloud が提供する最新機能を最大限活用し、費用対効果の高い本格 GIS 分析基盤 を短期間で構築できます。

スポンサードリンク

お得なお知らせ

スポンサードリンク
1ヶ月で資格+現場入り

インフラエンジニアへの最短ルート

未経験でもAWS・Linux・ネットワーク資格を最短で取り、現場入りまでサポート。SREやクラウドエンジニアの入口。

CODE×CODEスピード転職|無料面談▶ SRE/クラウドのフリーランス案件▶

▶ AWS/GCP/Kubernetesの独学には Kindle Unlimited の技術書読み放題がコスパ最強。


-GCP