The terms you’ll meet in eMondrian, Excel and Power BI. If you know Microsoft Analysis Services or Mondrian, they mean the same thing here.
Catalog
A catalog is one semantic model: a schema file plus a database connection. Catalogs are declared in datasources.xml — see datasources.xml reference.
In Excel and Power BI a catalog appears as a database (Excel: Select the database; Power BI: Database).
Community ships two catalogs: FoodMart (retail sample) and OnTime (US flights in ClickHouse).
Schema
The schema is the XML file that describes the model: which tables or SQL views are used, which cubes, dimensions and measures exist. See Schema reference.
Cube
A cube is the unit you query: a set of measures that can be analysed by a set of dimensions. A cube is built on one fact table or view — one row per event, e.g. one flight or one sales line.
Example: the cube OnTime (attributes) has measures such as Flights and On-Time Rate, and dimensions such as Airline and Time.
Dimension
A dimension is a perspective for slicing the data: Time, Airline, Customer, Product. It usually comes from a dimension table or view joined to the fact table by a key.
Attribute
An attribute is one column of a dimension that users can use: Year, Month, City, Gender. In eMondrian schemas attributes are declared with <DimensionAttribute>; one of them is the dimension’s key (usage="Key").
Hierarchy and level
A hierarchy arranges attributes into drill-down paths: Year → Quarter → Month or State → City → Airport. Each step is a level. A dimension can have several hierarchies.
The top All member (e.g. All Airlines) represents the total.
Member
A member is one value of a level: 2022, Q1, January, AA. In MDX members are written with unique names, e.g. [Time].[2022].[Q1].
Measure
A measure is a number aggregated from a fact column: Flights = sum of Flights, Distinct Tail Numbers = distinct count of Tail_Number. Aggregators include sum, count, distinct-count, min, max and avg.
Calculated member
A calculated member is a measure (or member) defined by an MDX formula over other members — typically business KPIs:
On-Time Rate = 1 - (Late Arrivals + Cancelled + Diverted) / Flights
Defined once in the schema, it gives the same result in Excel, Power BI and AI agents.
Role
A role restricts what a user may see: whole cubes, dimensions or individual members. See the SampleRole example in schema/Foodmart.xml.
Query languages
| Language | Used by | Example |
|---|---|---|
| MDX | Excel, OLAP Client, many OLAP tools | SELECT [Measures].[Flights] ON 0 FROM [OnTime (attributes)] |
| DAX | Power BI | EVALUATE ROW("Org_Salary", 'HR'[Org Salary]) |
| MCP | AI agents | Not a query language — a protocol that lets agents call tools such as execute_query |
All of them go through XMLA (XML for Analysis) except MCP. See XMLA endpoint.
Further reading: the original Mondrian introduction What is OLAP.