Virtual Data Layer

Live data, modeled for AI

One layer joins live data across your systems, caches what needs speed, and shapes it into business views AI can trust.

Trusted by global teams connecting data and AI at scale
GSK
Palantir
Anthropic
Office Depot
Google

Answers arrive fast, wherever the data lives

The engine does the heavy lifting—joins, planning, and pushdown—so queries stay fast without moving your data or tuning anything.

crm (small) warehouse (large) KEYS ONLY join by cost 3 strategies ONLY MATCHING ROWS TRAVEL
QUERY IN SELECT … LIMIT ~30 PLANNING RULES ✓ push filters down ✓ push limits down ✓ prune columns + 27 more OUT plan FILTERS + LIMITS PUSHED TO THE SOURCE
joins · CTEs aggregates window fns one SQL statement per source ~150 FUNCTIONS RUN AT THE SOURCE
CONNECT AI query_data(   FLATTEN(events) ) VERBATIM SNOWFLAKE FLATTEN runs natively no rewrite, no shim NO TRANSLATION IN BETWEEN
10M-ROW JOIN · MEMORY memory full · 100% overflow → local disk RESULT query completes slower, never failed no out-of-memory error DEGRADE GRACEFULLY, NEVER FAIL

Model once, reuse everywhere

Define business logic once, in SQL, and every AI tool queries the same definitions. Raw source structures stay behind views named in business terms.

Virtual schemas and dependent views

Keep the models AI queries organized as they grow—group them into virtual schemas and build views on top of views, so agents see structure instead of sprawl.

Layered models

AI works at the level it understands best—raw to core to business layer, so agents query business-friendly names, not source cruft.

Procedural SQL and virtual procedures

Capture multi-step logic once and let every agent reuse it—parameterized procedures the AI can call instead of rebuilding the logic per prompt.

Python and JavaScript

Transformations your team can't express in SQL—parsing, scoring, custom logic—run as Python or JavaScript through OBJECTTABLE, so AI gets the results as ordinary queryable tables without any of the complexity.

The SQL you already know

Model in the SQL your team already writes—SQL Server-style syntax (TOP n, CROSS APPLY, STRING_SPLIT) and PostgreSQL-style LIMIT … OFFSET, plus GENERATE_SERIES, JSON aggregates, MEDIAN, and PERCENT_RANK—the richer the views you define, the better the answers AI returns.

Data-quality functions

AI reasons over clean data, not noise—string-distance matching (cosine, Jaccard, Winkler, Levenshtein) and validators for credit cards, SSNs, phone numbers, and email.

Delivered your way. Governed and observable, always.

Choose live, cached, or materialized per dataset—and every query, from every tool, arrives with the same permissions applied and a full record of what ran.

Live, cached, or materialized—joined transparently

Result-set caching

Freshness where it matters, speed where it doesn’t—one cache hint on a query or procedure call reuses its results.

Mixed in one query

No one has to know what’s cached—cached parts hit the cache, live parts hit their sources, and the engine joins the results transparently.

Materialization

Skip building a separate pipeline—cache to the warehouse you already run, full or incremental, with engine-recommended materializations you choose to accept.

SELECT region, pipeline, arr … One query · 3 sources
salesforce.pipeline live · 240 ms
netsuite.arr live · 310 ms
warehouse.regions cached · 4 ms
Joined transparently, one result

Watch one question cross two systems

A query joining accounts in a CRM with orders in an ERP—and what the engine does with it.

FAQ

Questions teams ask.

  • Does modeling mean moving or copying our data?
  • What SQL do we write?
  • How are permissions enforced on modeled views?
  • Can we see how a query actually executed?
  • Can we trace a view back to its sources?

Define it once. Trust it everywhere.

One governed SQL layer over 300+ sources—modeled in business terms, optimized on every query, and traceable back to its sources.