Schema discovery over schemaless data — the statement you run first against a table you didn't design. One result row per attribute: coverage against the sample, type distribution ("Number 94% · String 6%"), NULL vs MISSING vs empty counts, and a "mixed types" note when an attribute carries more than one shape.
A profile that hits the read cap returns a disclosed partial sample ("sampled the first N items — the table continues") rather than refusing — unlike an aggregate, a sample is an honest answer. Guide: Aggregates & profiling.
Use cases
Meet an unfamiliar tableLowered
Inherited a production table with no docs? Profile it before you query it — the attribute list, their types, and how consistently they're present.
sql
PROFILE TABLE "stage.Orders"
Executes asSampled read (capped at 100 pages) → one result row per attribute
Every sampled item is read and billed like any read — the cap keeps the bill bounded on big tables.
Profile one tenant's sliceLowered
In a shared table, different tenants can carry different shapes — WHERE bounds what's sampled and LIMIT bounds the rows read.