ラベルの管理

BigQuery リソースを整理するために、データセット、テーブル、ビューにラベルを追加できます。ラベルとは、リソースに添付可能な Key-Value ペアです。BigQuery のリソースを作成するとき、ラベルは必須ではありません。

リソースにラベルを付けると、ラベル値に基づいてそのリソースを検索できるようになります。たとえば、ラベルを使用してデータセットを目的別、環境別、部署別などにグループ分けできます。

このページでは、ラベルの更新や削除など、BigQuery リソースのラベルの管理方法について説明します。

BigQuery リソースへのラベルの追加や BigQuery でのラベルの使用については、ラベルの追加と使用をご覧ください。

ラベルとは

ラベルとは、Google Cloud Platform の BigQuery リソースの整理に役立つ Key-Value ペアのことです。各リソースにラベルを設定し、そのラベルに基づいてリソースをフィルタリングできます。ラベルに関する情報は課金システムに転送されるため、ラベルを基準に請求料金を分析することもできます。

ラベルの一般的な用途

次に、ラベルの一般な使用例を示します。

  • チームまたはコストセンターのラベル: チームやコストセンターに基づいてラベルを追加し、各チームが所有する BigQuery のリソースを識別できるようにします(team:researchteam:analytics など)。このタイプのラベルは、費用計算または予算作成に使用できます。

  • コンポーネント ラベル: component:rediscomponent:frontendcomponent:ingestcomponent:dashboard など。

  • 環境またはステージのラベル: environment:productionenvironment:test など。

  • オーナーまたは連絡先のラベル: BigQuery リソースのオーナーまたは主要な連絡先に基づいてラベルを追加します。

  • 状態のラベル: state:activestate:readytodeletestate:archive など。

ラベルの要件

リソースに適用するラベルは、次の要件を満たす必要があります。

  • 1 つのリソースには、最大 64 個のラベルを適用できます。
  • ラベルは、Key-Value ペアでなければなりません。
  • キーは 1 文字以上、63 文字までにする必要があります。空にすることはできません。値は 63 文字以下にします。空にすることもできます。
  • キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。
  • ラベルのキー部分は一意でなければなりません。ただし、複数のリソースで同じキーを使用できます。
  • キーは、小文字または国際文字で始める必要があります。

データセット ラベルの更新

データセット ラベルを更新するには、BigQuery ウェブ UI またはコマンドライン ツールの bq update コマンドを使用するか、API の datasets.patch メソッドを使用します。

必要な権限

データセット ラベルを更新するユーザーには、データセット レベルで OWNER アクセス権が付与されているか、bigquery.datasets.update 権限を含むプロジェクト レベルの IAM 役割が割り当てられている必要があります。次の定義済みのプロジェクト レベルの IAM 役割には bigquery.datasets.update 権限が含まれます。

また、bigquery.user 役割には bigquery.datasets.create 権限が含まれているため、bigquery.user 役割に割り当てられたユーザーは、自分が作成した任意のデータセットを更新できます。bigquery.user 役割に割り当てられているユーザーがデータセットを作成すると、そのユーザーには、作成したデータセットへの OWNER アクセス権が付与されます。 データセットへの OWNER アクセス権が付与されたユーザーは、そのデータセットを完全に制御できます。

BigQuery での IAM 役割と権限の詳細については、アクセス制御をご覧ください。データセット レベルの役割の詳細については、データセットに対する基本の役割をご覧ください。

データセット ラベルの更新

既存のデータセットのラベルを更新するには:

ウェブ UI

  1. ウェブ UI でデータセットを選択します。

  2. [Dataset Details] ページの [Labels] の右にある [Edit] をクリックします。

    ラベルを編集

  3. [Edit Labels] ダイアログで、次の操作を行います。

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

      新しいラベル

コマンドライン

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

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

    bq update --set_label [KEY:VALUE] [PROJECT_ID]:[DATASET]

ここで

  • [KEY:VALUE] は、追加または更新するラベルの Key-Value ペアに対応します。既存のラベルと同じキーを指定した場合は、その既存ラベルの値が更新されます。キーは一意でなければなりません。
  • [PROJECT_ID] はプロジェクト ID です。
  • [DATASET] は更新するデータセットです。

例:

mydatasetdepartment ラベルを更新するには、bq update コマンドを入力し、ラベルキーとして department を指定します。たとえば、department:shipping ラベルを department:logistics に更新するには次のコマンドを入力します。mydataset はデフォルト プロジェクトではなく myotherproject にあります。

    bq update --set_label department:logistics myotherproject:mydataset

API

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

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

Go

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

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
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
}

Java

このサンプルは、Google HTTP Client Library for Java を使用してリクエストを BigQuery API に送信します。
static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
static final JsonFactory JSON_FACTORY = new JacksonFactory();

public static class Dataset {
  @Key private Map<String, String> labels;

  public Map<String, String> getLabels() {
    return this.labels;
  }

  public Dataset addLabel(String key, String value) {
    if (this.labels == null) {
      this.labels = new HashMap<>();
    }
    this.labels.put(key, value);
    return this;
  }
}

/**
 * Add or modify a label on a dataset.
 *
 * <p>See <a href="https://cloud.google.com/bigquery/docs/labeling-datasets">the BigQuery
 * documentation</a>.
 */
public static void labelDataset(
    String projectId, String datasetId, String labelKey, String labelValue) throws IOException {

  // Authenticate requests using Google Application Default credentials.
  GoogleCredential credential = GoogleCredential.getApplicationDefault();
  credential = credential.createScoped(Arrays.asList("https://www.googleapis.com/auth/bigquery"));

  // Get a new access token.
  // Note that access tokens have an expiration. You can reuse a token rather than requesting a
  // new one if it is not yet expired.
  credential.refreshToken();
  String accessToken = credential.getAccessToken();

  // Set the content of the request.
  Dataset dataset = new Dataset();
  dataset.addLabel(labelKey, labelValue);
  HttpContent content = new JsonHttpContent(JSON_FACTORY, dataset);

  // Send the request to the BigQuery API.
  String urlFormat =
      "https://www.googleapis.com/bigquery/v2/projects/%s/datasets/%s"
          + "?fields=labels&access_token=%s";
  GenericUrl url = new GenericUrl(String.format(urlFormat, projectId, datasetId, accessToken));
  HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory();
  HttpRequest request = requestFactory.buildPostRequest(url, content);
  request.setParser(JSON_FACTORY.createJsonObjectParser());

  // Workaround for transports which do not support PATCH requests.
  // See: http://stackoverflow.com/a/32503192/101923
  request.setHeaders(new HttpHeaders().set("X-HTTP-Method-Override", "PATCH"));
  HttpResponse response = request.execute();

  // Check for errors.
  if (response.getStatusCode() != 200) {
    throw new RuntimeException(response.getStatusMessage());
  }

  Dataset responseDataset = response.parseAs(Dataset.class);
  System.out.printf(
      "Updated label \"%s\" with value \"%s\"\n",
      labelKey, responseDataset.getLabels().get(labelKey));
}

Python

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

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_ref = client.dataset('my_dataset')
# dataset = client.get_dataset(dataset_ref)  # API request

assert dataset.labels == {}
labels = {'color': 'green'}
dataset.labels = labels

dataset = client.update_dataset(dataset, ['labels'])  # API request

assert dataset.labels == labels

テーブルとビューのラベルの更新

テーブルやビューを作成した後にラベルを更新するには、BigQuery ウェブ UI またはコマンドライン ツールの bq update コマンドを使用するか、API の tables.patch メソッドを呼び出します。ビューはテーブルのリソースと同様に扱われるため、tables.patch メソッドを使用してビューとテーブルの両方を変更できます。

必要な権限

テーブルやビューのラベルを更新するユーザーには、データセット レベルで OWNER アクセス権が付与されているか、bigquery.tables.update 権限を含むプロジェクト レベルの IAM 役割が割り当てられている必要があります。事前定義されたプロジェクト レベルの IAM 役割のうち、bigquery.tables.update 権限を含むものは以下のとおりです。

また、bigquery.user 役割には bigquery.datasets.create 権限が含まれているため、bigquery.user 役割に割り当てられたユーザーは、自分が作成した任意のデータセット内のテーブルまたはビューを更新できます。bigquery.user 役割に割り当てられているユーザーがデータセットを作成すると、そのユーザーには、作成したデータセットへの OWNER アクセス権が付与されます。データセットへの OWNER アクセス権が付与されたユーザーは、そのデータセットと、そこに含まれるテーブルとビューを完全に制御できます。

BigQuery での IAM 役割と権限の詳細については、アクセス制御をご覧ください。データセット レベルの役割の詳細については、データセットに対する基本の役割をご覧ください。

テーブルまたはビューのラベルの更新

テーブルまたはビューのラベルを更新するには:

ウェブ UI

  1. ウェブ UI でテーブルまたはビューを選択します。

  2. 詳細ページで、[Labels] の右側にある [Edit] をクリックします。この例では、テーブルの詳細が表示されています。

    ラベルを編集

  3. [Edit Labels] ダイアログで、次の操作を行います。

    • 追加のラベルを適用するには、[Add Label] をクリックします。各キーは 1 つのテーブルまたはビューにつき 1 回だけ使用できますが、同じキーを別のデータセットのテーブルやビューでも使用できます。
    • ラベルを更新するには、既存のキーまたは値に変更を加えます。
    • [OK] をクリックします。

      新しいラベル

コマンドライン

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

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

    bq update --set_label [KEY:VALUE] [PROJECT_ID]:[DATASET].[TABLE_OR_VIEW]

ここで

  • [KEY:VALUE] は、追加または更新するラベルの Key-Value ペアに対応します。既存のラベルと同じキーを指定した場合は、その既存ラベルの値が更新されます。キーは一意でなければなりません。
  • [PROJECT_ID] はプロジェクト ID です。
  • [DATASET] は、更新するテーブルまたはビューが含まれるデータセットです。
  • [TABLE_OR_VIEW] は、更新するテーブルまたはビューの名前です。

例:

mytabledepartment ラベルを更新するには、bq update コマンドを入力し、ラベルキーとして department を指定します。たとえば、mytabledepartment:shipping ラベルを department:logistics に更新するには、次のコマンドを入力します。mytable はデフォルト プロジェクトではなく myotherproject にあります。

    bq update --set_label department:logistics myotherproject:mydataset.mytable

API

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

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

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

Go

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

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
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
}

Java

このサンプルは、Google HTTP Client Library for Java を使用してリクエストを BigQuery API に送信します。
public static class Table {
  @Key private Map<String, String> labels;

  public Map<String, String> getLabels() {
    return this.labels;
  }

  public Table addLabel(String key, String value) {
    if (this.labels == null) {
      this.labels = new HashMap<>();
    }
    this.labels.put(key, value);
    return this;
  }
}

/**
 * Add or modify a label on a table.
 *
 * <p>See <a href="https://cloud.google.com/bigquery/docs/labeling-datasets">the BigQuery
 * documentation</a>.
 */
public static void labelTable(
    String projectId,
    String datasetId,
    String tableId,
    String labelKey,
    String labelValue)
    throws IOException {

  // Authenticate requests using Google Application Default credentials.
  GoogleCredential credential = GoogleCredential.getApplicationDefault();
  credential = credential.createScoped(Arrays.asList("https://www.googleapis.com/auth/bigquery"));

  // Get a new access token.
  // Note that access tokens have an expiration. You can reuse a token rather than requesting a
  // new one if it is not yet expired.
  credential.refreshToken();
  String accessToken = credential.getAccessToken();

  // Set the content of the request.
  Table table = new Table();
  table.addLabel(labelKey, labelValue);
  HttpContent content = new JsonHttpContent(JSON_FACTORY, table);

  // Send the request to the BigQuery API.
  String urlFormat =
      "https://www.googleapis.com/bigquery/v2/projects/%s/datasets/%s/tables/%s"
          + "?fields=labels&access_token=%s";
  GenericUrl url =
      new GenericUrl(String.format(urlFormat, projectId, datasetId, tableId, accessToken));
  HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory();
  HttpRequest request = requestFactory.buildPostRequest(url, content);
  request.setParser(JSON_FACTORY.createJsonObjectParser());

  // Workaround for transports which do not support PATCH requests.
  // See: http://stackoverflow.com/a/32503192/101923
  request.setHeaders(new HttpHeaders().set("X-HTTP-Method-Override", "PATCH"));
  HttpResponse response = request.execute();

  // Check for errors.
  if (response.getStatusCode() != 200) {
    throw new RuntimeException(response.getStatusMessage());
  }

  Table responseTable = response.parseAs(Table.class);
  System.out.printf(
      "Updated label \"%s\" with value \"%s\"\n",
      labelKey, responseTable.getLabels().get(labelKey));
}

Python

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

# from google.cloud import bigquery
# client = bigquery.Client()
# table_ref = client.dataset('my_dataset').table('my_table')
# table = client.get_table(table_ref)  # API request

assert table.labels == {}
labels = {'color': 'green'}
table.labels = labels

table = client.update_table(table, ['labels'])  # API request

assert table.labels == labels

ジョブラベルの更新

現在、ジョブラベルの更新はサポートされていません。ジョブのラベルを更新するには、新しいラベルを指定してジョブを再送信してください。

ラベルの削除

データセット、テーブル、ビューのラベルを削除するには、BigQuery ウェブ UI またはコマンドライン ツールの bq update コマンドを使用するか、API の datasets.patch メソッドまたは tables.patch メソッドを呼び出します。

データセット ラベルの削除

データセット ラベルを削除するには、BigQuery ウェブ UI またはコマンドライン ツールの bq update コマンドを使用するか、API の datasets.patch メソッドを呼び出します。

必要な権限

データセット ラベルを削除するユーザーには、データセット レベルで OWNER アクセス権が付与されているか、bigquery.datasets.update 権限を含むプロジェクト レベルの IAM 役割が割り当てられている必要があります。次の定義済みのプロジェクト レベルの IAM 役割には bigquery.datasets.update 権限が含まれます。

また、bigquery.user 役割には bigquery.datasets.create 権限が含まれているため、bigquery.user 役割に割り当てられたユーザーは、自分が作成した任意のデータセットを更新できます。bigquery.user 役割に割り当てられているユーザーがデータセットを作成すると、そのユーザーには、作成したデータセットへの OWNER アクセス権が付与されます。 データセットへの OWNER アクセス権が付与されたユーザーは、そのデータセットを完全に制御できます。

BigQuery での IAM 役割と権限の詳細については、アクセス制御をご覧ください。データセット レベルの役割の詳細については、データセットに対する基本の役割をご覧ください。

データセット ラベルの削除

データセットからラベルを削除するには:

ウェブ UI

  1. ウェブ UI でデータセットを選択します。

  2. [Dataset Details] ページの [Labels] の右にある [Edit] をクリックします。

  3. [Edit Labels] ダイアログで、次の操作を行います。

    • 削除する各ラベルの削除アイコン(X)をクリックします。
    • [OK] をクリックします。

      ラベルを削除

コマンドライン

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

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

    bq update --clear_label [KEY] [PROJECT_ID]:[DATASET]

ここで

  • [KEY] は削除するラベルのキーです。
  • [PROJECT_ID] はプロジェクト ID です。
  • [DATASET] は更新するデータセットです。

例:

department:shipping ラベルを mydataset から削除するには、bq update コマンドで --clear_label フラグを使用します。mydataset はデフォルト プロジェクトにあります。

    bq update --clear_label department mydataset

department:shipping ラベルを myotherproject 内の mydataset から削除するには、bq update コマンドで --clear_label フラグを使用します。

    bq update --clear_label department myotherproject:mydataset

複数のラベルをデータセットから削除するには、clear_label フラグを繰り返して各ラベルのキーを指定します。たとえば、department:shipping ラベルと cost_center:logistics ラベルをデフォルト プロジェクト内の mydataset から削除するには、次のように入力します。

    bq update --clear_label department --clear_label cost_center mydataset

API

既存データセットの特定のラベルを削除するには、datasets.patch メソッドを呼び出して、ラベルのキー値を null に設定することでデータセット リソースlabels プロパティを更新します。

データセットのすべてのラベルを削除するには、datasets.patch メソッドを呼び出して labels プロパティを削除します。

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

Go

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

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
ds := client.Dataset(datasetID)
meta, err := ds.Metadata(ctx)
if err != nil {
	return err
}
update := bigquery.DatasetMetadataToUpdate{}
update.DeleteLabel("color")
if _, err := ds.Update(ctx, update, meta.ETag); err != nil {
	return err
}

Python

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

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_ref = client.dataset('my_dataset')
# dataset = client.get_dataset(dataset_ref)  # API request

# This example dataset starts with one label
assert dataset.labels == {'color': 'green'}
# To delete a label from a dataset, set its value to None
dataset.labels['color'] = None

dataset = client.update_dataset(dataset, ['labels'])  # API request

assert dataset.labels == {}

テーブルまたはビューのラベルの削除

テーブルまたはビューのラベルを削除するには、BigQuery ウェブ UI またはコマンドライン ツールの bq update コマンドを使用するか、API の tables.patch メソッドを呼び出します。ビューはテーブルのリソースと同様に扱われるため、tables.patch メソッドを使用してビューとテーブルの両方を変更できます。

必要な権限

テーブルやビューのラベルを削除するユーザーには、データセット レベルで OWNER アクセス権が付与されているか、bigquery.tables.update 権限を含むプロジェクト レベルの IAM 役割が割り当てられている必要があります。事前定義されたプロジェクト レベルの IAM 役割のうち、bigquery.tables.update 権限を含むものは以下のとおりです。

また、bigquery.user 役割には bigquery.datasets.create 権限が含まれているため、bigquery.user 役割に割り当てられたユーザーは、自分が作成した任意のデータセット内のテーブルまたはビューを更新できます。bigquery.user 役割に割り当てられているユーザーがデータセットを作成すると、そのユーザーには、作成したデータセットへの OWNER アクセス権が付与されます。 データセットへの OWNER アクセス権が付与されたユーザーは、そのデータセットと、そこに含まれるすべてのテーブルとビューを完全に制御できます。

BigQuery での IAM 役割と権限の詳細については、アクセス制御をご覧ください。データセット レベルの役割の詳細については、データセットに対する基本の役割をご覧ください。

テーブルまたはビューのラベルの削除

テーブルまたはビューからラベルを削除するには:

ウェブ UI

  1. ウェブ UI でテーブルまたはビューを選択します。

  2. [Details] ページで、[Labels] の右にある [Edit] をクリックします。

  3. [Edit Labels] ダイアログで、次の操作を行います。

    • 削除する各ラベルの削除アイコン(X)をクリックします。
    • [OK] をクリックします。

      ラベルを削除

コマンドライン

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

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

    bq update --clear_label [KEY] [PROJECT_ID]:[TABLE_OR_VIEW]

ここで

  • [KEY] は削除するラベルのキーです。
  • [PROJECT_ID] はプロジェクト ID です。
  • [DATASET] は更新するデータセットです。
  • [TABLE_OR_VIEW] は、更新するテーブルまたはビューの名前です。

例:

department:shipping ラベルを mydataset.mytable から削除するには、bq update コマンドで --clear_label フラグを使用します。mydataset はデフォルト プロジェクトにあります。

    bq update --clear_label department mydataset.mytable

department:shipping ラベルを myotherproject 内の mydataset.myview から削除するには、bq update コマンドで --clear_label フラグを使用します。

    bq update --clear_label department myotherproject:mydataset.myview

複数のラベルをテーブルまたはビューから削除するには、clear_label フラグを繰り返して各ラベルのキーを指定します。たとえば、department:shipping ラベルと cost_center:logistics ラベルをデフォルト プロジェクト内の mydataset.mytable から削除するには、次のように入力します。

    bq update --clear_label department --clear_label cost_center mydataset.mytable

API

既存テーブルや既存ビューの特定のラベルを削除するには、tables.patch メソッドを呼び出して、ラベルのキー値を null に設定することでテーブル リソースlabels プロパティを更新します。

特定のテーブルやビューからラベルをすべて削除するには、tables.patch メソッドを呼び出して labels プロパティを削除します。

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

Go

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

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
tbl := client.Dataset(datasetID).Table(tableID)
meta, err := tbl.Metadata(ctx)
if err != nil {
	return err
}
update := bigquery.TableMetadataToUpdate{}
update.DeleteLabel("color")
if _, err := tbl.Update(ctx, update, meta.ETag); err != nil {
	return err
}

Python

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

# from google.cloud import bigquery
# client = bigquery.Client()
# table_ref = client.dataset('my_dataset').table('my_table')
# table = client.get_table(table_ref)  # API request

# This example table starts with one label
assert table.labels == {'color': 'green'}
# To delete a label from a table, set its value to None
table.labels['color'] = None

table = client.update_table(table, ['labels'])  # API request

assert table.labels == {}

ジョブラベルの削除

現在、既存のジョブからラベルを削除することはサポートされていません。

タグへのラベルの変換

値が空のキーを持つラベルはタグとして使用されます。新しいラベルを値なしで作成することも、既存のラベルをタグに変換することもできます。

タグは、リソースにラベルを付けたいものの、Key-Value 形式は必要ない場合に役立ちます。たとえば、あるテーブルに格納されているテストデータを複数のグループ(サポート、開発など)で使用する場合に、test_data タグをテーブルに追加してそのことを示します。

ラベルをタグに変換するには:

ウェブ UI

  1. ウェブ UI で、該当するリソース(データセット、テーブル、またはビュー)を選択します。

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

  3. 詳細ページで、[Labels] の右にある [Edit] をクリックします。

  4. [Edit Labels] ダイアログで、次の操作を行います。

    • 既存のラベルの値を削除します。
    • [OK] をクリックします。

      タグを追加

コマンドライン

ラベルをタグに変換するには、bq update コマンドを使用して set_label フラグを指定します。キーを指定して、後ろにコロンを付けますが、値は指定しません。これにより、既存のラベルがタグに更新されます。

bq update --set_label [KEY]: [RESOURCE_ID]

ここで

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

例:

mydataset の既存のラベル test_data:development をタグに変更するには、次のコマンドを入力します。mydataset はデフォルト プロジェクトではなく myotherproject にあります。

bq update --set_label test_data: myotherproject:mydataset

API

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

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

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。