管理標籤

您可以在資料集、資料表和視圖中加入標籤,以協助整理您的 BigQuery 資源。標籤是您可以附加至資源的鍵/值組合。建立 BigQuery 資源時可以選擇是否要加入標籤。

為您的資源加上標籤後,您就可以根據標籤值進行搜尋。例如,您可以使用標籤依照用途、環境和部門等將資料集分組。

本頁說明如何管理 BigQuery 資源上的標籤,包括如何加入及移除標籤。

如要瞭解如何在 BigQuery 資源中加入標籤,或是在 BigQuery 中使用標籤,請參閱加入及使用標籤

什麼是標籤?

標籤是協助您整理 Google Cloud Platform BigQuery 資源的鍵/值組合。您可以將標籤附加到每一個資源,然後按標籤來篩選資源。標籤的相關資訊會轉送至帳單系統,所以您可以按標籤查看帳單費用明細

標籤的常見用法

以下是一些常見的標籤用途:

  • 團隊或成本中心標籤:依據團隊或成本中心來新增標籤,以區別不同團隊擁有的 BigQuery 資源 (例如 team:researchteam:analytics)。這類型的標籤可用於成本會計或預算編列作業。

  • 元件標籤:例如 component:rediscomponent:frontendcomponent:ingestcomponent:dashboard

  • 環境或階段標籤:例如 environment:productionenvironment:test

  • 狀態標籤:例如 state:activestate:readytodeletestate:archive

標籤需求

套用於資源的標籤必須符合下列需求條件:

  • 每個資源可以有多個標籤,上限為 64 個。
  • 每個標籤必須是鍵/值組合。
  • 鍵的長度下限為 1 個字元,上限為 63 個字元,不能空白。值可以空白,長度上限為 63 個字元。
  • 鍵和值只能使用小寫字母、數字字元、底線和連字號。所有字元都必須使用 UTF-8 編碼,且容許使用國際字元。
  • 標籤中,鍵的部分不得重複。但可以多個資源使用相同的鍵。
  • 鍵的開頭必須是小寫字母或國際字元。

更新資料集標籤

資料集標籤的更新方式如下:

  • 使用 GCP 主控台或傳統 BigQuery 網頁版 UI
  • 使用指令列工具的 bq update 指令
  • 呼叫 datasets.patch API 方法

必要權限

如要更新資料集標籤,您必須具備資料集層級的 OWNER 存取權,或必須取得擁有 bigquery.datasets.update 權限的專案層級身分與存取權管理角色。以下是擁有 bigquery.datasets.update 權限的預先定義專案層級身分與存取權管理角色:

此外,因為 bigquery.user 角色擁有 bigquery.datasets.create 權限,所以經指派為 bigquery.user 角色的使用者可以更新自己建立的任何資料集。當接受 bigquery.user 角色指派的使用者建立資料集時,該使用者即被授予該資料集的 OWNER 存取權。 OWNER 存取權可讓使用者完全控管該資料集。

如要深入瞭解 BigQuery 中的身分與存取權管理角色和權限,請參閱存取權控制一文。如要深入瞭解資料集層級角色,請參閱資料集的原始角色相關說明。

更新資料集標籤

如何更新現有資料集中的標籤:

主控台

  1. 在網頁版 UI 中,選取資料集。

  2. 在「Dataset Details」(資料集詳細資料) 頁面中,按一下「Labels」(標籤) 右側的鉛筆圖示。

    標籤鉛筆圖示

  3. 在「Edit Labels」(編輯標籤) 對話方塊中:

    • 如要套用其他標籤,請按一下 [Add Label] (新增標籤)。每個資料集中的每個鍵都只能使用一次,但您可以在同一個專案的不同資料集中使用同一個鍵。
    • 修改現有的鍵/值以更新標籤。
    • 按一下 [Update] (更新),儲存您所做的變更。

傳統版 UI

  1. 在網頁版 UI 中,選取資料集。

  2. 在「資料集詳細資料」頁面的「標籤」右側,按一下 [編輯]

    編輯標籤

  3. 在「編輯標籤」對話方塊中:

    • 如要套用其他標籤,請按一下 [新增標籤]。每個資料集中的每個鍵都只能使用一次,但您可以在同一個專案的不同資料集中使用同一個鍵。
    • 修改現有的鍵/值以更新標籤。
    • 按一下 [OK] (確定)

      新標籤

指令列

如要加入其他標籤或更新資料集標籤,請發出 bq update 指令並搭配使用 set_label 標記。重複使用這個標記即可加入或更新多個標籤。

如果資料集位於預設專案以外的專案中,請使用下列格式將專案 ID 新增至資料集:[PROJECT_ID]:[DATASET]

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

其中:

  • [KEY:VALUE] 會對應至您所要加入或更新標籤的鍵/值組合。如果您指定與現有標籤相同的鍵,就會更新現有標籤的值。鍵不得重複。
  • [PROJECT_ID] 是您的專案 ID。
  • [DATASET] 是您要更新的資料集。

範例:

如要更新 mydataset 上的 department 標籤,請輸入 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

這個範例使用 Java 專用 Google HTTP 用戶端程式庫,將要求傳送至 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

更新資料表和視圖標籤

建立資料表或視圖後,可以使用以下方式更新標籤:

  • 使用 GCP 主控台或傳統 BigQuery 網頁版 UI
  • 使用指令列工具的 bq update 指令
  • 呼叫 tables.patch API 方法
    • 由於系統會將資料檢視當做資料表資源處理,因此您可以使用 tables.patch 方法來修改資料檢視和資料表。

必要權限

如要更新資料表或資料檢視標籤,您必須具備資料集層級的 OWNER 存取權,或必須取得擁有 bigquery.tables.update 權限的專案層級身分與存取權管理角色。以下是擁有 bigquery.tables.update 權限的預先定義專案層級身分與存取權管理角色:

此外,因為 bigquery.user 角色擁有 bigquery.datasets.create 權限,所以經指派為 bigquery.user 角色的使用者可以更新自己建立的任何資料集中的資料表和視圖。當獲得 bigquery.user 角色的使用者建立資料集時,該使用者即被授予該資料集的 OWNER 存取權。資料集的 OWNER 存取權可讓使用者完全控管該資料集以及其中的資料表和視圖。

如要深入瞭解 BigQuery 中的 IAM 角色和權限,請參閱存取權控管一文。如要深入瞭解資料集層級角色,請參閱資料集的原始角色相關說明。

更新資料表或視圖標籤

如何更新資料表或資料檢視標籤:

主控台

  1. 在網頁版 UI 中,選取資料表或資料檢視。

  2. 按一下 [Details] (詳細資料) 分頁標籤,然後按一下「Labels」(標籤) 右側的鉛筆圖示。

    標籤鉛筆圖示

  3. 在「Edit Labels」(編輯標籤) 對話方塊中:

    • 如要套用其他標籤,請按一下 [Add Label] (新增標籤)。每個資料集中的每個鍵都只能使用一次,但您可以在同一個專案的不同資料集中使用同一個鍵。
    • 修改現有的鍵/值以更新標籤。
    • 按一下 [Update] (更新),儲存您所做的變更。

傳統版 UI

  1. 在網頁版 UI 中,選取資料表或資料檢視。

  2. 在「Details」(詳細資料) 頁面中,按一下「Labels」(標籤) 右側的 [Edit] (編輯)。這個範例會顯示資料表的詳細資料。

    編輯標籤

  3. 在「編輯標籤」對話方塊中:

    • 如要加入其他標籤,請按一下 [新增標籤]。每個資料表或視圖中的每個鍵都只能使用一次,但您可以在不同資料集的資料表或視圖中使用同一個鍵。
    • 修改現有的鍵/值以更新標籤。
    • 按一下 [OK] (確定)

      新標籤

指令列

如要加入其他標籤或是更新資料表或視圖標籤,請發出 bq update 指令並搭配使用 set_label 標記。重複使用這個標記即可加入或更新多個標籤。

如果資料表或視圖位於預設專案以外的專案中,請使用下列格式將專案 ID 新增至資料集:[PROJECT_ID]:[DATASET]

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

其中:

  • [KEY:VALUE] 會對應至您所要加入或更新標籤的鍵/值組合。如果您指定與現有標籤相同的鍵,就會更新現有標籤的值。鍵不得重複。
  • [PROJECT_ID] 是您的專案 ID。
  • [DATASET] 是包含您要更新之資料表或視圖的資料集。
  • [TABLE_OR_VIEW] 是您要更新之資料表或視圖的名稱。

範例:

如要更新 mytable 中的 department 標籤,請輸入 bq update 指令並指定 department 做為標籤鍵。例如,如要將 mytable 中的 department: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

這個範例使用 Java 專用 Google HTTP 用戶端程式庫,將要求傳送至 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

更新工作標籤

目前尚不支援更新工作標籤。如要更新工作標籤,請指定新的標籤並重新提交工作。

刪除標籤

您可以使用 GCP 主控台、BigQuery 網頁版 UI、指令列工具的 bq update 指令,或透過呼叫 datasets.patchtables.patch API 方法,移除資料集、資料表或資料檢視中的標籤。

刪除資料集標籤

移除資料集標籤的方法如下:

  • 使用 GCP 主控台或傳統 BigQuery 網頁版 UI
  • 使用指令列工具的 bq update 指令
  • 呼叫 datasets.patch API 方法。

必要權限

如要移除資料集標籤,您必須具備資料集層級的 OWNER 存取權,或必須取得擁有 bigquery.datasets.update 權限的專案層級身分與存取權管理角色。以下是擁有 bigquery.datasets.update 權限的預先定義專案層級身分與存取權管理角色:

此外,因為 bigquery.user 角色擁有 bigquery.datasets.create 權限,所以經指派為 bigquery.user 角色的使用者可以更新自己建立的任何資料集。當接受 bigquery.user 角色指派的使用者建立資料集時,該使用者即被授予該資料集的 OWNER 存取權。 OWNER 存取權可讓使用者完全控管該資料集。

如要深入瞭解 BigQuery 中的身分與存取權管理角色和權限,請參閱存取權控制一文。如要深入瞭解資料集層級角色,請參閱資料集的原始角色相關說明。

刪除資料集標籤

如何移除資料集中的標籤:

主控台

  1. 在網頁版 UI 中,選取資料集。

  2. 在「Dataset Details」(資料集詳細資料) 頁面中,按一下「Labels」(標籤) 右側的鉛筆圖示。

    標籤鉛筆圖示

  3. 在「Edit Labels」(編輯標籤) 對話方塊中:

    • 針對您要移除的每個標籤按一下刪除圖示 (X)。
    • 按一下 [Update] (更新),儲存您所做的變更。

傳統版 UI

  1. 在網頁版 UI 中,選取資料集。

  2. 在「資料集詳細資料」頁面的「標籤」右側,按一下 [編輯]

  3. 在「編輯標籤」對話方塊中:

    • 針對您要移除的每個標籤按一下刪除圖示 (X)。
    • 按一下 [確定]

      刪除標籤

指令列

如要移除資料集標籤,請發出 bq update 指令並搭配使用 clear_label 標記。重複使用該標記即可移除多個標籤。

如果資料集位於預設專案以外的專案中,請使用下列格式將專案 ID 新增至資料集:[PROJECT_ID]:[DATASET]

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

其中:

  • [KEY] 是您要移除之標籤的鍵。
  • [PROJECT_ID] 是您的專案 ID。
  • [DATASET] 是您要更新的資料集。

範例:

如要從 mydataset 移除 department:shipping 標籤,請輸入 bq update 指令並搭配使用 --clear_label 標記。mydataset 位於預設專案中。

    bq update --clear_label department mydataset

如要從 myotherproject 中的 mydataset 移除 department:shipping 標籤,請輸入 bq update 指令並搭配使用 --clear_label 標記。

    bq update --clear_label department myotherproject:mydataset

如要從資料集移除多個標籤,請重複 clear_label 標記並指定每個標籤的鍵。例如,如要從預設專案中的 mydataset 移除 department:shipping 標籤和 cost_center:logistics 標籤,請輸入:

    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 == {}

刪除資料表或視圖標籤

移除資料表或視圖標籤的方式如下:

  • 使用 GCP 主控台或傳統 BigQuery 網頁版 UI
  • 使用指令列工具的 bq update 指令
  • 呼叫 tables.patch API 方法。
    • 由於系統會將資料檢視當做資料表資源處理,因此您可以使用 tables.patch 方法來修改資料檢視和資料表。

必要權限

如要移除資料表或資料檢視標籤,您必須具備資料集層級的 OWNER 存取權,或必須取得擁有 bigquery.tables.update 權限的專案層級身分與存取權管理角色。以下是擁有 bigquery.tables.update 權限的預先定義專案層級身分與存取權管理角色:

此外,因為 bigquery.user 角色擁有 bigquery.datasets.create 權限,所以經指派為 bigquery.user 角色的使用者可以更新自己建立的任何資料集中的資料表或視圖。當取得 bigquery.user 角色的使用者建立資料集時,該使用者即被授予該資料集的 OWNER 存取權。 資料集的 OWNER 存取權可讓使用者完全控管該資料集以及其中的所有資料表和視圖。

如要深入瞭解 BigQuery 中的 IAM 角色和權限,請參閱存取權控管一文。如要深入瞭解資料集層級角色,請參閱資料集的原始角色相關說明。

刪除資料表或視圖標籤

如何移除資料表或資料檢視中的標籤:

主控台

  1. 在網頁版 UI 中,選取資料集。

  2. 按一下 [Details] (詳細資料) 分頁標籤,然後按一下「Labels」(標籤) 右側的鉛筆圖示。

    標籤鉛筆圖示

  3. 在「Edit Labels」(編輯標籤) 對話方塊中:

    • 針對您要移除的每個標籤按一下刪除圖示 (X)。

      標籤刪除

    • 按一下 [Update] (更新),儲存您所做的變更。

傳統版 UI

  1. 在網頁版 UI 中,選取資料表或資料檢視。

  2. 在「詳細資料」頁面的「標籤」右側,按一下 [編輯]

  3. 在「編輯標籤」對話方塊中:

    • 針對您要移除的每個標籤按一下刪除圖示 (X)。
    • 按一下 [確定]

      刪除標籤

指令列

如要從資料表或視圖中移除標籤,請發出 bq update 指令並搭配使用 clear_label 標記。重複使用該標記即可移除多個標籤。

如果資料表或視圖位於預設專案以外的專案中,請使用下列格式將專案 ID 新增至資料集:[PROJECT_ID]:[DATASET]

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

其中:

  • [KEY] 是您要移除之標籤的鍵。
  • [PROJECT_ID] 是您的專案 ID。
  • [DATASET] 是您要更新的資料集。
  • [TABLE_OR_VIEW] 是您要更新之資料表或視圖的名稱。

範例:

如要從 mydataset.mytable 移除 department:shipping 標籤,請輸入 bq update 指令並搭配使用 --clear_label 標記。mydataset 位於預設專案中。

    bq update --clear_label department mydataset.mytable

如要從 myotherproject 中的 mydataset.myview 移除 department:shipping 標籤,請輸入 bq update 指令並搭配使用 --clear_label 標記。

    bq update --clear_label department myotherproject:mydataset.myview

如要從資料表或視圖移除多個標籤,請重複 clear_label 標記並指定每個標籤的鍵。例如,如要從預設專案中的 mydataset.mytable 移除 department:shipping 標籤和 cost_center:logistics 標籤,請輸入:

    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 標記以供識別。

如何將標籤轉換為標記:

主控台

  1. 在網頁版 UI 中,選取適當的資源 (資料集、資料表或資料檢視)。

  2. 如果是資料集,「Dataset Details」(資料集詳細資料) 頁面會自動開啟。如果是資料表和資料檢視,請按一下 [Details] (詳細資料) 以開啟詳細資料頁面。

    資料表詳細資料

  3. 在「Details」(詳細資料) 頁面中,按一下「Labels」(標籤) 右側的鉛筆圖示。

    標籤鉛筆圖示

  4. 在「Edit Labels」(編輯標籤) 對話方塊中:

    • 刪除現有標籤的值。
    • 按一下 [Update] (更新)

傳統版 UI

  1. 在網頁版 UI 中,選取適當的資源 (資料集、資料表或資料檢視)。

  2. 如果是資料集,「Dataset Details」(資料集詳細資料) 頁面會自動開啟。如果是資料表和資料檢視,請按一下 [Details] (詳細資料) 以開啟詳細資料頁面。

  3. 在詳細資料頁面的「Labels」(標籤) 右側,按一下 [Edit] (編輯)

  4. 在「編輯標籤」對話方塊中:

    • 刪除現有標籤的值。
    • 按一下 [確定]

      新增標記

指令列

如要將標籤轉換為標記,請將 bq update 指令搭配 set_label 標記使用。請指定鍵並在後面加入冒號,但不要指定值。這樣就可以將現有的標籤更新為標記。

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

其中:

  • [KEY] 是您要變更為標記的標籤鍵。
  • [RESOURCE_ID] 是有效的資料集、資料表或視圖名稱。如果資源位於預設專案以外的專案中,請使用下列格式加入專案 ID:[PROJECT_ID]:[DATASET]

範例:

輸入下列指令,將 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 方法。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁