删除标签

本页介绍了如何从 BigQuery 资源中移除标签。

概览

您可以通过以下方式从数据集、表或视图中移除标签:

  • 使用 GCP Console 或经典版网页界面
  • 使用命令行工具的 bq update 命令
  • 调用 datasets.patchtables.patch API 方法
  • 使用客户端库

所需权限

如需移除数据集标签,您至少必须具有 bigquery.datasets.getbigquery.datasets.update 权限。以下预定义的 Cloud IAM 角色包含 bigquery.datasets.updatebigquery.datasets.get 权限:

  • bigquery.dataOwner
  • bigquery.admin

此外,如果用户具有 bigquery.datasets.create 权限,则当该用户创建数据集时,系统会为其授予该数据集的 bigquery.dataOwner 访问权限。 借助 bigquery.dataOwner 访问权限,用户可以从其数据集以及这些数据集中的表和视图中移除标签。

如需详细了解 BigQuery 中的 Cloud IAM 角色和权限,请参阅预定义的角色和权限

删除数据集标签

如需移除数据集的标签,请执行以下操作:

控制台

  1. 在 GCP Console 中,选择相应的数据集。

  2. 在数据集详情页面上,点击标签右侧的铅笔图标。

    标签铅笔

  3. 修改标签对话框中:

    • 点击要移除的每个标签对应的删除图标 (X)。
    • 点击更新以保存更改。

经典版界面

  1. 在网页界面,选择相应的数据集。

  2. Dataset Details 页面,点击 Labels 右侧的 Edit

  3. Edit Labels 对话框中:

    • 点击要移除的每个标签对应的删除图标 (X)。
    • 点击 OK

      删除标签

CLI

如需移除数据集标签,请发出带 clear_label 标志的 bq update 命令。重复使用该标记可移除多个标签。

如果数据集位于非默认项目中,请按以下格式将相应项目 ID 添加到数据集内:project_id:dataset

bq update \
--clear_label key \
project_id:dataset

其中:

  • key 是要移除的标签的键。
  • project_id 是您的项目 ID。
  • dataset 是要更新的数据集

示例:

如需移除 mydatasetdepartment:shipping 标签,请输入带 --clear_label 标志的 bq update 命令。mydataset 在默认项目中。

    bq update --clear_label department mydataset

如需移除 myotherprojectmydatasetdepartment:shipping 标签,请输入带 --clear_label 标志的 bq update 命令。

    bq update --clear_label department myotherproject:mydataset

如需移除数据集的多个标签,请重复使用 clear_label 标志并指定每个标签的键。例如,如需移除默认项目中 mydatasetdepartment:shipping 标签和 cost_center:logistics 标签,请输入:

    bq update \
    --clear_label department \
    --clear_label cost_center \
    mydataset

对于每个示例,输出内容如下所示:

Dataset 'myproject:mydataset' successfully updated.

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 Console 或经典版 BigQuery 网页界面
  • 使用命令行工具的 bq update 命令
  • 调用 tables.patch API 方法
    • 由于视图被视为表资源,因此您可以使用 tables.patch 修改视图和表。
  • 使用客户端库

所需权限

如需移除表标签或视图标签,您至少必须具有 bigquery.tables.updatebigquery.tables.get 权限。以下预定义的 Cloud IAM 角色具有 bigquery.tables.updatebigquery.tables.get 权限:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

此外,如果用户具有 bigquery.datasets.create 权限,则当该用户创建数据集时,系统会为其授予该数据集的 bigquery.dataOwner 访问权限。 借助 bigquery.dataOwner 访问权限,用户可以从数据集的表和视图中移除标签。

如需详细了解 BigQuery 中的 Cloud IAM 角色和权限,请参阅预定义的角色和权限

删除表标签或视图标签

如需移除表或视图的标签,请执行以下操作:

控制台

  1. 在 GCP Console 中,选择相应的数据集。

  2. 点击详细信息标签页,然后点击标签右侧的铅笔图标。

    标签铅笔

  3. 修改标签对话框中:

    • 点击要移除的每个标签对应的删除图标 (X)。

      标签删除

    • 点击更新以保存更改。

经典版界面

  1. 在网页界面,选择表或视图。

  2. Details 页面,点击 Labels 右侧的 Edit

  3. Edit Labels 对话框中:

    • 点击要移除的每个标签对应的删除图标 (X)。
    • 点击 OK

      删除标签

CLI

如需移除表或视图的标签,请发出带 clear_label 标志的 bq update 命令。重复使用该标记可移除多个标签。

如果表或视图位于非默认项目中,请按以下格式将相应项目 ID 添加到数据集内:project_id:dataset

bq update \
--clear_label key \
project_id:dataset.table_or_view

其中:

  • key 是要移除的标签的键。
  • project_id 是您的项目 ID。
  • dataset 是要更新的数据集
  • table_or_view 是要更新的表或视图的名称

示例:

如需移除 mydataset.mytabledepartment:shipping 标签,请输入带 --clear_label 标志的 bq update 命令。mydataset 在默认项目中。

    bq update --clear_label department mydataset.mytable

如需移除 myotherprojectmydataset.myviewdepartment:shipping 标签,请输入带 --clear_label 标志的 bq update 命令。

    bq update --clear_label department myotherproject:mydataset.myview

如需移除表或视图的多个标签,请重复使用 clear_label 标志并指定每个标签的键。例如,如需移除默认项目中 mydataset.mytabledepartment:shipping 标签和 cost_center:logistics 标签,请输入:

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

对于每个示例,输出内容如下所示:

Table 'myproject:mydataset.mytable' successfully updated.

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

删除作业标签

目前不支持删除现有作业的标签。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面