如何使用Python API为指定BigQuery表列分配Policy Tags?
前置准备
- 确保已安装BigQuery Python客户端:
pip install google-cloud-bigquery
- 准备好已创建的Policy Tag资源ID,格式为:
projects/{项目ID}/locations/{区域}/taxonomies/{分类ID}/policyTags/{标签ID}
代码示例
from google.cloud import bigquery # 初始化BigQuery客户端 client = bigquery.Client() # 目标表的完全限定ID table_id = "Project.Dataset.TMP_TBL" # 替换为你的实际Policy Tag资源ID name_policy_tag = "projects/your-project/locations/us-central1/taxonomies/your-taxonomy-id/policyTags/name-policy-tag-id" age_policy_tag = "projects/your-project/locations/us-central1/taxonomies/your-taxonomy-id/policyTags/age-policy-tag-id" # 获取目标表 table = client.get_table(table_id) # 更新schema,为指定列添加Policy Tag updated_schema = [] for field in table.schema: updated_field = field.to_api_repr() if field.name == "Name": updated_field["policyTags"] = {"names": [name_policy_tag]} elif field.name == "Age": updated_field["policyTags"] = {"names": [age_policy_tag]} # 其他字段保持原有配置 updated_schema.append(bigquery.SchemaField.from_api_repr(updated_field)) # 提交表schema更新 table.schema = updated_schema client.update_table(table, ["schema"]) print(f"表 {table_id} 的Name、Age列已成功分配Policy Tags")
注意事项
- 替换代码中所有占位符(
your-project、your-taxonomy-id等)为实际资源信息 - 运行代码的账号需要拥有
bigquery.tables.update权限,以及对应Policy Tag的分配权限 - 如果Taxonomy位于非
us-central1区域,需同步修改代码中的区域参数
内容的提问来源于stack exchange,提问作者VIJAY BURRA
相关产品推荐
相关产品推荐

