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.
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.
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
Freshness where it matters, speed where it doesn’t—one cache hint on a query or procedure call reuses its results.
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.
Skip building a separate pipeline—cache to the warehouse you already run, full or incremental, with engine-recommended materializations you choose to accept.
Permissions enforced on every query, every tool
Give each person exactly the access their role needs—seven permission types down to a single column, with schema grants inherited so there’s less to manage.
Sensitive data stays hidden without separate copies—row-level security shows each user only their rows, and column masking conceals values in place.
Revoke a permission and it’s gone that instant—access is never cached, and users browsing schemas see only what they’re allowed to see.
Know exactly what ran, and where
Trust an answer before anyone acts on it—EXPLAIN shows the full plan: which steps ran in the engine, which join strategy was chosen, and the exact SQL sent to each source.
Troubleshoot in minutes, not meetings—a per-query federation log sits beside each source’s driver log, tracing a query from plan to source SQL to driver execution.
Spot the slow source at a glance—duration and row counts for every source a query touched.
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.
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.