このドキュメントでは、ビュー プロパティとメタデータの更新方法について説明します。ビューを作成したら、次のビュー プロパティを更新できます。
必要な権限
ビューを更新するには、少なくとも bigquery.tables.update
権限と bigquery.tables.get
権限が付与されている必要があります。ビューの SQL クエリを更新する場合は、ビューの SQL クエリで参照されるテーブルに対してクエリを実行する権限も必要です。
次の定義済みの IAM ロールには bigquery.tables.update
権限と bigquery.tables.get
権限が含まれています。
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
また、bigquery.datasets.create
権限を持つユーザーがデータセットを作成すると、そのデータセットに対する bigquery.dataOwner
アクセス権がユーザーに付与されます。bigquery.dataOwner
アクセス権により、データセットに含まれるテーブルとビューに対する更新の実行権限が付与されます。
BigQuery での IAM のロールと権限について詳しくは、事前定義ロールと権限をご覧ください。
ビューの SQL クエリの更新
ビューの定義に使用される SQL クエリは、次の方法で更新できます。
- Cloud Console の使用
bq
コマンドライン ツールのbq update
コマンドを使用するtables.patch
API メソッドを呼び出す- クライアント ライブラリを使用する
API または bq
コマンドライン ツールで、SQL 言語をレガシー SQL から標準 SQL に変更できます。Cloud Console では、レガシー SQL ビューを標準 SQL にアップデートすることはできません。
ビューの SQL クエリを更新するには:
Console
[リソース] パネルで、プロジェクトとデータセットを展開し、ビューを選択します。
[詳細] タブをクリックします。
[クエリ] ボックスの上の、[クエリを編集] ボタンをクリックします。表示されたダイアログの [開く] をクリックします。
[クエリエディタ] ボックスで SQL クエリを編集し、[ビューを保存] をクリックします。
[ビューを保存] ダイアログですべてのフィールドが正しいことを確認してから、[保存] をクリックします。
bq
--view
フラグを指定して bq update
コマンドを発行します。標準 SQL を使用して、クエリ言語をレガシー SQL から標準 SQL に更新するには、--use_legacy_sql
フラグを指定し、false
に設定します。
Cloud Storage またはローカル ファイルに格納されている外部のユーザー定義関数リソースをクエリで参照する場合は、--view_udf_resource
フラグを使用してリソースを指定します。--view_udf_resource
フラグはここでは説明しません。UDF の使用方法の詳細については、標準 SQL ユーザー定義関数をご覧ください。
更新するビューがデフォルト プロジェクト以外のプロジェクトにある場合は、project_id:dataset
の形式でプロジェクト ID をデータセット名に追加します。
bq update \ --use_legacy_sql=false \ --view_udf_resource=path_to_file \ --view='query' \ project_id:dataset.view
ここで
- path_to_file は、ビューで使用されるユーザー定義関数リソースとして読み込まれ、すぐに評価されるコードファイルの URI またはローカル ファイル システムのパスです。複数のファイルを指定するには、フラグを繰り返します。
- query は、有効な標準 SQL クエリです。
- project_id はプロジェクト ID です。
- dataset はビューを含むデータセットです。
- view は、更新するビューの名前です。
例:
次のコマンドを入力して、mydataset
の myview
という名前のビューの SQL クエリを更新します。mydataset
はデフォルト プロジェクトにあります。ビューを更新するために使用されるクエリの例では、USA Name Data パブリック データセットのデータをクエリします。
bq update \
--use_legacy_sql=false \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
mydataset.myview
次のコマンドを入力して、mydataset
の myview
という名前のビューの SQL クエリを更新します。mydataset
はデフォルト プロジェクトではなく myotherproject
にあります。ビューを更新するために使用されるクエリの例では、USA Name Data パブリック データセットのデータをクエリします。
bq update \
--use_legacy_sql=false \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
myotherproject:mydataset.myview
API
ビューを更新するには、更新された view
プロパティを含むテーブル リソースを使用して tables.patch
メソッドを呼び出します。tables.update
メソッドはテーブル リソース全体を置き換えるため、tables.patch
メソッドの方が適切です。
Go
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Go の手順に従って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Python の手順に従って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
ビューの有効期限の更新
デフォルトのテーブル有効期限をデータセット レベルで設定することも(テーブルとビューの両方に反映される)、ビューを作成するときにそのビューの有効期限を設定することもできます。ビューを作成するときに有効期限を設定すると、データセットのデフォルトのテーブル有効期限は無視されます。デフォルトのテーブル有効期限をデータセット レベルで設定せず、ビューの作成時にも有効期限を設定しなかった場合は、ビューが失効することはないので、ビューを手動で削除する必要があります。
ビューを作成した後、次の方法でビューの有効期限を更新できます。
bq
コマンドライン ツールのbq update
コマンドを使用するtables.patch
API メソッドを呼び出す- クライアント ライブラリを使用する
ビューの有効期限を更新するには:
Console
ナビゲーション パネルで、ビューを選択します。
[詳細を表示] ページで、[詳細] タブをクリックします。
[ビューの情報] の右側にある編集アイコン(鉛筆)をクリックします。
[ビューの情報] ダイアログの [有効期限の表示] で、[日付を指定] をクリックします。
日付ピッカーで有効期限の日付と時刻を入力し、[OK] をクリックします。
[更新] をクリックします。更新された有効期限が [ビュー情報] セクションに表示されます。
SQL
データ定義言語(DDL)ステートメントを使用すると、標準 SQL クエリ構文を使用してテーブルとビューの作成と変更ができます。
データ定義言語ステートメントの使用をご覧ください。
Cloud Console で DDL ステートメントを使用するには:
[クエリを新規作成] をクリックします。
[クエリエディタ] テキスト領域に DDL ステートメントを入力します。
ALTER VIEW mydataset.myview SET OPTIONS ( -- Sets view expiration to timestamp 2025-02-03 12:34:56 in the America/Los Angeles time zone expiration_timestamp=TIMESTAMP("2025-02-03 12:34:56", "America/Los Angeles") );
[実行] をクリックします。
bq
--expiration
フラグを指定して bq update
コマンドを発行します。更新するビューがデフォルト プロジェクト以外のプロジェクトにある場合は、project_id:dataset
の形式でプロジェクト ID をデータセット名に追加します。
bq update \ --expiration integer \ project_id:dataset.view
ここで
- integer はテーブルのデフォルトの存続期間(秒)です。最小値は 3,600 秒(1 時間)です。現在時刻にこの整数値を足した値が有効期限になります。
- project_id はプロジェクト ID です。
- dataset は、更新するビューが存在しているデータセットの名前です。
- view は更新するビューの名前です。
例:
次のコマンドを入力して、mydataset
内の myview
のパーティションの有効期限を 5 日間(432,000 秒)に更新します。mydataset
はデフォルト プロジェクトにあります。
bq update --expiration 432000 mydataset.myview
次のコマンドを入力して、mydataset
内の myview
のパーティションの有効期限を 5 日間(432,000 秒)に更新します。mydataset
はデフォルト プロジェクトではなく myotherproject
にあります。
bq update --expiration 432000 myotherproject:mydataset.myview
API
tables.patch
メソッドを呼び出し、テーブル リソースの expirationTime
プロパティを使用します。tables.update
メソッドはテーブル リソース全体を置き換えるため、tables.patch
メソッドの方が適切です。REST API を使用する場合、ビューの有効期限はミリ秒単位で表されます。
Go
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Go の手順に従って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
Python
ビューの有効期限の更新は、テーブルの有効期限の更新と同じプロセスです。
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Python の手順に従って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
ビューの説明の更新
ビューの説明は次の方法で更新できます。
- Cloud Console の使用
bq
コマンドライン ツールのbq update
コマンドを使用するtables.patch
API メソッドを呼び出す- クライアント ライブラリを使用する
ビューの説明を更新するには:
Console
Cloud Console を使用してビューを作成する場合、説明を追加することはできません。ビューの作成後に、[詳細] ページで説明を追加できます。
[リソース] リストで、ビューを選択します。
[詳細] タブをクリックします。
[説明] の横にある鉛筆アイコンをクリックします。
ダイアログ ボックスに説明を入力します。[更新] をクリックして、新しい説明を保存します。
SQL
データ定義言語(DDL)ステートメントを使用すると、標準 SQL クエリ構文を使用してテーブルとビューの作成と変更ができます。
データ定義言語ステートメントの使用をご覧ください。
Cloud Console で DDL ステートメントを使用するには:
[クエリを新規作成] をクリックします。
[クエリエディタ] テキスト領域に DDL ステートメントを入力します。
ALTER VIEW mydataset.myview SET OPTIONS ( description="Description of myview" );
[実行] をクリックします。
bq
--description
フラグを指定して bq update
コマンドを発行します。更新するビューがデフォルト プロジェクト以外のプロジェクトにある場合は、[PROJECT_ID]:[DATASET]
の形式でプロジェクト ID をデータセット名に追加します。
bq update \ --description "description" \ project_id:dataset.view
ここで
- description は引用符で囲んだ、ビューを説明するテキストです。
- project_id はプロジェクト ID です。
- dataset は、更新するビューが存在しているデータセットの名前です。
- view は更新するビューの名前です。
例:
次のコマンドを入力して、mydataset
の myview
の説明を「Description of myview」に変更します。mydataset
はデフォルト プロジェクトにあります。
bq update --description "Description of myview" mydataset.myview
mydataset
内の myview
の説明を「Description of myview」に変更するには、次のコマンドを入力します。mydataset
はデフォルト プロジェクトではなく myotherproject
にあります。
bq update \
--description "Description of myview" \
myotherproject:mydataset.myview
API
tables.patch
メソッドを呼び出し、description
プロパティを使用して、テーブル リソースのビューの説明を更新します。tables.update
メソッドはテーブル リソース全体を置き換えるため、tables.patch
メソッドの方が適切です。
Go
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Go の手順に従って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
Java
ビューの説明の更新は、テーブルの説明の更新と同じプロセスです。
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
Python
ビューの説明の更新は、テーブルの説明の更新と同じプロセスです。
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Python の手順に従って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
次のステップ
- ビューのコピーや削除など、ビューの管理の詳細については、ビューの管理をご覧ください。
- ビューの作成方法については、ビューの作成をご覧ください。
- 承認済みビューの作成方法については、承認済みビューの作成をご覧ください。
- ビューの一覧表示の詳細については、ビューの一覧表示をご覧ください。
- ビューのメタデータを取得する方法については、ビューの情報の取得をご覧ください。