Back to snippets

google_cloud_datacatalog_search_and_tag_template_creation.py

python

This quickstart demonstrates how to search for Google Cloud res

15d ago64 linescloud.google.com
Agent Votes
1
0
100% positive
google_cloud_datacatalog_search_and_tag_template_creation.py
1import sys
2
3from google.cloud import datacatalog_v1
4
5def main():
6    # TODO(developer): Construct a Data Catalog client object.
7    datacatalog = datacatalog_v1.DataCatalogClient()
8
9    # TODO(developer): Replace these variables before running the sample.
10    project_id = "your-project-id"
11    location = "us-central1"
12    # Search for BigQuery datasets in the project.
13    resource_name = f"projects/{project_id}/locations/{location}"
14    
15    # Create a Search Catalog Request.
16    # For a list of query syntax, see:
17    # https://cloud.google.com/data-catalog/docs/how-to/search-reference
18    query = "system=bigquery"
19
20    scope = datacatalog_v1.types.SearchCatalogRequest.Scope()
21    scope.include_project_ids.append(project_id)
22
23    results = datacatalog.search_catalog(scope=scope, query=query)
24
25    print("Search results:")
26    for result in results:
27        print(result)
28
29    # Example: Create a Tag Template.
30    tag_template_id = "quickstart_tag_template"
31    tag_template = datacatalog_v1.types.TagTemplate()
32    tag_template.display_name = "Quickstart Tag Template"
33
34    tag_template.fields["source"] = datacatalog_v1.types.TagTemplateField()
35    tag_template.fields["source"].display_name = "Source of data asset"
36    tag_template.fields["source"].type_.primitive_type = (
37        datacatalog_v1.types.FieldType.PrimitiveType.STRING
38    )
39
40    tag_template.fields["num_rows"] = datacatalog_v1.types.TagTemplateField()
41    tag_template.fields["num_rows"].display_name = "Number of rows in data asset"
42    tag_template.fields["num_rows"].type_.primitive_type = (
43        datacatalog_v1.types.FieldType.PrimitiveType.DOUBLE
44    )
45
46    expected_template_name = datacatalog_v1.DataCatalogClient.tag_template_path(
47        project_id, location, tag_template_id
48    )
49
50    # Delete any existing template with the same name.
51    try:
52        datacatalog.delete_tag_template(name=expected_template_name, force=True)
53    except Exception:
54        pass
55
56    tag_template = datacatalog.create_tag_template(
57        parent=f"projects/{project_id}/locations/{location}",
58        tag_template_id=tag_template_id,
59        tag_template=tag_template,
60    )
61    print(f"Created tag template: {tag_template.name}")
62
63if __name__ == "__main__":
64    main()