BigQuery Scala Api
Overview
There are many libraries for Google Cloud Platform except for Scala.
Currently we aim at
- Create BigQuery jobs for running queries and tasks
Getting Started
Create api instance:
val bigQueryInstance = BigQueryApi(projectName, Config.credentialWrite)
Create TableReference for a BigQuery table:
val tableReference = BqTableReference("[project]", "[dataSet]", "[table]")
Create command factory which will use the api instance to create commands:
val commandFactory = new CommandFactory {
override implicit val bigQuery = bigQueryInstance
}
Following table commands can be used:
- drop table
- create table
- insert data
Following job commands can be used:
- copy data to table (TableReference)
- extract data to url in file format (default csv)
- insert data from file (default csv)
Testing
Specify the GCS_PROJECT_NAME
, GCS_PRIVATE_KEY_ID
, GCS_READ_KEY
, GCS_EMAIL_PREFIX
and GCS_CLIENT_ID
env vars in the .env
file, then run sbt test
or sbt it:test
.
Creating a release
This library is using sbt-release-early for releasing artifacts. Every push will be released to maven central, see the plugins documentation on the versioning schema.
To cut a final release:
Choose the appropriate version number according to semver then create and push a tag with it, prefixed with v
.
For example:
$ git tag -s v1.1.1
$ git push --tag
After pushing the tag, while it is not strictly necessary, please draft a release on github with this tag too.