QuestDB
QuestDB (opens in a new tab) is a high-performance time-series database (opens in a new tab) which helps you overcome ingestion bottlenecks.
The driver for QuestDB is supported by its vendor. Please report any issues to their Slack (opens in a new tab).
Prerequisites
- The hostname for the QuestDB database server
- If QuestDB is not running, checkout the QuestDB quick start (opens in a new tab)
- Docker (opens in a new tab) (optional)
Setup
Docker
Create a dockerfile within the project directory:
services:
cube:
environment:
- CUBEJS_DEV_MODE=true
image: "cubejs/cube:latest"
ports:
- "4000:4000"
volumes:
- ".:/cube/conf"
questdb:
container_name: questdb
hostname: questdb
image: "questdb/questdb:latest"
ports:
- "9000:9000"
- "8812:8812"
Within your project directory, create an .env
file:
CUBEJS_DB_TYPE=questdb
CUBEJS_DB_HOST=my.questdb.host
CUBEJS_DB_PORT=8812
CUBEJS_DB_NAME=qdb
CUBEJS_DB_USER=admin
CUBEJS_DB_PASS=quest
Finally, bring it all up with Docker:
docker-compose up -d
Access Cube at http://localhost:4000 (opens in a new tab) & QuestDB at http://localhost:9000 (opens in a new tab)
Environment Variables
Environment Variable | Description | Possible Values | Required |
---|---|---|---|
CUBEJS_DB_HOST | The host URL for a database | A valid database host URL | ✅ |
CUBEJS_DB_PORT | The port for the database connection | A valid port number | ✅ |
CUBEJS_DB_NAME | The name of the database to connect to | A valid database name | ✅ |
CUBEJS_DB_USER | The username used to connect to the database | A valid database username | ✅ |
CUBEJS_DB_PASS | The password used to connect to the database | A valid database password | ✅ |
CUBEJS_DB_SSL | If true , enables SSL encryption for database connections from Cube | true , false | ❌ |
CUBEJS_CONCURRENCY | The number of concurrent connections each queue has to the database. Default is 2 | A valid number | ❌ |
CUBEJS_DB_MAX_POOL | The maximum number of concurrent database connections to pool. Default is 8 | A valid number | ❌ |