Documentation
QuestDB

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

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 VariableDescriptionPossible ValuesRequired
CUBEJS_DB_HOSTThe host URL for a databaseA valid database host URL
CUBEJS_DB_PORTThe port for the database connectionA valid port number
CUBEJS_DB_NAMEThe name of the database to connect toA valid database name
CUBEJS_DB_USERThe username used to connect to the databaseA valid database username
CUBEJS_DB_PASSThe password used to connect to the databaseA valid database password
CUBEJS_DB_SSLIf true, enables SSL encryption for database connections from Cubetrue, false
CUBEJS_CONCURRENCYThe number of concurrent connections each queue has to the database. Default is 2A valid number
CUBEJS_DB_MAX_POOLThe maximum number of concurrent database connections to pool. Default is 8A valid number