Docs

Tables and SQL

Every table, where it came from, and a query editor for whoever wants one.

The Data screen is the tree of every table: signed-off tables first, then models, then raw. Open one and you get its columns, samples, freshness and lineage, plus what people know about it from the context system. Beside it is a query editor with history and saved queries; ask, and it writes the query for you.

The dialect

DuckDB's SQL: Postgres-like, fast, with JSON operators. Rows that arrived as JSON keep the whole object in a payload column; wrap extracts in parentheses when comparing them.

select payload->>'status' as status, sum((payload->>'total')::double) as revenue
from sales.orders group by 1

Time travel

Every version of every table is kept. Dropped means hidden for a week, not gone. Ask for a table as it was on a date and you get that version.

From the command line

ovs tables
ovs describe sales.orders
ovs query "select count(*) from shopify.order where created_at > '2026-01-01'"

All docs · Something wrong on this page? Tell us.