bqlib

BigQuery Python Library


Keywords
google, bigquery, python, library, bqlib, query
License
MIT
Install
pip install bqlib==0.0.2

Documentation

bqlib - BigQuery Python Library Build Status

BigQuery Python Library.

See: Google BigQuery

Requirements

Python 2.6 or later (not support for 3.x)

Setup

$ pip install bqlib

How to use

  • Single Query - BQJob

    BQJob is a class for starting the BigQuery job and fetching the result.
    You can use either run_sync(synchronous) or run_async(asynchronous) method.

    from bqlib import BQJob
    
    project_id = 'example_project'
    query = 'SELECT foo FROM bar'
    http = authorized_http
    
    bqjob = BQJob(http, project_id, query=query)
    
    # run synchronously
    job_result = bqjob.run_sync()
    
    # or run asynchronously
    bqjob.run_async()
    # ... do other things ...
    job_result = bqjob.get_result()
    
    print job_result # [{u'foo': 10}, {u'foo': 20}, ...]
  • Multiple Queries - BQJobGroup

    BQJobGroup is a class for putting multiple BQJobs into an one group.
    Each BQJob in that group are executed concurrently.

    from bqlib import BQJob, BQJobGroup
    
    bqjob1 = BQJob(http, project_id, query=query)
    bqjob2 = BQJob(http, project_id, query=query)
    
    job_group = BQJobGroup([bqjob1, bqjob2])
    # synchronously
    results = job_group.run_sync()
    # or asynchronously
    job_group.run_async()
    results = job_group.get_results()
    
    print results # [[{'foo': 10}, {'foo': 20}], [{'bar': 'test'}]]

How to test

$ wget http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py
$ pip install -U setuptools
$ python bootstrap.py -v 1.7.1
$ bin/buildout
$ bin/py.test -v tests/bqlib_test.py

Note

  • Concurrent Requests to BigQUery
    • Concurrent requests to BigQuery is restricted to 20 requests by Quota Policy.
    • If you want to set up concurrent requests to 20, you also have to set up at traffic controls in api-console page

License

This library is disributed as MIT license.

History

  • 2013-10-22 bqlib 0.0.1
    • First release
  • 2014-03-18 bqlib 0.0.2
    • Bug fixes