CubeJS
Between your databases and everything that consumes data - BI tools, embedded analytics, AI
agents - sits Cube (formerly Cube.js), an open-source semantic layer. Metrics, dimensions,
joins, and access rules are defined once as code in YAML, JavaScript, or Python, forming a
governed data model that every downstream consumer shares, so "revenue" means the same thing
in every dashboard. Caching is two-level: an in-memory cache absorbs bursts of identical
queries, and declared pre-aggregations - rollup tables built in the warehouse or in Cube
Store, Cube's distributed columnar engine, and refreshed in the background - deliver
sub-second latency while cutting warehouse compute costs. The query planner routes each
request to cache, rollup, or source automatically. Consumers connect through a
Postgres-compatible SQL API (any tool that speaks Postgres works), plus REST, GraphQL, and a
Meta API for model introspection. Row-level security and multi-tenancy are enforced in the
layer itself, upstream of every client. Sources include Snowflake, BigQuery, Databricks,
Postgres, MySQL, Presto, and Athena. Headless by design - bring your own UI.
Deploy