Connecting to the Database
Cube.js currently provides connectors to the following databases:
|Database||Cube.js DB Type|
|MongoDB (via MongoDB Connector for BI)||mongobi|
|Hive / SparkSQL (thrift)||hive|
If you'd like to connect to a database which is not yet supported, you can create a Cube.js-compilant driver package. Here's a simple step-by-step guide.
When you create a new Cube.js service with the Cube.js CLI, the
.env will be
generated to manage all connection credentials. The set of variables could be different based on your database type. For example, for PostgreSQL the
.env will look like this:
CUBEJS_DB_HOST=<YOUR_DB_HOST_HERE> CUBEJS_DB_NAME=<YOUR_DB_NAME_HERE> CUBEJS_DB_USER=<YOUR_DB_USER_HERE> CUBEJS_DB_PASS=<YOUR_DB_PASS_HERE> CUBEJS_DB_TYPE=postgres CUBEJS_API_SECRET=secret
The table below shows which environment variables are used for different databases:
|PostgreSQL, MySQL, AWS Redshift, ClickHouse, Hive/SparkSQL, Oracle|
CUBEJS_DB_SSL=true to enable SSL as MongoDB Atlas requires it.
CUBEJS_DB_SSL_PASSPHRASE can be left blank.
In order to connect BigQuery to Cube.js, you need to provide service account credentials.
Cube.js requires the service account to have BigQuery Data Viewer and BigQuery Job User roles enabled.
You can set
CUBEJS_DB_BQ_KEY_FILE environment variable with a path to JSON key file.
Another way is to encode the key file with base64:
$ cat /path/to/key-file.json | base64
Now you can set the
CUBEJS_DB_BQ_CREDENTIALS environment variable with the base64-encoded key.
Cube.js supports connection to multiple databases out-of-the-box. Please refer to Multitenancy Guide to learn more.
Cube.js supports connection via SSL for Postgres and Mongo. To enable it set
CUBEJS_DB_SSL environment variable to