Contrast Warehouse

Store tables in Apache Iceberg and query them from Contrast answers, agents, and dbt. See which storage and engine options need Enterprise.

The Contrast Warehouse is a data warehouse for AI agents. Your tables are stored in Apache Iceberg, and Contrast runs the SQL that Contrast answers, your agents, and dbt send to it. You can keep Snowflake or BigQuery alongside it.

What each plan includes

CapabilityFree, Starter, Growth, and ScaleEnterprise
Iceberg tables in Contrast-managed storageYesYes
Sync sources into the warehouse, including realtime Postgres and Supabase ingestionYesYes
Read-only queries on Snowflake or BigQuery in place (cloud and warehouses)YesYes
Iceberg tables in storage buckets you ownNoYes
Accelerate existing Iceberg tables you already manageNoYes
Route Iceberg queries to Trino or Apache SparkNoYes, when configured for your deployment

Enterprise options are set up with our team. To ask about them, email founders@embrasure.ai.

Storage

On every plan, synced tables are stored in Apache Iceberg in Contrast-managed storage. Contrast adds agent-accelerated formats and indexes on top of those tables, so an agent query reads only the data it needs. Managed storage counts toward your plan's storage allowance.

On Enterprise, Iceberg tables can stay in storage buckets you own instead, and you can connect existing Iceberg tables for Contrast to accelerate. Those tables remain the source of truth, and other Iceberg-compatible tools can keep reading them.

How queries are routed

Contrast sends each query to the engine that suits the data it needs:

DataWhere the query runs
Tables in the Contrast WarehouseContrast-managed compute. On Enterprise, Trino or Apache Spark when configured and better suited to the query
Data only in Snowflake or BigQueryYour warehouse, directly, with the read-only identity you connected

Routing is automatic. Contrast answers, agents using MCP or the warehouse CLI, and SQL in Contrast all send SQL the same way, and Contrast picks the engine. See the SQL reference for the dialect and naming rules.

Run pipelines after sources sync

For a published model in Pipelines, add or edit its schedule and choose After its sources sync. Contrast watches the source tables and published pipeline tables that the model reads. A sync that inserts, updates, deletes, or reloads data makes a run due. A sync that finds no changes does not.

  • Run when: choose any input changes, or wait until every active input has synced since the last run. A sync with no changes counts toward the latter; a pipeline input must publish a new result.
  • Minimum interval: runs start at least this far apart, from 15 minutes to 24 hours. The default is one hour.
  • Run upstream models first: build the managed models it reads in dependency order as part of the same run. Their source tables then determine when it runs.

Changes are grouped for two minutes. Ongoing syncs hold the run for up to three hours; after that it runs with the data available. Paused sources do not trigger runs or hold them up. Continuous streaming sources have no completed sync, so they trigger runs at the minimum interval while active.

Publishing a result makes downstream pipelines due in turn. Cyclic dependencies are excluded from triggering to prevent feedback loops. Changes arriving during a run remain pending for one follow-up run. Saving this schedule begins watching from the current input state; use Run now to rebuild immediately. Resuming a paused pipeline catches up on changes since its last run.

The pipeline shows what changed, what it is waiting for, and when a run is due. Runs started by this frequency are labeled Sources synced in run history. Runs use the selected API key and the pipeline's existing retry, timeout, and failure-pause settings. For broader orchestration across systems, use Dagster or Airflow.

Keep your existing warehouse

You don't need to move off Snowflake or BigQuery or sync every table to get started. Dashboards and scheduled jobs keep running on your existing warehouse. Connect your warehouse with a read-only identity, as described in cloud and warehouses, and sync tables into the Contrast Warehouse as agent workloads grow.

Workspace permissions apply to every query, whichever engine runs it. See security and permissions.