我需要帮助使用在Google Data Catalog中创建的模板模板,通过Python编程来标记使用创建的同一模板模板的几个BigQuery表。我不知道如何使用创建的模板标记来附加到表。我在这个页面上找到了一个创建模板并将其应用于表的示例,但我想对几个表使用相同的模板,但我无法使用。我想要一些关于如何做到这一点的帮助或指导。谢谢作为参考,我使用了这个快速启动https://cloud.google.com/data-catalog/docs/tag-bigquery-dataset#python
您应该能够用一个标记模板标记多个BigQuery表,只需注意,使用给定的标记模板,表中的每个表和每列只能标记一次(即,您不能在使用相同标记模板的同一表上创建两个或多个标记(。
基于上述quickstart附带的Python代码片段,在创建标记模板后,您应该执行以下操作:
-
检查标记模板的哪些字段是必需的。您必须在标记请求中设置它们。默认情况下,不需要任何字段。
-
对于要标记的每个表:
-
准备表的BigQuery资源名称。在快速启动中,它通过以下片段实现:
resource_name = ( f"//bigquery.googleapis.com/projects/{project_id}" f"/datasets/{dataset_id}/tables/{table_id}" )
-
将BigQuery资源名称转换为数据目录条目名称。BigQuery表会自动导入到数据目录中。不幸的是,表示BigQuery表的数据目录条目的名称不容易从BigQuery资源名称中扣除。这就是为什么您必须调用LookupEntry方法:
table_entry = datacatalog_client.lookup_entry(request={"linked_resource": resource_name})
-
现在创建一个标记。您可以指定:
-
要使用的标签模板和UI中可见的标签名称:
tag = datacatalog_v1.types.Tag() tag.template = tag_template.name tag.name = "my_super_cool_tag"
-
标记中的字段。您必须至少指定所有必填字段。每个字段的名称必须与标记模板中的某个现有字段相匹配。字段的值必须具有与标记模板中声明的字段类型匹配的类型。在这个片段中,我们有字段";源";字符串类型:
tag.fields["source"] = datacatalog_v1.types.TagField() tag.fields["source"].string_value = "Copied from tlc_yellow_trips_2018"
-
调用CreateTag方法来标记表。返回的标签将填充一些额外的仅输出字段,例如唯一的标签名称,因此您不能在后续请求中重复使用它:
tag = datacatalog_client.create_tag(parent=table_entry.name, tag=tag) print(f"Created tag: {tag.name}")
-
-