リソースへのラベルの追加

このページでは、BigQuery リソースにラベルを付ける方法について説明します。

始める前に

このドキュメントの各タスクを実行するために必要な権限を与える Identity and Access Management(IAM)のロールを付与します。タスクの実行に必要な権限は、タスクの「必要な IAM のロール」に記載されています。

データセットにラベルを追加する

BigQuery データセットを作成するときにラベルを追加するには、bq コマンドライン ツールの bq mk コマンドを使用するか、API の datasets.insert メソッドを呼び出します。 Google Cloud コンソールを使用してデータセットを作成するときに、データセットにラベルを追加することはできません。

このページでは、作成したデータセットにラベルを追加する方法について説明します。データセットの作成時にラベルを追加する方法について詳しくは、データセットの作成をご覧ください。

データセットにラベルを追加しても、データセット内のリソースには反映されません。データセット ラベルはテーブルまたはビューに継承されません。また、データセットにラベルを追加すると、そのデータセット ラベルはストレージの課金データとしてカウントされますが、ジョブ関連の課金データとしてはカウントされません。

ラベルの形式の詳細については、ラベルの要件をご覧ください。

必要な IAM のロール

既存のデータセットにラベルを追加するために必要な権限を取得するには、BigQuery データ編集者roles/bigquery.dataEditor)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

この事前定義ロールには、既存のデータセットにラベルを追加するために必要な bigquery.datasets.update 権限が含まれています。

カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。

BigQuery での IAM のロールと権限については、事前定義ロールと権限をご覧ください。

データセットにラベルを追加する

作成したデータセットにラベルを追加するには:

コンソール

  1. Google Cloud コンソールでデータセットを選択します。

  2. データセットの詳細ページで、[ラベル] の右にある鉛筆アイコンをクリックします。

    ラベル鉛筆

  3. [ラベルの編集] ダイアログで、次の操作を行います。

    • [ラベルを追加] をクリックします。
    • キーと値を入力します。追加のラベルを適用するには、[ラベルを追加] をクリックします。各キーは 1 つのデータセットで 1 回だけ使用できますが、同じキーを同じプロジェクト内の複数のデータセットで使用できます。
    • ラベルを更新するには、既存のキーまたは値を変更します。
    • 変更を保存するには、[更新] をクリックします。

SQL

既存のデータセットのラベルを設定するには、ALTER SCHEMA SET OPTIONS DDL ステートメントを使用します。ラベルを設定すると、データセット内の既存のラベルが上書きされます。次の例では、データセット mydataset にラベルを設定します。

  1. Google Cloud コンソールで、[BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

    ALTER SCHEMA mydataset SET OPTIONS (   labels = [('sensitivity', 'high')]);

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

bq

既存のデータセットにラベルを追加するには、set_label フラグを指定して bq update コマンドを発行します。複数のラベルを追加するには、このフラグを繰り返し指定します。

データセットがデフォルト プロジェクト以外のプロジェクトにある場合は、PROJECT_ID:DATASET の形式でプロジェクト ID をデータセットに追加します。

bq update --set_label KEY:VALUE PROJECT_ID:DATASET

次のように置き換えます。

  • KEY:VALUE: 追加するラベルの Key-Value ペア。キーは一意でなければなりません。キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。
  • PROJECT_ID: プロジェクト ID。
  • DATASET: ラベルを付けるデータセット。

例:

部署を示すラベルを追加するには、bq update コマンドを入力し、ラベルキーとして department を指定します。たとえば、department:shipping ラベルをデフォルト プロジェクト内の mydataset に追加するには、次のように入力します。

    bq update --set_label department:shipping mydataset 

複数のラベルをデータセットに追加するには、set_label フラグを繰り返し、ラベルごとに一意のキーを指定します。たとえば、department:shipping ラベルと cost_center:logistics ラベルをデフォルト プロジェクト内の mydataset に追加するには、次のように入力します。

    bq update \     --set_label department:shipping \     --set_label cost_center:logistics \     mydataset 

API

既存のデータセットにラベルを追加するには、datasets.patch メソッドを呼び出して、データセット リソースlabels プロパティを設定します。

datasets.update メソッドはデータセット リソース全体を置き換えるので、datasets.patch メソッドの方が適切です。

Go

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Go の設定手順を完了してください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

import ( 	"context" 	"fmt"  	"cloud.google.com/go/bigquery" )  // addDatasetLabel demonstrates adding label metadata to an existing dataset. func addDatasetLabel(projectID, datasetID string) error { 	// projectID := "my-project-id" 	// datasetID := "mydataset" 	ctx := context.Background() 	client, err := bigquery.NewClient(ctx, projectID) 	if err != nil { 		return fmt.Errorf("bigquery.NewClient: %v", err) 	} 	defer client.Close()  	ds := client.Dataset(datasetID) 	meta, err := ds.Metadata(ctx) 	if err != nil { 		return err 	}  	update := bigquery.DatasetMetadataToUpdate{} 	update.SetLabel("color", "green") 	if _, err := ds.Update(ctx, update, meta.ETag); err != nil { 		return err 	} 	return nil } 

Java

このサンプルは、Java 用の Google HTTP クライアント ライブラリを使用してリクエストを BigQuery API に送信します。

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Java の設定手順を完了してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Dataset; import java.util.HashMap; import java.util.Map;  // Sample to updates a label on dataset public class LabelDataset {    public static void main(String[] args) {     // TODO(developer): Replace these variables before running the sample.     String datasetName = "MY_DATASET_NAME";     labelDataset(datasetName);   }    public static void labelDataset(String datasetName) {     try {       // Initialize client that will be used to send requests. This client only needs to be created       // once, and can be reused for multiple requests.       BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();        // This example dataset starts with existing label { color: 'green' }       Dataset dataset = bigquery.getDataset(datasetName);       // Add label to dataset       Map<String, String> labels = new HashMap<>();       labels.put("color", "green");        dataset.toBuilder().setLabels(labels).build().update();       System.out.println("Label added successfully");     } catch (BigQueryException e) {       System.out.println("Label was not added. \n" + e.toString());     }   } }

Node.js

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Node.js の設定手順を完了してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

// Import the Google Cloud client library const {BigQuery} = require('@google-cloud/bigquery'); const bigquery = new BigQuery();  async function labelDataset() {   // Updates a label on a dataset.    /**    * TODO(developer): Uncomment the following lines before running the sample    */   // const datasetId = "my_dataset";    // Retrieve current dataset metadata.   const dataset = bigquery.dataset(datasetId);   const [metadata] = await dataset.getMetadata();    // Add label to dataset metadata   metadata.labels = {color: 'green'};   const [apiResponse] = await dataset.setMetadata(metadata);    console.log(`${datasetId} labels:`);   console.log(apiResponse.labels); }

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Python の設定手順を完了してください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

 from google.cloud import bigquery  # Construct a BigQuery client object. client = bigquery.Client()  # TODO(developer): Set dataset_id to the ID of the dataset to fetch. # dataset_id = "your-project.your_dataset"  dataset = client.get_dataset(dataset_id)  # Make an API request. dataset.labels = {"color": "green"} dataset = client.update_dataset(dataset, ["labels"])  # Make an API request.  print("Labels added to {}".format(dataset_id))

テーブルとビューにラベルを追加する

このページでは、既存のテーブルまたはビューにラベルを追加する方法について説明します。テーブルまたはビューの作成時にラベルを追加する方法について詳しくは、テーブルの作成またはビューの作成をご覧ください。

ビューはテーブル リソースと同様に扱われるため、tables.patch メソッドを使用してビューとテーブルの両方を変更できます。

必要な IAM のロール

既存のテーブルまたはビューにラベルを追加するために必要な権限を取得するには、BigQuery データ編集者roles/bigquery.dataEditor)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

この事前定義ロールには、既存のテーブルまたはビューにラベルを追加するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

既存のテーブルまたはビューにラベルを追加するには、次の権限が必要です。

  • bigquery.tables.update
  • bigquery.tables.get

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

BigQuery での IAM のロールと権限については、事前定義ロールと権限をご覧ください。

テーブルまたはビューにラベルを追加する

既存のテーブルまたはビューにラベルを追加するには:

コンソール

  1. Google Cloud コンソールで、テーブルまたはビューを選択します。

  2. [詳細] タブをクリックします。

    テーブルの詳細。

  3. [ラベル] の右にある鉛筆アイコンをクリックします。

    ラベル鉛筆

  4. [ラベルの編集] ダイアログで、次の操作を行います。

    • [ラベルを追加] をクリックします。
    • ラベルを追加するには、キーと値を入力します。追加のラベルを適用するには、[ラベルを追加] をクリックします。各キーはデータセットごとに 1 回だけ使用できますが、同じキーを同じプロジェクト内の複数のデータセットで使用できます。
    • ラベルを更新するには、既存のキーまたは値に変更を加えます。
    • [更新] をクリックして、変更を保存します。

SQL

既存のテーブルにラベルを設定するには、ALTER TABLE SET OPTIONS DDL ステートメント、または既存のビューにラベルを設定するには、ALTER VIEW SET OPTIONS DDL ステートメントを使用します。ラベルを設定すると、テーブルまたはビューの既存のラベルが上書きされます。次の例では、テーブル mytable に 2 つのラベルを設定します。

  1. Google Cloud コンソールで、[BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

    ALTER TABLE mydataset.mytable SET OPTIONS (   labels = [('department', 'shipping'), ('cost_center', 'logistics')]);

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

bq

既存のテーブルまたはビューにラベルを追加するには、set_label フラグを指定して bq update コマンドを発行します。複数のラベルを追加するには、このフラグを繰り返します。

テーブルまたはビューがデフォルト プロジェクト以外のプロジェクトにある場合は、project_id:dataset の形式でプロジェクト ID をデータセットに追加します。

bq update \ --set_label KEY:VALUE \ PROJECT_ID:DATASET.TABLE_OR_VIEW

次のように置き換えます。

  • KEY:VALUE: 追加するラベルの Key-Value ペア。キーは一意でなければなりません。キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。
  • PROJECT_ID: プロジェクト ID。
  • DATASET: ラベルを付けるテーブルまたはビューを含むデータセット。
  • TABLE_OR_VIEW: ラベルを付けるテーブルまたはビューの名前。

例:

部署を示すテーブルラベルを追加するには、bq update コマンドを入力し、ラベルキーとして department を指定します。たとえば、department:shipping ラベルをデフォルト プロジェクト内の mytable に追加するには、次のように入力します。

    bq update --set_label department:shipping mydataset.mytable 

部署を示すビューラベルを追加するには、bq update コマンドを入力し、ラベルキーとして department を指定します。たとえば、department:shipping ラベルをデフォルト プロジェクト内の myview に追加するには、次のように入力します。

    bq update --set_label department:shipping mydataset.myview 

複数のラベルをテーブルまたはビューに追加するには、set_label フラグを繰り返し、ラベルごとに一意のキーを指定します。たとえば、department:shipping ラベルと cost_center:logistics ラベルをデフォルト プロジェクト内の mytable に追加するには、次のように入力します。

    bq update \     --set_label department:shipping \     --set_label cost_center:logistics \     mydataset.mytable 

API

既存のテーブルまたはビューにラベルを追加するには、tables.patch メソッドを呼び出して、テーブル リソースlabels プロパティを設定します。

ビューはテーブル リソースと同様に扱われるため、tables.patch メソッドを使用してビューとテーブルの両方を変更できます。

tables.update メソッドはデータセット リソース全体を置き換えるため、tables.patch メソッドの方が適切です。

Go

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Go の設定手順を完了してください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

import ( 	"context" 	"fmt"  	"cloud.google.com/go/bigquery" )  // addTableLabel demonstrates adding Label metadata to a BigQuery table. func addTableLabel(projectID, datasetID, tableID string) error { 	// projectID := "my-project-id" 	// datasetID := "mydataset" 	// tableID := "mytable" 	ctx := context.Background() 	client, err := bigquery.NewClient(ctx, projectID) 	if err != nil { 		return fmt.Errorf("bigquery.NewClient: %v", err) 	} 	defer client.Close()  	tbl := client.Dataset(datasetID).Table(tableID) 	meta, err := tbl.Metadata(ctx) 	if err != nil { 		return err 	}  	update := bigquery.TableMetadataToUpdate{} 	update.SetLabel("color", "green") 	if _, err := tbl.Update(ctx, update, meta.ETag); err != nil { 		return err 	} 	return nil } 

Java

このサンプルは、Java 用の Google HTTP クライアント ライブラリを使用してリクエストを BigQuery API に送信します。

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Java の設定手順を完了してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableId; import java.util.HashMap; import java.util.Map;  // Sample to adds a label to an existing table public class LabelTable {    public static void main(String[] args) {     // TODO(developer): Replace these variables before running the sample.     String datasetName = "MY_DATASET_NAME";     String tableName = "MY_TABLE_NAME";     labelTable(datasetName, tableName);   }    public static void labelTable(String datasetName, String tableName) {     try {       // Initialize client that will be used to send requests. This client only needs to be created       // once, and can be reused for multiple requests.       BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();        // This example table starts with existing label { color: 'green' }       Table table = bigquery.getTable(TableId.of(datasetName, tableName));       // Add label to table       Map<String, String> labels = new HashMap<>();       labels.put("color", "green");        table.toBuilder().setLabels(labels).build().update();       System.out.println("Label added successfully");     } catch (BigQueryException e) {       System.out.println("Label was not added. \n" + e.toString());     }   } }

Node.js

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Node.js の設定手順を完了してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

// Import the Google Cloud client library const {BigQuery} = require('@google-cloud/bigquery'); const bigquery = new BigQuery();  async function labelTable() {   // Adds a label to an existing table.    /**    * TODO(developer): Uncomment the following lines before running the sample.    */   // const datasetId = 'my_dataset';   // const tableId = 'my_table';    const dataset = bigquery.dataset(datasetId);   const [table] = await dataset.table(tableId).get();    // Retrieve current table metadata   const [metadata] = await table.getMetadata();    // Add label to table metadata   metadata.labels = {color: 'green'};   const [apiResponse] = await table.setMetadata(metadata);    console.log(`${tableId} labels:`);   console.log(apiResponse.labels); }

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Python の設定手順を完了してください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

from google.cloud import bigquery  client = bigquery.Client()  # TODO(dev): Change table_id to the full name of the table you want to create. table_id = "your-project.your_dataset.your_table_name"  table = client.get_table(table_id)  # API request  labels = {"color": "green"} table.labels = labels  table = client.update_table(table, ["labels"])  # API request  print(f"Added {table.labels} to {table_id}.")

ジョブにラベルを追加する

bq コマンドライン ツールを使用してクエリジョブにラベルを追加するには、--label フラグを使用します。bq ツールは、クエリジョブにのみラベルの追加をサポートしています。

jobs.insert メソッドを呼び出すときにジョブ構成で labels プロパティを指定することで、API でジョブを送信する際にジョブにラベルを追加することもできます。API を使用すると、どのジョブタイプにもラベルを追加できます。

ジョブが保留中、実行中、完了済みの場合は、ラベルの追加や更新を行えません。

ジョブにラベルを追加すると、そのラベルが課金データとしてカウントされます。

必要な IAM のロール

ジョブにラベルを追加するために必要な権限を取得するには、BigQuery ユーザーroles/bigquery.user)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

この事前定義ロールには、ジョブにラベルを追加するために必要な bigquery.jobs.create 権限が含まれています。

カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。

BigQuery での IAM のロールと権限については、事前定義ロールと権限をご覧ください。

ジョブにラベルを追加する

ジョブにラベルを追加するには:

bq

クエリジョブにラベルを追加するには、--label フラグを指定して bq query コマンドを発行します。複数のラベルを追加するには、このフラグを繰り返します。このフラグは、クエリが GoogleSQL 構文であることを示します。

bq query --label KEY:VALUE  'QUERY'

次のように置き換えます。

  • KEY:VALUE: クエリジョブに追加するラベルの Key-Value ペア。キーは一意でなければなりません。キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。複数のラベルをクエリジョブに追加するには、--label フラグを繰り返し、各ラベルに一意のキーを指定します。
  • QUERY: 有効な GoogleSQL クエリ。

例:

クエリジョブにラベルを追加するには、次のように入力します。

    bq query \     --label department:shipping \      \     'SELECT        column1, column2      FROM        `mydataset.mytable`' 

複数のラベルをクエリジョブに追加するには、--label フラグを繰り返し、ラベルごとに一意のキーを指定します。たとえば、department:shipping ラベルと cost_center:logistics ラベルをクエリジョブに追加するには、次のように入力します。

    bq query \     --label department:shipping \     --label cost_center:logistics \      \     'SELECT        column1, column2      FROM        `mydataset.mytable`' 

API

ジョブにラベルを追加するには、jobs.insert メソッドを呼び出して、ジョブ構成labels プロパティを設定します。API を使用して、任意のジョブタイプにラベルを追加できます。

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Python の設定手順を完了してください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

from google.cloud import bigquery  client = bigquery.Client()  sql = """     SELECT corpus     FROM `bigquery-public-data.samples.shakespeare`     GROUP BY corpus; """ labels = {"color": "green"}  config = bigquery.QueryJobConfig() config.labels = labels location = "us" job = client.query(sql, location=location, job_config=config) job_id = job.job_id  print(f"Added {job.labels} to {job_id}.")

セッション内のジョブをラベルに関連付ける

セッションでクエリを実行する場合は、BigQuery 複数ステートメント クエリを使用して、セッション内の今後のすべてのクエリジョブにラベルを割り当てることができます。

SQL

次のクエリを実行して、セッションで @@query_label システム変数を設定します。

  SET @@query_label = "KEY:VALUE";   

  • KEY:VALUE: セッション内の今後のクエリすべてに割り当てるラベルの Key-Value ペア。複数の Key-Value ペアをカンマで区切って追加することもできます(例: SET @@query_label = "key1:value1,key2:value2")。キーは一意にする必要があります。キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。

例:

  SET @@query_label = "cost_center:logistics";   

API

API 呼び出しを使用してクエリを実行するときに、セッション内のクエリジョブにラベルを追加するには、jobs.insert メソッドを呼び出し、connectionProperties ジョブ構成query_label プロパティを設定します。

クエリラベルをセッションに関連付けてセッション内でクエリを実行すると、そのクエリラベルを持つクエリの監査ログを収集できます。詳細については、BigQuery の監査ログ リファレンスをご覧ください。

予約にラベルを追加する

予約にラベルを追加すると、そのラベルが課金データとしてカウントされます。ラベルを使用すると、Cloud Billing データで Analysis Slots Attribution SKU をフィルタできます。

課金データでラベルを使用する方法については、フィルタを使用してデータを絞り込むをご覧ください。

必要な IAM のロール

予約にラベルを追加するために必要な権限を取得するには、管理プロジェクトに対する BigQuery リソース編集者roles/bigquery.resourceEditor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

この事前定義ロールには、予約にラベルを追加するために必要な bigquery.reservations.update 権限が含まれています。

カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。

予約にラベルを追加する

予約にラベルを追加するには:

SQL

予約にラベルを追加するには、ALTER RESERVATION SET OPTIONS DDL ステートメントを使用します。ラベルを設定すると、予約の既存のラベルが上書きされます。次の例では、予約 myreservation にラベルを設定します。

  1. Google Cloud コンソールで、[BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

    ALTER RESERVATION myreservation SET OPTIONS (   labels = [('sensitivity', 'high')]);

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

bq

予約にラベルを追加するには、set_label フラグと --reservation フラグを指定して bq update コマンドを実行します。複数のラベルを追加するには、set_label フラグを繰り返します。

bq update --set_label KEY:VALUE --location LOCATION --reservation RESERVATION_NAME

次のように置き換えます。

  • KEY:VALUE: 予約に追加するラベルの Key-Value ペア。キーは一意でなければなりません。キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。複数のラベルを予約に追加するには、--set_label フラグを繰り返し、各ラベルに一意のキーを指定します。
  • LOCATION: 予約のロケーション。location フラグをコマンドの最後に指定することはできません。指定すると、FATAL Flags positioning エラーが返されます。
  • RESERVATION_NAME: 予約の名前。

値のないラベルを追加する

値が空のキーを持つラベルは、タグと呼ばれることもあります。これは、タグリソースとは異なります。詳細については、ラベルとタグをご覧ください。値のない新しいラベルを作成することも、既存のラベルキーから値を削除することもできます。

リソースにラベルを付ける際に、Key-Value 形式が必要ない場合は、値のないラベルが便利です。たとえば、サポートや開発などの複数のグループで使用されるテストデータがテーブルに含まれている場合は、test_data ラベルをテーブルに追加して識別できます。

値のないラベルを追加するには、次の手順を行ってください。

コンソール

  1. Google Cloud コンソールで、適切なリソース(データセット、テーブル、ビュー)を選択します。

  2. データセットの場合は、データセットの詳細ページが自動的に開きます。テーブルとビューの場合は、[詳細] をクリックして詳細ページを開きます。

    テーブルの詳細。

  3. 詳細ページで、[ラベル] の右にある鉛筆アイコンをクリックします。

    ラベル鉛筆

  4. [ラベルの編集] ダイアログで、次の操作を行います。

    • [ラベルを追加] をクリックします。
    • 新しいキーを入力し、値を空白のままにします。追加のラベルを適用するには、[ラベルを追加] をクリックして手順を繰り返します。
    • 変更を保存するには、[更新] をクリックします。

SQL

値のないラベルを追加するには、ALTER TABLE SET OPTIONS DDL ステートメントを使用します。

  1. Google Cloud コンソールで、[BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

    ALTER TABLE mydataset.mytable SET OPTIONS (   labels=[("key1", ""), ("key2", "")]);

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

bq

既存のリソースに値のないラベルを追加するには、set_label フラグを指定して bq update コマンドを実行します。キーを指定して、後ろにコロンを付けますが、値は指定しません。

bq update --set_label KEY: RESOURCE_ID

次のように置き換えます。

  • KEY:: 使用するラベルキー。
  • RESOURCE_ID: 有効なデータセット、テーブル、またはビュー名。リソースがデフォルト プロジェクト以外のプロジェクトにある場合は、PROJECT_ID:DATASET の形式でプロジェクト ID を追加します。

例:

次のコマンドを入力して、mydataset.mytabletest_data ラベルを作成します。mydataset はデフォルト プロジェクトにあります。

bq update --set_label test_data: mydataset 

API

datasets.patch メソッドまたは tables.patch メソッドを呼び出して、データセット リソースまたはテーブル リソースに、値を空の文字列("")に設定したラベルを追加します。既存のラベルから値を削除するには、値を空の文字列に置き換えます。

ビューはテーブル リソースと同様に扱われるため、tables.patch メソッドを使用してビューとテーブルの両方を変更できます。また、tables.update メソッドはデータセット リソース全体を置き換えるため、tables.patch メソッドを使用します。

次のステップ