Datasets, dimensions, measures, calculated members, joins, filters and parameters — defined once, addressed by a name that never changes, and turned into SQL by the engine rather than retyped by every analyst. Every reporting team eventually has three versions of "net revenue": one in the board pack, one in the sales dashboard and one in somebody's personal query, each a slightly different SUM over slightly different rows. The semantic model is where that argument ends. Instead of writing the calculation into each report, it is written once as a named object — a measure called Net revenue, on a dataset called Orders, summing a declared expression — and everything that needs the number refers to the object rather than copying its SQL. The model has seven kinds of object. A DATASET is a logical table: a physical table on a connection, or a SQL view that may itself build on other datasets. A DIMENSION is something to group or slice by — a column or expression, optionally with a hierarchy such as Country → Region → City. A MEASURE is an aggregation: SUM, AVG, MIN, MAX, COUNT, COUNT DISTINCT or a custom aggregate expression, with a display format and a unit. A CALCULATED MEMBER is a formula over measures, such as margin = gross profit ÷ net revenue, and may combine measures from different datasets. A JOIN declares how two datasets relate, with its condition, type and cardinality. A FILTER is a reusable condition such as "completed orders only". A PARAMETER is a typed input — a date, a number, a list of regions — with a default and, optionally, a list of allowed values. Each object has a permanent address of the form urn:analytics:measure:net_revenue, and objects refer to one another with {{…}} tags around those addresses. The friendly name can be changed at any time without breaking anything, because nothing depends on the name. The model is maintained under Settings → Semantic objects, where it is validated, its lineage inspected and the whole model exported or imported as one file. Today the model is consumed by the dashboard engine's semantic widgets — KPI, chart and table widgets that name measures and dimensions instead of columns — through the application's API; the Dashboard ribbon widgets described in chapter 8 still bind straight to a table.
This site needs JavaScript for the full experience. Every page above is reachable without it.