Concepts
Nine words, used precisely throughout. Most confusion about SQLDesk is really confusion between two of these — a parameter and a filter especially.
Data source
A connection to somewhere data lives: a Postgres database, a Trino cluster, a BigQuery project, a Google Sheet. It holds the credentials, which are encrypted, and it belongs to one or more groups. Whoever is in a group can use the data source; whoever is not cannot see it at all.
Query
SQL, saved, against one data source. A query has an owner, can be scheduled, forked and published.
Query result
What came back the last time a query ran, kept in SQLDesk's own database. Opening a dashboard shows the stored result rather than running the query again, which is why a dashboard opens quickly and why what it shows has an age on it.
Visualization
A way of drawing one query's result — a table, a line chart, a counter, a gauge. A query can have several, and they all draw the same rows. Changing the SQL changes all of them at once.
Dashboard and widget
A dashboard is a grid of widgets. A widget is either a visualization from some query, or a textbox. Two widgets showing the same query share one fetch, so a dashboard with five views of one query fetches its stored result once.
Parameter
A hole in the SQL, written {{ region }}. The value is substituted before the query runs, so
the warehouse does different work. Parameters can be text, numbers, dates, or a list of allowed values.
Filter
Not a parameter. A filter narrows rows already fetched, in the browser, by naming a column
something::filter in the SELECT. Nothing is re-run. Use a parameter to change what the
warehouse does; use a filter to slice what it already returned.
Group
How permission works. A user belongs to groups; a data source is available to groups, fully or view-only. Viewing and running is groups all the way down. Editing a query or dashboard can also be granted to named people, once an admin turns on Enable experimental multiple owners support under Settings → General.
Alert
A rule over one query's result — a column, a comparison, a value — and a list of destinations. It is checked after the query runs, not on a timer of its own, so an alert on an unscheduled query only fires when somebody runs it.