Kura

Kura is an interface to the BigQuery API v2. This is a wrapper of google-api-client.gem.

Installation

Add this line to your application's Gemfile:

gem 'kura'

And then execute:

$ bundle

Or install it yourself as:

$ gem install kura

Usage

Initialize

# a. With Service Account Private Key
## 1. project ID + email + private key (filepath or contents of .pem format file, or OpenSSL::PKey object)
client = Kura.client(project_id, email, private_key)

## 2. JSON key file downloaded from Google Developers Console.
client = Kura.client(json_file_path)
client = Kura.client(JSON.parse(File.read(json_file_path)))

# b. With GCE bigquery scope (Only available on Google Compute Engine instance)
client = Kura.client

# c. With External Data Sources. For example, accessing data hosted within Google Drive requires an additional OAuth scope.
client = Kura.client(.., scope: "https://www.googleapis.com/auth/drive")

Job API

client.load("dataset", "table", "gs://mybucket/data.csv", wait: 120)
client.query("SELECT * FROM [dataset.table];", dataset_id: "dest_dataset", table_id: "dest_table", wait: 120)
client.extract("dataset", "result", "gs://mybucket/extracted.csv", wait: 120)
client.copy("src_dataset", "src_table", "dest_dataset", "dest_table", wait: 120)

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/nagachika/kura.

Memo: If run to google sheets testing requires environment variable ENV['GOOGLE_SHEETS_FILE_URL'].

License

The gem is available as open source under the terms of the MIT License.