Built for the production stack.
Dex explores and models the warehouses your data already lives in, and keeps your dbt project in sync as they change. Every scan is estimated with a dry-run and confirmed before it spends, then recorded in a local ledger.
Every connector
Warehouses and semantic layers. Each warehouse has a cost guard in its own billing unit. Search by name, cloud, or billing unit.
14 connectors

BigQuery
Warehouse
Google BigQuery data warehouse. Dex profiles your tables and authors dbt models directly against your BigQuery project.
Cost guardBytes scanned
Snowflake
Warehouse
Snowflake data cloud. Dex explores schemas and authors dbt transformations with warehouse-aware cost guards.
Cost guardCompute time
Databricks
Warehouse
Databricks lakehouse. Dex profiles Unity Catalog tables and authors dbt models with DBU-aware cost guards.
Cost guardDBUs
Redshift
Warehouse
AWS Redshift data warehouse. Dex profiles your schemas and authors dbt models directly.
Cost guardRPU-hour
ClickHouse
Warehouse
ClickHouse Cloud and self-hosted ClickHouse. Dex profiles your tables and authors dbt models, with every scan capped by max_execution_time and max_bytes_to_read.
Cost guardCompute seconds
PostgreSQL
Warehouse
Connect to PostgreSQL for advanced analytics, geospatial data, and complex queries on structured data.
Cost guardLoad limit
Trino
Warehouse
Self-hosted Trino, Starburst Enterprise, and Trino on Amazon EMR. Dex explores your catalogs, authors dbt models, and detects drift with cluster-load guards.
Cost guardCluster-seconds
DuckDB
Warehouse
An in-process analytical database. Point Dex at a local DuckDB file with zero credentials required.
Cost guardZero-credential on-ramp
dbt Semantic Layer
Semantic layer
The dbt semantic layer (MetricFlow), local or through dbt Cloud. Dex authors and maintains your entities, dimensions, measures, and metrics as reviewable diffs, validated against a dev target.
Note
Apache Ossie
Semantic layer
Apache Ossie (incubating), the vendor-neutral standard for semantic metadata. Dex reads your .ossie.yaml documents natively and authors them as reviewable diffs, with or without a dbt project.
Note
SLayer
Semantic layer
SLayer by Motley, a semantic layer kept as YAML model files. Dex reads your SLayer models natively, authors them as reviewable diffs, and runs the SQL SLayer renders under its own cost guard, with no dbt project needed.
Note
Cube
Semantic layer
Cube, the semantic layer kept as YAML model files. dex reads your cubes and views natively, authors them as reviewable diffs, and runs the SQL Cube renders under its own cost guard, with no dbt project needed.
Note
Snowflake Semantic Views
Semantic layer
Snowflake Semantic Views, kept as YAML files in your repository. dex reads them with no Snowflake connection, authors them as reviewable diffs, and holds them to the warehouse when columns move. Nothing is deployed for you.
Note
Databricks Metric Views
Semantic layer
Databricks Unity Catalog Metric Views, kept as YAML files in your repository. dex reads them with no workspace connection, authors them as reviewable diffs, and holds them to the warehouse when columns move. Nothing is deployed for you.
Note
Setting up a native semantic layer
Dex reads and authors six semantic-layer formats: the dbt semantic layer (MetricFlow), Apache Ossie, SLayer, Cube, Snowflake Semantic Views, and Databricks Metric Views. None of the native formats needs a dbt project, and each takes a few lines of setup.
- 1Install the extra
pip install 'exmergo-dex-core[ossie]' - 2Select the vendor
semantic.vendor: ossie # .dex/config.yml - 3List your documents
semantic.ossie.files: [...]
- 1Install the extra
pip install 'exmergo-dex-core[slayer]' - 2Select the vendor
semantic.vendor: slayer # .dex/config.yml - 3Set the storage root
semantic.slayer.base_dir: semantics/slayer - 4List your models
semantic.slayer.models: [models/<data_source>/<name>.yaml]
- 1Install the extra
pip install 'exmergo-dex-core[cube]' - 2Select the vendor
semantic.vendor: cube # .dex/config.yml - 3List your model files
semantic.cube.files: [...]
- 1Install the extra
pip install 'exmergo-dex-core[semantic-views]' - 2Select the vendor
semantic.vendor: snowflake # .dex/config.yml - 3List your view files
semantic.snowflake.files: [...]
- 1Install the extra
pip install 'exmergo-dex-core[metric-views]' - 2Select the vendor
semantic.vendor: databricks # .dex/config.yml - 3List your view files
semantic.databricks.files: [...]
Frequently asked questions
Q01Which warehouses does Dex connect to?
Dex supports BigQuery, Snowflake, Databricks, Redshift, ClickHouse (Cloud and self-hosted), PostgreSQL, Trino, and DuckDB. Every connector has a cost guard in its own billing unit, and DuckDB is the zero-credential on-ramp: point Dex at a local file and nothing else is needed.
Q02Does Dex support Apache Ossie?
Yes, natively. Apache Ossie (incubating) is the vendor-neutral standard for exchanging semantic metadata, and Dex reads it as a first-class semantic layer. Install the extra with pip install 'exmergo-dex-core[ossie]', set semantic.vendor: ossie in .dex/config.yml, and list your .ossie.yaml, .ossie.yml, or .ossie.json documents under semantic.ossie.files.
Q03Does Dex support SLayer?
Yes, natively. SLayer by Motley keeps a semantic layer as YAML model files, and Dex reads it as a first-class semantic layer. Install the extra with pip install 'exmergo-dex-core[slayer]', set semantic.vendor: slayer in .dex/config.yml, point semantic.slayer.base_dir at SLayer's storage root, and list your model files under semantic.slayer.models. Dex validates every file with SLayer's own model class from one pinned release, authors models as reviewable diffs, and detects drift against them. For a governed query, SLayer renders the SQL as a dry run and Dex runs it under its own cost guard and PII gate, so SLayer never opens a warehouse connection.
Q04Does Dex support Cube, Snowflake Semantic Views, and Databricks Metric Views?
Yes, natively, each in its own format with no conversion. Cube cubes and views, Snowflake Semantic Views, and Databricks Metric Views are read from the YAML files in your repository: install exmergo-dex-core[cube], exmergo-dex-core[semantic-views], or exmergo-dex-core[metric-views], set semantic.vendor to cube, snowflake, or databricks in .dex/config.yml, and list the files under semantic.cube.files, semantic.snowflake.files, or semantic.databricks.files. Dex validates every file against its port of the vendor's rules, authors files as reviewable diffs, derives a cube, logical table, or Metric View from a declared dbt mart, and detects drift against the warehouse. It never deploys a Semantic View or Metric View for you. On Cube, a governed query is rendered by your Cube server and run by Dex under its own cost guard and PII gate.
Q05Do I need a dbt project to use Dex?
No. Dex reads Apache Ossie documents, SLayer and Cube model files, Snowflake Semantic Views, and Databricks Metric Views natively, so a repository with no dbt project and no MetricFlow anywhere in the path still gets a governed semantic layer: set semantic.vendor to ossie, slayer, cube, snowflake, or databricks in .dex/config.yml and Dex explores, authors, and drift-checks against those files. A repository that keeps dbt for its models and declares its semantics in one of those formats beside them gets both.
Q06Is the dbt Cloud Semantic Layer covered by the cost guard?
No. The dbt Cloud Semantic Layer backend is opt-in and off by default. Queries sent there run on dbt Cloud, under your dbt Cloud account's own limits, so it is the one path where Dex's cost guard cannot apply, and every result on that path says so.
Need a connector we don't support yet?
Tell us about your data source and we'll let you know as soon as the connector is available.