Python idiomatic client for Google BigQuery
$ pip install --upgrade google-cloud-bigquery
With google-cloud-python
we try to make authentication as painless as
possible. Check out the Authentication section in our documentation to
learn more. You may also find the authentication document shared by all
the google-cloud-*
libraries to be helpful.
Querying massive datasets can be time consuming and expensive without the right hardware and infrastructure. Google BigQuery (BigQuery API docs) solves this problem by enabling super-fast, SQL-like queries against append-only tables, using the processing power of Google's infrastructure.
import csv
from google.cloud import bigquery
from google.cloud.bigquery import SchemaField
client = bigquery.Client()
dataset = client.dataset('dataset_name')
dataset.create() # API request
SCHEMA = [
SchemaField('full_name', 'STRING', mode='required'),
SchemaField('age', 'INTEGER', mode='required'),
]
table = dataset.table('table_name', SCHEMA)
table.create()
with open('csv_file', 'rb') as readable:
table.upload_from_file(
readable, source_format='CSV', skip_leading_rows=1)
# Perform a synchronous query.
QUERY = (
'SELECT name FROM [bigquery-public-data:usa_names.usa_1910_2013] '
'WHERE state = "TX"')
query = client.run_sync_query('%s LIMIT 100' % QUERY)
query.timeout_ms = TIMEOUT_MS
query.run()
for row in query.rows:
print(row)
See the google-cloud-python
API BigQuery documentation to learn how
to connect to BigQuery using this Client Library.