Skip to main content
SQLAlchemy dialect and API client for BigQuery.


Usage
=====

.. code-block:: python

SQLAchemy
_________

from sqlalchemy import *
from sqlalchemy.engine import create_engine
from sqlalchemy.schema import *
engine = create_engine('bigquery://project')
table = Table('dataset.table', MetaData(bind=engine), autoload=True)
print(select([func.count('*')], from_obj=table).scalar())

API Client
_________
from pybigquery.api import ApiClient
api_client = ApiClient()
print(api_client.dry_run_query(query=sqlstr).total_bytes_processed)

Project
_______

``project`` in ``bigquery://project`` is used to instantiate BigQuery client with the specific project ID. To infer project from the environment, use ``bigquery://`` – without ``project``

Authentication
______________

Follow the `Google Cloud library guide <https://google-cloud-python.readthedocs.io/en/latest/core/auth.html>`_ for authentication. Alternatively, you can provide the path to a service account JSON file in ``create_engine()``:

.. code-block:: python

engine = create_engine('bigquery://', credentials_path='/path/to/keyfile.json')

Table names
___________

To query tables from non-default projects, use the following format for the table name: ``project.dataset.table``, e.g.:

.. code-block:: python

sample_table = Table('bigquery-public-data.samples.natality')

Batch size
__________

By default, ``arraysize`` is set to ``5000``. ``arraysize`` is used to set the batch size for fetching results. To change it, pass ``arraysize`` to ``create_engine()``:

.. code-block:: python

engine = create_engine('bigquery://project', arraysize=1000)


Requirements
============

Install using

- ``pip install pybigquery``


Testing
============

Load sample tables::

./scripts/load_test_data.sh

This will create a dataset ``test_pybigquery`` with tables named ``sample_one_row`` and ``sample``.

Set up an environment and run tests::

pyvenv .env
source .env/bin/activate
pip install -r dev_requirements.txt
pytest

Metadata

Release files for pybigquery 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pybigquery 0.4.0
File Size Uploaded
pybigquery-0.4.0.tar.gz 9.0 kB Details

Release files / pybigquery-0.4.0.tar.gz

Download URL pybigquery-0.4.0.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
6309b0575114d34c33c584bc3765ebb2208173ae60690fc8cff2d2ca5f2fd383
BLAKE2b-256 checksum
How to use checksums
986401c4d4d7565d558ee4f430fc3c94ecfdb79cf3fe20fd943f45359cda8d8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.6

Release history Release notifications | RSS feed

0.10.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.15

2 release files

0.4.13

1 release file

0.4.12

1 release file

0.4.11

1 release file

0.4.10

1 release file

0.4.9

1 release file

0.4.8

1 release file

0.4.7

1 release file

0.4.6

1 release file

0.4.5

1 release file

0.4.4

1 release file

0.4.3

1 release file

0.4.2

1 release file

0.4.1

1 release file

This release

0.4.0 This release

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.9

1 release file

0.2.8

1 release file

0.2.7

1 release file

0.2.6

1 release file

0.2.5

1 release file

0.2.3

1 release file

0.2.1

1 release file

0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page