Skip to content

Commit 4aa1ac0

Browse files
authored
BigQuery: Adds missing label and cache samples (googleapis#5440)
1 parent dcce8b5 commit 4aa1ac0

1 file changed

Lines changed: 164 additions & 10 deletions

File tree

docs/bigquery/snippets.py

Lines changed: 164 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,32 @@ def test_list_datasets(client):
147147
# [END bigquery_list_datasets]
148148

149149

150+
def test_list_datasets_by_label(client, to_delete):
151+
dataset_id = 'list_datasets_by_label_{}'.format(_millis())
152+
dataset = bigquery.Dataset(client.dataset(dataset_id))
153+
dataset.labels = {'color': 'green'}
154+
dataset = client.create_dataset(dataset) # API request
155+
to_delete.append(dataset)
156+
157+
# [START bigquery_list_datasets_by_label]
158+
# from google.cloud import bigquery
159+
# client = bigquery.Client()
160+
161+
# The following label filter example will find datasets with an
162+
# arbitrary 'color' label set to 'green'
163+
label_filter = 'labels.color:green'
164+
datasets = list(client.list_datasets(filter=label_filter))
165+
166+
if datasets:
167+
print('Datasets filtered by {}:'.format(label_filter))
168+
for dataset in datasets: # API request(s)
169+
print('\t{}'.format(dataset.dataset_id))
170+
else:
171+
print('No datasets found with this filter.')
172+
# [END bigquery_list_datasets_by_label]
173+
assert len(datasets) == 1
174+
175+
150176
def test_create_dataset(client, to_delete):
151177
"""Create a dataset."""
152178
dataset_id = 'create_dataset_{}'.format(_millis())
@@ -194,11 +220,16 @@ def test_get_dataset_information(client, to_delete):
194220
dataset = client.get_dataset(dataset_ref) # API request
195221

196222
# View dataset properties
197-
print('Dataset ID: '.format(dataset_id))
198-
print('Description: '.format(dataset.description))
223+
print('Dataset ID: {}'.format(dataset_id))
224+
print('Description: {}'.format(dataset.description))
199225
print('Labels:')
200-
for label, value in dataset.labels.items():
201-
print('\t{}: {}'.format(label, value))
226+
labels = dataset.labels
227+
if labels:
228+
for label, value in labels.items():
229+
print('\t{}: {}'.format(label, value))
230+
else:
231+
print("\tDataset has no labels defined.")
232+
202233
# View tables in dataset
203234
print('Tables:')
204235
tables = list(client.list_tables(dataset_ref)) # API request(s)
@@ -296,9 +327,8 @@ def test_update_dataset_default_table_expiration(client, to_delete):
296327
# [END bigquery_update_dataset_expiration]
297328

298329

299-
def test_update_dataset_labels(client, to_delete):
300-
"""Update a dataset's metadata."""
301-
dataset_id = 'update_dataset_multiple_properties_{}'.format(_millis())
330+
def test_manage_dataset_labels(client, to_delete):
331+
dataset_id = 'label_dataset_{}'.format(_millis())
302332
dataset = bigquery.Dataset(client.dataset(dataset_id))
303333
dataset = client.create_dataset(dataset)
304334
to_delete.append(dataset)
@@ -318,6 +348,41 @@ def test_update_dataset_labels(client, to_delete):
318348
assert dataset.labels == labels
319349
# [END bigquery_label_dataset]
320350

351+
# [START bigquery_get_dataset_labels]
352+
# from google.cloud import bigquery
353+
# client = bigquery.Client()
354+
# dataset_id = 'my_dataset'
355+
356+
dataset_ref = client.dataset(dataset_id)
357+
dataset = client.get_dataset(dataset_ref) # API request
358+
359+
# View dataset labels
360+
print('Dataset ID: {}'.format(dataset_id))
361+
print('Labels:')
362+
if dataset.labels:
363+
for label, value in dataset.labels.items():
364+
print('\t{}: {}'.format(label, value))
365+
else:
366+
print("\tDataset has no labels defined.")
367+
# [END bigquery_get_dataset_labels]
368+
assert dataset.labels == labels
369+
370+
# [START bigquery_delete_label_dataset]
371+
# from google.cloud import bigquery
372+
# client = bigquery.Client()
373+
# dataset_ref = client.dataset('my_dataset')
374+
# dataset = client.get_dataset(dataset_ref) # API request
375+
376+
# This example dataset starts with one label
377+
assert dataset.labels == {'color': 'green'}
378+
# To delete a label from a dataset, set its value to None
379+
dataset.labels['color'] = None
380+
381+
dataset = client.update_dataset(dataset, ['labels']) # API request
382+
383+
assert dataset.labels == {}
384+
# [END bigquery_delete_label_dataset]
385+
321386

322387
def test_update_dataset_access(client, to_delete):
323388
"""Update a dataset's access controls."""
@@ -480,16 +545,17 @@ def test_create_table_then_add_schema(client, to_delete):
480545

481546

482547
def test_create_table_cmek(client, to_delete):
483-
DATASET_ID = 'create_table_cmek_{}'.format(_millis())
484-
dataset = bigquery.Dataset(client.dataset(DATASET_ID))
548+
dataset_id = 'create_table_cmek_{}'.format(_millis())
549+
dataset = bigquery.Dataset(client.dataset(dataset_id))
485550
client.create_dataset(dataset)
486551
to_delete.append(dataset)
487552

488553
# [START bigquery_create_table_cmek]
489554
# from google.cloud import bigquery
490555
# client = bigquery.Client()
556+
# dataset_id = 'my_dataset'
491557

492-
table_ref = dataset.table('my_table')
558+
table_ref = client.dataset(dataset_id).table('my_table')
493559
table = bigquery.Table(table_ref)
494560

495561
# Set the encryption key to use for the table.
@@ -696,6 +762,70 @@ def test_table_exists(client, to_delete):
696762
assert not table_exists(client, dataset.table('i_dont_exist'))
697763

698764

765+
def test_manage_table_labels(client, to_delete):
766+
dataset_id = 'label_table_dataset_{}'.format(_millis())
767+
table_id = 'label_table_{}'.format(_millis())
768+
dataset = bigquery.Dataset(client.dataset(dataset_id))
769+
client.create_dataset(dataset)
770+
to_delete.append(dataset)
771+
772+
table = bigquery.Table(dataset.table(table_id), schema=SCHEMA)
773+
table = client.create_table(table)
774+
to_delete.insert(0, table)
775+
776+
# [START bigquery_label_table]
777+
# from google.cloud import bigquery
778+
# client = bigquery.Client()
779+
# table_ref = client.dataset('my_dataset').table('my_table')
780+
# table = client.get_table(table_ref) # API request
781+
782+
assert table.labels == {}
783+
labels = {'color': 'green'}
784+
table.labels = labels
785+
786+
table = client.update_table(table, ['labels']) # API request
787+
788+
assert table.labels == labels
789+
# [END bigquery_label_table]
790+
791+
# [START bigquery_get_table_labels]
792+
# from google.cloud import bigquery
793+
# client = bigquery.Client()
794+
# dataset_id = 'my_dataset'
795+
# table_id = 'my_table'
796+
797+
dataset_ref = client.dataset(dataset_id)
798+
table_ref = dataset_ref.table(table_id)
799+
table = client.get_table(table_ref) # API Request
800+
801+
# View table labels
802+
print('Table ID: {}'.format(table_id))
803+
print('Labels:')
804+
if table.labels:
805+
for label, value in table.labels.items():
806+
print('\t{}: {}'.format(label, value))
807+
else:
808+
print("\tTable has no labels defined.")
809+
# [END bigquery_get_table_labels]
810+
assert table.labels == labels
811+
812+
# [START bigquery_delete_label_table]
813+
# from google.cloud import bigquery
814+
# client = bigquery.Client()
815+
# table_ref = client.dataset('my_dataset').table('my_table')
816+
# table = client.get_table(table_ref) # API request
817+
818+
# This example table starts with one label
819+
assert table.labels == {'color': 'green'}
820+
# To delete a label from a table, set its value to None
821+
table.labels['color'] = None
822+
823+
table = client.update_table(table, ['labels']) # API request
824+
825+
assert table.labels == {}
826+
# [END bigquery_delete_label_table]
827+
828+
699829
def test_update_table_description(client, to_delete):
700830
"""Update a table's description."""
701831
dataset_id = 'update_table_description_dataset_{}'.format(_millis())
@@ -2291,6 +2421,30 @@ def test_client_query_dry_run(client):
22912421
assert query_job.total_bytes_processed > 0
22922422

22932423

2424+
def test_query_no_cache(client):
2425+
# [START bigquery_query_no_cache]
2426+
# from google.cloud import bigquery
2427+
# client = bigquery.Client()
2428+
2429+
job_config = bigquery.QueryJobConfig()
2430+
job_config.use_query_cache = False
2431+
sql = """
2432+
SELECT corpus
2433+
FROM `bigquery-public-data.samples.shakespeare`
2434+
GROUP BY corpus;
2435+
"""
2436+
query_job = client.query(
2437+
sql,
2438+
# Location must match that of the dataset(s) referenced in the query.
2439+
location='US',
2440+
job_config=job_config) # API request
2441+
2442+
# Print the results.
2443+
for row in query_job: # API request - fetches results
2444+
print(row)
2445+
# [END bigquery_query_no_cache]
2446+
2447+
22942448
def test_client_list_jobs(client):
22952449
"""List jobs for a project."""
22962450

0 commit comments

Comments
 (0)