0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BigQuery でデータセット/テーブルの IAM タグを SQL 管理する

Posted at

BigQuery に、データセットとテーブルへ付与する IAM タグ(Resource Manager Tag)を SQL から直接操作できる機能 が追加されました。(Release Note

タグをコードで扱えるようになり、環境やデータ種別ごとに一貫したメタデータ管理が可能になります。本記事では機能範囲と SQL 操作例のみを簡潔にまとめます。


1. 機能概要

項目 内容
対象リソース データセット、テーブル(ビューを含む)
主な SQL 構文 ALTER SCHEMA … SET OPTIONSALTER TABLE … SET OPTIONS
操作 tags = […] 全置換・tags += […] 追加・tags -= […] 削除
前提 タグキー/タグ値の作成は Cloud Resource Manager API、gcloud、Terraform 等で実施

2. 事前設定

  1. API 有効化

    gcloud services enable cloudresourcemanager.googleapis.com
    
  2. タグキー・タグ値の作成例

  • タグキー: env
  • タグ値: prod

作成方法→公式ドキュメント

  1. 必要ロール

いかのいずれか

  • BigQuery データオーナー ( roles/bigquery.dataOwner)
  • BigQuery 管理者 ( roles/bigquery.admin)

3. SQL 操作例

-- データセットにタグを上書き
ALTER SCHEMA `my-project.analytics`
SET OPTIONS (
  tags = [('my-project/env','prod')]
);

-- テーブルにタグを追加
ALTER TABLE `my-project.analytics.sales`
SET OPTIONS (
  tags += [('my-project/env','prod')]
);

-- テーブルからタグを削除
ALTER TABLE `my-project.analytics.sales`
SET OPTIONS (
  tags -= [('my-project/env','prod')]
);

実際に実行した場合はこのようになります。

データセット更新

スクリーンショット 2025-06-20 23.49.12.png

スクリーンショット 2025-06-20 23.49.26.png

テーブル更新

スクリーンショット 2025-06-20 23.50.11.png

image.png

タグ付与の結果は、データセットの場合はINFORMATION_SCHEMA.SCHEMATA_OPTIONS、テーブルの場合はINFORMATION_SCHEMA.TABLE_OPTIONS で確認できます。

スクリーンショット 2025-06-21 0.05.48.png


4. 所感と留意点

観点 メモ
メリット * SQL だけでメタデータを管理できるため、Git による変更履歴がしやすい。
注意点 * タグキー/値の作成は SQL では行えない。

5. まとめ

  • 2025-06-16 から、BigQuery リソースに対して ALTER … SET OPTIONS (tags …) 構文が利用可能。
  • タグ管理をデータ定義と同じリポジトリに収められるため、CI/CD パイプラインでの自動反映が容易。
  • 導入初期は envpii などシンプルな軸だけに絞ると運用を保守しやすい。

以上、タグ操作機能の動作確認メモでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?