From b2c3d53e5781cb6875640ac33d7371b2b1cb6a87 Mon Sep 17 00:00:00 2001 From: Alix Hamilton Date: Mon, 4 Jun 2018 16:41:52 -0700 Subject: [PATCH 01/10] adds bigquery_query_no_cache --- docs/bigquery/snippets.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py index 0e1c88019c7c..7ef60a58b20b 100644 --- a/docs/bigquery/snippets.py +++ b/docs/bigquery/snippets.py @@ -2291,6 +2291,30 @@ def test_client_query_dry_run(client): assert query_job.total_bytes_processed > 0 +def test_query_no_cache(client): + # [START bigquery_query_no_cache] + # from google.cloud import bigquery + # client = bigquery.Client() + + job_config = bigquery.QueryJobConfig() + job_config.use_query_cache = False + sql = """ + SELECT corpus + FROM `bigquery-public-data.samples.shakespeare` + GROUP BY corpus; + """ + query_job = client.query( + sql, + # Location must match that of the dataset(s) referenced in the query. + location='US', + job_config=job_config) # API request + + # Print the results. + for row in query_job: # API request - fetches results + print(row) + # [END bigquery_query_no_cache] + + def test_client_list_jobs(client): """List jobs for a project.""" From dc4b3b578d296fab41f661bb3d203856a161fe69 Mon Sep 17 00:00:00 2001 From: Alix Hamilton Date: Mon, 4 Jun 2018 16:45:51 -0700 Subject: [PATCH 02/10] adds missing variable to commented setup --- docs/bigquery/snippets.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py index 7ef60a58b20b..efbf4a41a546 100644 --- a/docs/bigquery/snippets.py +++ b/docs/bigquery/snippets.py @@ -480,16 +480,17 @@ def test_create_table_then_add_schema(client, to_delete): def test_create_table_cmek(client, to_delete): - DATASET_ID = 'create_table_cmek_{}'.format(_millis()) - dataset = bigquery.Dataset(client.dataset(DATASET_ID)) + dataset_id = 'create_table_cmek_{}'.format(_millis()) + dataset = bigquery.Dataset(client.dataset(dataset_id)) client.create_dataset(dataset) to_delete.append(dataset) # [START bigquery_create_table_cmek] # from google.cloud import bigquery # client = bigquery.Client() + # dataset_id = 'my_dataset' - table_ref = dataset.table('my_table') + table_ref = client.dataset(dataset_id).table('my_table') table = bigquery.Table(table_ref) # Set the encryption key to use for the table. From aebef8e6016b20ad8918272edc05836e92247956 Mon Sep 17 00:00:00 2001 From: Alix Hamilton Date: Mon, 4 Jun 2018 16:55:13 -0700 Subject: [PATCH 03/10] adds bigquery_label_table --- docs/bigquery/snippets.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py index efbf4a41a546..b70b7b3a77fa 100644 --- a/docs/bigquery/snippets.py +++ b/docs/bigquery/snippets.py @@ -697,6 +697,33 @@ def test_table_exists(client, to_delete): assert not table_exists(client, dataset.table('i_dont_exist')) +def test_label_table(client, to_delete): + dataset_id = 'label_table_dataset_{}'.format(_millis()) + table_id = 'label_table_{}'.format(_millis()) + dataset = bigquery.Dataset(client.dataset(dataset_id)) + client.create_dataset(dataset) + to_delete.append(dataset) + + table = bigquery.Table(dataset.table(table_id), schema=SCHEMA) + table = client.create_table(table) + to_delete.insert(0, table) + + # [START bigquery_label_table] + # 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 + + assert table.labels == {} + labels = {'color': 'green'} + table.labels = labels + + table = client.update_table(table, ['labels']) # API request + + assert table.labels == labels + # [END bigquery_label_table] + + def test_update_table_description(client, to_delete): """Update a table's description.""" dataset_id = 'update_table_description_dataset_{}'.format(_millis()) From 84f47dec8f08a217134bfa25df3a88df6e0460de Mon Sep 17 00:00:00 2001 From: Alix Hamilton Date: Mon, 4 Jun 2018 17:20:44 -0700 Subject: [PATCH 04/10] adds bigquery_delete_label_table --- docs/bigquery/snippets.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py index b70b7b3a77fa..ca14ef309a0e 100644 --- a/docs/bigquery/snippets.py +++ b/docs/bigquery/snippets.py @@ -724,6 +724,35 @@ def test_label_table(client, to_delete): # [END bigquery_label_table] +def test_delete_label_table(client, to_delete): + dataset_id = 'delete_label_table_dataset_{}'.format(_millis()) + table_id = 'delete_label_table_{}'.format(_millis()) + dataset = bigquery.Dataset(client.dataset(dataset_id)) + client.create_dataset(dataset) + to_delete.append(dataset) + + table = bigquery.Table(dataset.table(table_id), schema=SCHEMA) + table.labels = {'color': 'green'} + table = client.create_table(table) + to_delete.insert(0, table) + + # [START bigquery_delete_label_table] + # 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 == {} + # [END bigquery_delete_label_table] + + def test_update_table_description(client, to_delete): """Update a table's description.""" dataset_id = 'update_table_description_dataset_{}'.format(_millis()) From 6d2cda671b6ff621be9cadc2335a575f44436ece Mon Sep 17 00:00:00 2001 From: Alix Hamilton Date: Mon, 4 Jun 2018 17:27:02 -0700 Subject: [PATCH 05/10] adds bigquery_delete_label_dataset --- docs/bigquery/snippets.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py index ca14ef309a0e..b2c988bf061c 100644 --- a/docs/bigquery/snippets.py +++ b/docs/bigquery/snippets.py @@ -319,6 +319,30 @@ def test_update_dataset_labels(client, to_delete): # [END bigquery_label_dataset] +def test_delete_label_dataset(client, to_delete): + dataset_id = 'delete_label_dataset_{}'.format(_millis()) + dataset = bigquery.Dataset(client.dataset(dataset_id)) + dataset.labels = {'color': 'green'} + client.create_dataset(dataset) + to_delete.append(dataset) + + # [START bigquery_delete_label_dataset] + # 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 == {} + # [END bigquery_delete_label_dataset] + + def test_update_dataset_access(client, to_delete): """Update a dataset's access controls.""" dataset_id = 'update_dataset_access_{}'.format(_millis()) From aba8817e7355d4696fe7f6d07b426f9e1b6da8f7 Mon Sep 17 00:00:00 2001 From: Alix Hamilton Date: Tue, 5 Jun 2018 12:14:10 -0700 Subject: [PATCH 06/10] adds bigquery_get_dataset_labels --- docs/bigquery/snippets.py | 43 +++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py index b2c988bf061c..acfc0fb003ea 100644 --- a/docs/bigquery/snippets.py +++ b/docs/bigquery/snippets.py @@ -194,11 +194,16 @@ def test_get_dataset_information(client, to_delete): dataset = client.get_dataset(dataset_ref) # API request # View dataset properties - print('Dataset ID: '.format(dataset_id)) - print('Description: '.format(dataset.description)) + print('Dataset ID: {}'.format(dataset_id)) + print('Description: {}'.format(dataset.description)) print('Labels:') - for label, value in dataset.labels.items(): - print('\t{}: {}'.format(label, value)) + labels = dataset.labels + if labels: + for label, value in labels.items(): + print('\t{}: {}'.format(label, value)) + else: + print("\tDataset has no labels defined.") + # View tables in dataset print('Tables:') tables = list(client.list_tables(dataset_ref)) # API request(s) @@ -214,6 +219,36 @@ def test_get_dataset_information(client, to_delete): assert tables == [] +def test_get_dataset_labels(client, to_delete): + dataset_id = 'get_dataset_labels_{}'.format(_millis()) + dataset_labels = {'color': 'green'} + dataset_ref = client.dataset(dataset_id) + dataset = bigquery.Dataset(dataset_ref) + dataset.labels = dataset_labels + dataset = client.create_dataset(dataset) # API request + to_delete.append(dataset) + + # [START bigquery_get_dataset_labels] + # from google.cloud import bigquery + # client = bigquery.Client() + # dataset_id = 'my_dataset' + + dataset_ref = client.dataset(dataset_id) + dataset = client.get_dataset(dataset_ref) # API request + + # View dataset labels + print('Dataset ID: {}'.format(dataset_id)) + print('Labels:') + labels = dataset.labels + if labels: + for label, value in labels.items(): + print('\t{}: {}'.format(label, value)) + else: + print("\tDataset has no labels defined.") + # [END bigquery_get_dataset_labels] + assert labels == dataset_labels + + # [START bigquery_dataset_exists] def dataset_exists(client, dataset_reference): """Return if a dataset exists. From f1c2272c438b2e804762481e4016f9827ac9c47e Mon Sep 17 00:00:00 2001 From: Alix Hamilton Date: Tue, 5 Jun 2018 12:45:50 -0700 Subject: [PATCH 07/10] adds bigquery_list_datasets_by_label --- docs/bigquery/snippets.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py index acfc0fb003ea..d6a4b4f4b1d7 100644 --- a/docs/bigquery/snippets.py +++ b/docs/bigquery/snippets.py @@ -147,6 +147,32 @@ def test_list_datasets(client): # [END bigquery_list_datasets] +def test_list_datasets_by_label(client, to_delete): + dataset_id = 'list_datasets_by_label_{}'.format(_millis()) + dataset = bigquery.Dataset(client.dataset(dataset_id)) + dataset.labels = {'color': 'green'} + dataset = client.create_dataset(dataset) # API request + to_delete.append(dataset) + + # [START bigquery_list_datasets_by_label] + # from google.cloud import bigquery + # client = bigquery.Client() + + # The following label filter example will find datasets with an + # arbitrary 'color' label set to 'green' + label_filter = 'labels.color:green' + datasets = list(client.list_datasets(filter=label_filter)) + + if datasets: + print('Datasets filtered by {}:'.format(label_filter)) + for dataset in datasets: # API request(s) + print('\t{}'.format(dataset.dataset_id)) + else: + print('No datasets with found with this filter.') + # [END bigquery_list_datasets_by_label] + assert len(datasets) == 1 + + def test_create_dataset(client, to_delete): """Create a dataset.""" dataset_id = 'create_dataset_{}'.format(_millis()) From e70e9b6c2c270a97bf1356693b99cd420b7f6adb Mon Sep 17 00:00:00 2001 From: Alix Hamilton Date: Tue, 5 Jun 2018 13:08:00 -0700 Subject: [PATCH 08/10] adds bigquery_get_table_labels --- docs/bigquery/snippets.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py index d6a4b4f4b1d7..4fc3a98e69b5 100644 --- a/docs/bigquery/snippets.py +++ b/docs/bigquery/snippets.py @@ -742,6 +742,41 @@ def test_get_table_information(client, to_delete): assert table.num_rows == 0 +def test_get_table_labels(client, to_delete): + dataset_id = 'get_table_labels_dataset_{}'.format(_millis()) + table_id = 'get_table_labels_{}'.format(_millis()) + dataset = bigquery.Dataset(client.dataset(dataset_id)) + dataset = client.create_dataset(dataset) # API request + to_delete.append(dataset) + + table = bigquery.Table(dataset.table(table_id)) + table_labels = {'color': 'green'} + table.labels = table_labels + table = client.create_table(table) + + # [START bigquery_get_table_labels] + # from google.cloud import bigquery + # client = bigquery.Client() + # dataset_id = 'my_dataset' + # table_id = 'my_table' + + dataset_ref = client.dataset(dataset_id) + table_ref = dataset_ref.table(table_id) + table = client.get_table(table_ref) # API Request + + # View table labels + print('Table ID: {}'.format(table_id)) + print('Labels:') + labels = table.labels + if labels: + for label, value in labels.items(): + print('\t{}: {}'.format(label, value)) + else: + print("\tTable has no labels defined.") + # [END bigquery_get_table_labels] + assert labels == table_labels + + # [START bigquery_table_exists] def table_exists(client, table_reference): """Return if a table exists. From 0a4c6954c2cdd884239b31102b17785682882601 Mon Sep 17 00:00:00 2001 From: Alix Hamilton Date: Tue, 5 Jun 2018 13:22:11 -0700 Subject: [PATCH 09/10] groups label management samples to reduce dataset and table creation --- docs/bigquery/snippets.py | 123 ++++++++++++-------------------------- 1 file changed, 38 insertions(+), 85 deletions(-) diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py index 4fc3a98e69b5..566a274e12c6 100644 --- a/docs/bigquery/snippets.py +++ b/docs/bigquery/snippets.py @@ -245,36 +245,6 @@ def test_get_dataset_information(client, to_delete): assert tables == [] -def test_get_dataset_labels(client, to_delete): - dataset_id = 'get_dataset_labels_{}'.format(_millis()) - dataset_labels = {'color': 'green'} - dataset_ref = client.dataset(dataset_id) - dataset = bigquery.Dataset(dataset_ref) - dataset.labels = dataset_labels - dataset = client.create_dataset(dataset) # API request - to_delete.append(dataset) - - # [START bigquery_get_dataset_labels] - # from google.cloud import bigquery - # client = bigquery.Client() - # dataset_id = 'my_dataset' - - dataset_ref = client.dataset(dataset_id) - dataset = client.get_dataset(dataset_ref) # API request - - # View dataset labels - print('Dataset ID: {}'.format(dataset_id)) - print('Labels:') - labels = dataset.labels - if labels: - for label, value in labels.items(): - print('\t{}: {}'.format(label, value)) - else: - print("\tDataset has no labels defined.") - # [END bigquery_get_dataset_labels] - assert labels == dataset_labels - - # [START bigquery_dataset_exists] def dataset_exists(client, dataset_reference): """Return if a dataset exists. @@ -357,9 +327,8 @@ def test_update_dataset_default_table_expiration(client, to_delete): # [END bigquery_update_dataset_expiration] -def test_update_dataset_labels(client, to_delete): - """Update a dataset's metadata.""" - dataset_id = 'update_dataset_multiple_properties_{}'.format(_millis()) +def test_manage_dataset_labels(client, to_delete): + dataset_id = 'label_dataset_{}'.format(_millis()) dataset = bigquery.Dataset(client.dataset(dataset_id)) dataset = client.create_dataset(dataset) to_delete.append(dataset) @@ -379,13 +348,24 @@ def test_update_dataset_labels(client, to_delete): assert dataset.labels == labels # [END bigquery_label_dataset] + # [START bigquery_get_dataset_labels] + # from google.cloud import bigquery + # client = bigquery.Client() + # dataset_id = 'my_dataset' -def test_delete_label_dataset(client, to_delete): - dataset_id = 'delete_label_dataset_{}'.format(_millis()) - dataset = bigquery.Dataset(client.dataset(dataset_id)) - dataset.labels = {'color': 'green'} - client.create_dataset(dataset) - to_delete.append(dataset) + dataset_ref = client.dataset(dataset_id) + dataset = client.get_dataset(dataset_ref) # API request + + # View dataset labels + print('Dataset ID: {}'.format(dataset_id)) + print('Labels:') + if dataset.labels: + for label, value in dataset.labels.items(): + print('\t{}: {}'.format(label, value)) + else: + print("\tDataset has no labels defined.") + # [END bigquery_get_dataset_labels] + assert dataset.labels == labels # [START bigquery_delete_label_dataset] # from google.cloud import bigquery @@ -742,41 +722,6 @@ def test_get_table_information(client, to_delete): assert table.num_rows == 0 -def test_get_table_labels(client, to_delete): - dataset_id = 'get_table_labels_dataset_{}'.format(_millis()) - table_id = 'get_table_labels_{}'.format(_millis()) - dataset = bigquery.Dataset(client.dataset(dataset_id)) - dataset = client.create_dataset(dataset) # API request - to_delete.append(dataset) - - table = bigquery.Table(dataset.table(table_id)) - table_labels = {'color': 'green'} - table.labels = table_labels - table = client.create_table(table) - - # [START bigquery_get_table_labels] - # from google.cloud import bigquery - # client = bigquery.Client() - # dataset_id = 'my_dataset' - # table_id = 'my_table' - - dataset_ref = client.dataset(dataset_id) - table_ref = dataset_ref.table(table_id) - table = client.get_table(table_ref) # API Request - - # View table labels - print('Table ID: {}'.format(table_id)) - print('Labels:') - labels = table.labels - if labels: - for label, value in labels.items(): - print('\t{}: {}'.format(label, value)) - else: - print("\tTable has no labels defined.") - # [END bigquery_get_table_labels] - assert labels == table_labels - - # [START bigquery_table_exists] def table_exists(client, table_reference): """Return if a table exists. @@ -817,7 +762,7 @@ def test_table_exists(client, to_delete): assert not table_exists(client, dataset.table('i_dont_exist')) -def test_label_table(client, to_delete): +def test_manage_table_labels(client, to_delete): dataset_id = 'label_table_dataset_{}'.format(_millis()) table_id = 'label_table_{}'.format(_millis()) dataset = bigquery.Dataset(client.dataset(dataset_id)) @@ -843,18 +788,26 @@ def test_label_table(client, to_delete): assert table.labels == labels # [END bigquery_label_table] + # [START bigquery_get_table_labels] + # from google.cloud import bigquery + # client = bigquery.Client() + # dataset_id = 'my_dataset' + # table_id = 'my_table' -def test_delete_label_table(client, to_delete): - dataset_id = 'delete_label_table_dataset_{}'.format(_millis()) - table_id = 'delete_label_table_{}'.format(_millis()) - dataset = bigquery.Dataset(client.dataset(dataset_id)) - client.create_dataset(dataset) - to_delete.append(dataset) + dataset_ref = client.dataset(dataset_id) + table_ref = dataset_ref.table(table_id) + table = client.get_table(table_ref) # API Request - table = bigquery.Table(dataset.table(table_id), schema=SCHEMA) - table.labels = {'color': 'green'} - table = client.create_table(table) - to_delete.insert(0, table) + # View table labels + print('Table ID: {}'.format(table_id)) + print('Labels:') + if table.labels: + for label, value in table.labels.items(): + print('\t{}: {}'.format(label, value)) + else: + print("\tTable has no labels defined.") + # [END bigquery_get_table_labels] + assert table.labels == labels # [START bigquery_delete_label_table] # from google.cloud import bigquery From e9c3076ff2fadb7d525a9259f48abf1e18570f93 Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Tue, 5 Jun 2018 13:41:11 -0700 Subject: [PATCH 10/10] Typo: extra "with" --- docs/bigquery/snippets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/bigquery/snippets.py b/docs/bigquery/snippets.py index 566a274e12c6..e8e66ec9e74e 100644 --- a/docs/bigquery/snippets.py +++ b/docs/bigquery/snippets.py @@ -168,7 +168,7 @@ def test_list_datasets_by_label(client, to_delete): for dataset in datasets: # API request(s) print('\t{}'.format(dataset.dataset_id)) else: - print('No datasets with found with this filter.') + print('No datasets found with this filter.') # [END bigquery_list_datasets_by_label] assert len(datasets) == 1