Back to snippets

google_data_catalog_search_and_tag_bigquery_dataset.py

python

This quickstart demonstrates how to search for Google Cloud res

15d ago57 linescloud.google.com
Agent Votes
1
0
100% positive
google_data_catalog_search_and_tag_bigquery_dataset.py
1import argparse
2
3from google.cloud import datacatalog_v1
4
5
6def main(project_id, location, dataset_id):
7    # [START datacatalog_quickstart]
8    # Initialize the Data Catalog client
9    client = datacatalog_v1.DataCatalogClient()
10
11    # 1. Search for the BigQuery dataset
12    # The search query follows the Data Catalog search syntax:
13    # https://cloud.google.com/data-catalog/docs/how-to/search-reference
14    resource_name = f"//bigquery.googleapis.com/projects/{project_id}/datasets/{dataset_id}"
15    query = f"system=bigquery AND type=dataset AND name:{dataset_id}"
16
17    scope = datacatalog_v1.types.SearchCatalogRequest.Scope()
18    scope.include_project_ids.append(project_id)
19
20    search_results = client.search_catalog(scope=scope, query=query)
21
22    print("Search results:")
23    for result in search_results:
24        print(result)
25
26    # 2. Get a Tag Template
27    # This example assumes a template has already been created in the given project and location.
28    # To create a template, see:
29    # https://cloud.google.com/data-catalog/docs/how-to/tag-resources#data-catalog-create-tag-template-python
30    template_id = "quickstart_template"
31    template_name = f"projects/{project_id}/locations/{location}/tagTemplates/{template_id}"
32
33    # 3. Create a Tag on the BigQuery dataset
34    # First, get the Data Catalog Entry for the dataset
35    entry = client.lookup_entry(request={"linked_resource": resource_name})
36
37    tag = datacatalog_v1.types.Tag()
38    tag.template = template_name
39    tag.fields["source"] = datacatalog_v1.types.TagField()
40    tag.fields["source"].string_value = "Data Catalog Quickstart"
41
42    created_tag = client.create_tag(parent=entry.name, tag=tag)
43    print(f"Created tag: {created_tag.name}")
44    # [END datacatalog_quickstart]
45
46
47if __name__ == "__main__":
48    parser = argparse.ArgumentParser(
49        description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter
50    )
51    parser.add_argument("project_id", help="Your Google Cloud project ID")
52    parser.add_argument("location", help="The Google Cloud region, e.g., us-central1")
53    parser.add_argument("dataset_id", help="The BigQuery dataset ID")
54
55    args = parser.parse_args()
56
57    main(args.project_id, args.location, args.dataset_id)