|GA| |pypi| |versions|
Querying massive datasets can be time consuming and expensive without the right hardware and infrastructure. Google
BigQuery_ solves this problem by enabling super-fast, SQL queries against append-mostly tables, using the processing power of Google's infrastructure.
Client Library Documentation_
Product Documentation_
.. |GA| image:: https://img.shields.io/badge/support-GA-gold.svg :target: https://github.com/googleapis/google-cloud-python/blob/master/README.rst#general-availability .. |pypi| image:: https://img.shields.io/pypi/v/google-cloud-bigquery.svg :target: https://pypi.org/project/google-cloud-bigquery/ .. |versions| image:: https://img.shields.io/pypi/pyversions/google-cloud-bigquery.svg :target: https://pypi.org/project/google-cloud-bigquery/ .. _BigQuery: https://cloud.google.com/bigquery/what-is-bigquery .. _Client Library Documentation: https://googleapis.dev/python/bigquery/latest .. _Product Documentation: https://cloud.google.com/bigquery/docs/reference/v2/
In order to use this library, you first need to go through the following steps:
Select or create a Cloud Platform project._
Enable billing for your project._
Enable the Google Cloud BigQuery API._
Setup Authentication._
.. Select or create a Cloud Platform project.: https://console.cloud.google.com/project .. _Enable billing for your project.: https://cloud.google.com/billing/docs/how-to/modify-project#enablebillingfora_project .. _Enable the Google Cloud BigQuery API.: https://cloud.google.com/bigquery .. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html
Installation ~~~~~~~~~~~~
Install this library in a
virtualenv_ using pip.
virtualenv_ is a tool to create isolated Python environments. The basic problem it addresses is one of dependencies and versions, and indirectly permissions.
With
virtualenv_, it's possible to install this library without needing system install permissions, and without clashing with the installed system dependencies.
.. _
virtualenv: https://virtualenv.pypa.io/en/latest/
Supported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^ Python >= 3.6, < 3.10
Unsupported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Python == 2.7, Python == 3.5.
The last version of this library compatible with Python 2.7 and 3.5 is
google-cloud-bigquery==1.28.0.
Mac/Linux ^^^^^^^^^
.. code-block:: console
pip install virtualenv virtualenv source /bin/activate /bin/pip install google-cloud-bigquery
Windows ^^^^^^^
.. code-block:: console
pip install virtualenv virtualenv \Scripts\activate \Scripts\pip.exe install google-cloud-bigquery
Perform a query ~~~~~~~~~~~~~~~
.. code:: python
from google.cloud import bigqueryclient = bigquery.Client()
Perform a query.
QUERY = ( 'SELECT name FROM
bigquery-public-data.usa_names.usa_1910_2013
' 'WHERE state = "TX" ' 'LIMIT 100') query_job = client.query(QUERY) # API request rows = query_job.result() # Waits for query to finishfor row in rows: print(row.name)
This application uses
OpenTelemetry_ to output tracing data from API calls to BigQuery. To enable OpenTelemetry tracing in the BigQuery client the following PyPI packages need to be installed:
.. _OpenTelemetry: https://opentelemetry.io
.. code-block:: console
pip install google-cloud-bigquery[opentelemetry] opentelemetry-exporter-google-cloud
After installation, OpenTelemetry can be used in the BigQuery client and in BigQuery jobs. First, however, an exporter must be specified for where the trace data will be outputted to. An example of this can be found here:
.. code-block:: python
from opentelemetry import trace from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchExportSpanProcessor from opentelemetry.exporter.cloud_trace import CloudTraceSpanExporter trace.set_tracer_provider(TracerProvider()) trace.get_tracer_provider().add_span_processor( BatchExportSpanProcessor(CloudTraceSpanExporter()) )
In this example all tracing data will be published to the Google
Cloud Trace_ console. For more information on OpenTelemetry, please consult the
OpenTelemetry documentation_.
.. _OpenTelemetry documentation: https://opentelemetry-python.readthedocs.io .. _Cloud Trace: https://cloud.google.com/trace