Content-Length: 4284 | pFad | http://github.com/googleapis/google-cloud-python/pull/9478.diff

thub.com diff --git a/bigquery/docs/usage/tables.rst b/bigquery/docs/usage/tables.rst index 6a6cbd356639..25547f8a2dc2 100644 --- a/bigquery/docs/usage/tables.rst +++ b/bigquery/docs/usage/tables.rst @@ -58,6 +58,15 @@ Create an empty table with the :start-after: [START bigquery_create_table] :end-before: [END bigquery_create_table] +Create an integer range partitioned table with the +:func:`~google.cloud.bigquery.client.Client.create_table` method: + +.. literalinclude:: ../samples/create_table_range_partitioned.py + :language: python + :dedent: 4 + :start-after: [START bigquery_create_table_range_partitioned] + :end-before: [END bigquery_create_table_range_partitioned] + Load table data from a file with the :func:`~google.cloud.bigquery.client.Client.load_table_from_file` method: diff --git a/bigquery/samples/create_table_range_partitioned.py b/bigquery/samples/create_table_range_partitioned.py new file mode 100644 index 000000000000..f9da09cff847 --- /dev/null +++ b/bigquery/samples/create_table_range_partitioned.py @@ -0,0 +1,45 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +def create_table_range_partitioned(client, table_id): + + # [START bigquery_create_table_range_partitioned] + from google.cloud import bigquery + + # TODO(developer): Construct a BigQuery client object. + # client = bigquery.Client() + + # TODO(developer): Set table_id to the ID of the table to create. + # table_id = "your-project.your_dataset.your_table_name" + + schema = [ + bigquery.SchemaField("full_name", "STRING"), + bigquery.SchemaField("city", "STRING"), + bigquery.SchemaField("zipcode", "INTEGER"), + ] + + table = bigquery.Table(table_id, schema=schema) + table.range_partitioning = bigquery.RangePartitioning( + # To use integer range partitioning, select a top-level REQUIRED / + # NULLABLE column with INTEGER / INT64 data type. + field="zipcode", + range_=bigquery.PartitionRange(start=0, end=100000, interval=10), + ) + table = client.create_table(table) # Make an API request. + print( + "Created table {}.{}.{}".format(table.project, table.dataset_id, table.table_id) + ) + # [END bigquery_create_table_range_partitioned] + return table diff --git a/bigquery/samples/tests/test_create_table_range_partitioned.py b/bigquery/samples/tests/test_create_table_range_partitioned.py new file mode 100644 index 000000000000..ca186f9a7554 --- /dev/null +++ b/bigquery/samples/tests/test_create_table_range_partitioned.py @@ -0,0 +1,28 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from .. import create_table_range_partitioned + + +def test_create_table_range_partitioned(capsys, client, random_table_id): + table = create_table_range_partitioned.create_table_range_partitioned( + client, random_table_id + ) + out, _ = capsys.readouterr() + assert "Created table {}".format(random_table_id) in out + assert table.range_partitioning.field == "zipcode" + assert table.range_partitioning.range_.start == 0 + assert table.range_partitioning.range_.end == 100000 + assert table.range_partitioning.range_.interval == 10








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/googleapis/google-cloud-python/pull/9478.diff

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy