SQLAlchemy dialect and API client for BigQuery.
Usage
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 for authentication. Alternatively, you can provide the path to a service account JSON file in create_engine():
engine = create_engine('bigquery://', credentials_path='/path/to/keyfile.json')
Location
To specify location of your datasets pass location to create_engine():
engine = create_engine('bigquery://project', location="asia-northeast1")
Table names
To query tables from non-default projects, use the following format for the table name: project.dataset.table, e.g.:
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():
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.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pybigquery-0.4.5.tar.gz | 9.3 kB | Details |
Release files / pybigquery-0.4.5.tar.gz
| Download URL | pybigquery-0.4.5.tar.gz |
|---|---|
| Size | 9.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
40ac41b530a6dfaf48c6d1fed960d3df279b4b37d543283ef454b8c30df3acd4
|
|
BLAKE2b-256 checksum How to use checksums |
9655817a66d3138725f3efea8a166a79b56c453edf320d34d7ef96d0785e9a8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.6
|